diff --git a/src/main/java/com/gsp/bridge/domain/notice/.gitkeep b/src/main/java/com/gsp/bridge/domain/notice/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/src/main/java/com/gsp/bridge/domain/notice/domain/Notice.java b/src/main/java/com/gsp/bridge/domain/notice/domain/Notice.java new file mode 100644 index 0000000..62541de --- /dev/null +++ b/src/main/java/com/gsp/bridge/domain/notice/domain/Notice.java @@ -0,0 +1,35 @@ +package com.gsp.bridge.domain.notice.domain; + +import com.gsp.bridge.domain.company.domain.entity.Company; +import com.gsp.bridge.global.entity.BaseTimeIdEntity; +import lombok.*; +import org.hibernate.validator.constraints.Length; + +import javax.persistence.*; +import javax.validation.constraints.NotNull; + +@Getter +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@Table(name = "tbl_notice") +@Entity +public class Notice extends BaseTimeIdEntity { + + @NotNull + @Length(max = 20) + private String title; + + @NotNull + @Length(max = 2000) + private String content; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "company_id", nullable = false) + private Company company; + + @Builder + public Notice(String title, String content, Company company) { + this.title = title; + this.content = content; + this.company = company; + } +} diff --git a/src/main/java/com/gsp/bridge/domain/notice/domain/NoticeAttachmentFile.java b/src/main/java/com/gsp/bridge/domain/notice/domain/NoticeAttachmentFile.java new file mode 100644 index 0000000..7b88ed2 --- /dev/null +++ b/src/main/java/com/gsp/bridge/domain/notice/domain/NoticeAttachmentFile.java @@ -0,0 +1,32 @@ +package com.gsp.bridge.domain.notice.domain; + +import com.gsp.bridge.global.entity.BaseTimeIdEntity; +import lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import org.hibernate.validator.constraints.Length; + +import javax.persistence.*; +import javax.validation.constraints.NotNull; + +@Getter +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@Table(name = "tbl_notice_attachment_file") +@Entity +public class NoticeAttachmentFile extends BaseTimeIdEntity { + + @NotNull + @Length(max = 255) + private String noticeAttachmentFileUrl; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "notice_id", nullable = false) + private Notice notice; + + @Builder + public NoticeAttachmentFile(String noticeAttachmentFileUrl, Notice notice) { + this.noticeAttachmentFileUrl = noticeAttachmentFileUrl; + this.notice = notice; + } +} diff --git a/src/main/java/com/gsp/bridge/domain/notice/domain/repository/NoticeAttachmentFileRepository.java b/src/main/java/com/gsp/bridge/domain/notice/domain/repository/NoticeAttachmentFileRepository.java new file mode 100644 index 0000000..fe84684 --- /dev/null +++ b/src/main/java/com/gsp/bridge/domain/notice/domain/repository/NoticeAttachmentFileRepository.java @@ -0,0 +1,8 @@ +package com.gsp.bridge.domain.notice.domain.repository; + +import com.gsp.bridge.domain.notice.domain.NoticeAttachmentFile; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface NoticeAttachmentFileRepository extends JpaRepository { + +} diff --git a/src/main/java/com/gsp/bridge/domain/notice/domain/repository/NoticeRepository.java b/src/main/java/com/gsp/bridge/domain/notice/domain/repository/NoticeRepository.java new file mode 100644 index 0000000..6dc3d11 --- /dev/null +++ b/src/main/java/com/gsp/bridge/domain/notice/domain/repository/NoticeRepository.java @@ -0,0 +1,7 @@ +package com.gsp.bridge.domain.notice.domain.repository; + +import com.gsp.bridge.domain.notice.domain.Notice; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface NoticeRepository extends JpaRepository { +} diff --git a/src/test/java/com/gsp/bridge/doamin/notice/domain/NoticeAttachmentFileTest.java b/src/test/java/com/gsp/bridge/doamin/notice/domain/NoticeAttachmentFileTest.java new file mode 100644 index 0000000..1a62060 --- /dev/null +++ b/src/test/java/com/gsp/bridge/doamin/notice/domain/NoticeAttachmentFileTest.java @@ -0,0 +1,34 @@ +package com.gsp.bridge.doamin.notice.domain; + +import com.gsp.bridge.domain.notice.domain.Notice; +import com.gsp.bridge.domain.notice.domain.NoticeAttachmentFile; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertAll; + +class NoticeAttachmentFileTest { + + @Test + void 공지사항_첨부파일_객체_생성_성공_테스트() { + // given + String noticeAttachmentFileUrl = "https:/~~~"; + String noticeTitle = "공지사항"; + Notice notice = Notice.builder() + .title(noticeTitle) + .build(); + + // when + NoticeAttachmentFile noticeAttachmentFile = NoticeAttachmentFile.builder() + .noticeAttachmentFileUrl(noticeAttachmentFileUrl) + .notice(notice) + .build(); + + // then + assertAll( + () -> assertThat(noticeAttachmentFile).isNotNull(), + () -> assertThat(noticeAttachmentFile.getNoticeAttachmentFileUrl()).isEqualTo(noticeAttachmentFileUrl), + () -> assertThat(noticeAttachmentFile.getNotice()).isEqualTo(notice) + ); + } +} diff --git a/src/test/java/com/gsp/bridge/doamin/notice/domain/NoticeTest.java b/src/test/java/com/gsp/bridge/doamin/notice/domain/NoticeTest.java new file mode 100644 index 0000000..7d75037 --- /dev/null +++ b/src/test/java/com/gsp/bridge/doamin/notice/domain/NoticeTest.java @@ -0,0 +1,37 @@ +package com.gsp.bridge.doamin.notice.domain; + +import com.gsp.bridge.domain.company.domain.entity.Company; +import com.gsp.bridge.domain.notice.domain.Notice; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertAll; + +class NoticeTest { + + @Test + void 공지사항_객체_생성_성공_테스트() { + // given + String title = "공지사항 제목"; + String content = "공지사항 내용"; + String companyName = "company"; + Company company = Company.builder() + .companyName(companyName) + .build(); + + // when + Notice notice = Notice.builder() + .title(title) + .content(content) + .company(company) + .build(); + + // then + assertAll( + () -> assertThat(notice).isNotNull(), + () -> assertThat(notice.getTitle()).isEqualTo(title), + () -> assertThat(notice.getContent()).isEqualTo(content), + () -> assertThat(notice.getCompany()).isEqualTo(company) + ); + } +}