diff --git a/src/main/java/com/sofa/linkiving/domain/report/cotroller/ReportApi.java b/src/main/java/com/sofa/linkiving/domain/report/cotroller/ReportApi.java new file mode 100644 index 00000000..0b3c634d --- /dev/null +++ b/src/main/java/com/sofa/linkiving/domain/report/cotroller/ReportApi.java @@ -0,0 +1,7 @@ +package com.sofa.linkiving.domain.report.cotroller; + +import io.swagger.v3.oas.annotations.tags.Tag; + +@Tag(name = "Report", description = "오류 및 버그 제보 관리 API") +public interface ReportApi { +} diff --git a/src/main/java/com/sofa/linkiving/domain/report/cotroller/ReportController.java b/src/main/java/com/sofa/linkiving/domain/report/cotroller/ReportController.java new file mode 100644 index 00000000..33551821 --- /dev/null +++ b/src/main/java/com/sofa/linkiving/domain/report/cotroller/ReportController.java @@ -0,0 +1,15 @@ +package com.sofa.linkiving.domain.report.cotroller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.sofa.linkiving.domain.report.service.ReportService; + +import lombok.RequiredArgsConstructor; + +@RestController +@RequestMapping("/v1/report") +@RequiredArgsConstructor +public class ReportController implements ReportApi { + private final ReportService reportService; +} diff --git a/src/main/java/com/sofa/linkiving/domain/report/entity/Report.java b/src/main/java/com/sofa/linkiving/domain/report/entity/Report.java new file mode 100644 index 00000000..69bd285b --- /dev/null +++ b/src/main/java/com/sofa/linkiving/domain/report/entity/Report.java @@ -0,0 +1,34 @@ +package com.sofa.linkiving.domain.report.entity; + +import com.sofa.linkiving.domain.member.entity.Member; +import com.sofa.linkiving.global.common.BaseEntity; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@Getter +@Table(name = "reports") +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class Report extends BaseEntity { + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "member_id", nullable = false) + Member member; + + @Column(nullable = false, columnDefinition = "TEXT") + String content; + + @Builder + public Report(Member member, String content) { + this.member = member; + this.content = content; + } +} diff --git a/src/main/java/com/sofa/linkiving/domain/report/repository/ReportRepository.java b/src/main/java/com/sofa/linkiving/domain/report/repository/ReportRepository.java new file mode 100644 index 00000000..08a4b1c1 --- /dev/null +++ b/src/main/java/com/sofa/linkiving/domain/report/repository/ReportRepository.java @@ -0,0 +1,10 @@ +package com.sofa.linkiving.domain.report.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import com.sofa.linkiving.domain.report.entity.Report; + +@Repository +public interface ReportRepository extends JpaRepository { +} diff --git a/src/main/java/com/sofa/linkiving/domain/report/service/ReportCommandService.java b/src/main/java/com/sofa/linkiving/domain/report/service/ReportCommandService.java new file mode 100644 index 00000000..348bbe74 --- /dev/null +++ b/src/main/java/com/sofa/linkiving/domain/report/service/ReportCommandService.java @@ -0,0 +1,13 @@ +package com.sofa.linkiving.domain.report.service; + +import org.springframework.stereotype.Service; + +import com.sofa.linkiving.domain.report.repository.ReportRepository; + +import lombok.RequiredArgsConstructor; + +@Service +@RequiredArgsConstructor +public class ReportCommandService { + private final ReportRepository reportRepository; +} diff --git a/src/main/java/com/sofa/linkiving/domain/report/service/ReportService.java b/src/main/java/com/sofa/linkiving/domain/report/service/ReportService.java new file mode 100644 index 00000000..9dcf61a4 --- /dev/null +++ b/src/main/java/com/sofa/linkiving/domain/report/service/ReportService.java @@ -0,0 +1,13 @@ +package com.sofa.linkiving.domain.report.service; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import lombok.RequiredArgsConstructor; + +@Service +@Transactional +@RequiredArgsConstructor +public class ReportService { + private final ReportCommandService reportCommandService; +}