diff --git a/src/main/java/com/sequence/anonymous/chat/application/ChatService.java b/src/main/java/com/sequence/anonymous/chat/application/ChatService.java new file mode 100644 index 0000000..d55859b --- /dev/null +++ b/src/main/java/com/sequence/anonymous/chat/application/ChatService.java @@ -0,0 +1,12 @@ +package com.sequence.anonymous.chat.application; + +import com.sequence.anonymous.chat.domain.repository.ChatRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class ChatService { + + private final ChatRepository chatRepository; +} diff --git a/src/main/java/com/sequence/anonymous/chat/domain/Chat.java b/src/main/java/com/sequence/anonymous/chat/domain/Chat.java new file mode 100644 index 0000000..e5131b8 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/chat/domain/Chat.java @@ -0,0 +1,32 @@ +package com.sequence.anonymous.chat.domain; + +import com.google.common.base.Preconditions; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import java.util.UUID; +import lombok.Getter; + +@Entity +@Getter +public class Chat { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(nullable = false, unique = true) + private UUID chatIdentifier; + + protected Chat() { + } + + public Chat(UUID chatIdentifier) { + Preconditions.checkArgument(chatIdentifier != null, "chatIdentifier must be provided"); + + this.id = null; + this.chatIdentifier = chatIdentifier; + } +} diff --git a/src/main/java/com/sequence/anonymous/chat/domain/repository/ChatRepository.java b/src/main/java/com/sequence/anonymous/chat/domain/repository/ChatRepository.java new file mode 100644 index 0000000..8544b9a --- /dev/null +++ b/src/main/java/com/sequence/anonymous/chat/domain/repository/ChatRepository.java @@ -0,0 +1,10 @@ +package com.sequence.anonymous.chat.domain.repository; + +import com.sequence.anonymous.chat.domain.Chat; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface ChatRepository extends JpaRepository { + +} diff --git a/src/main/java/com/sequence/anonymous/chat/presentation/ChatController.java b/src/main/java/com/sequence/anonymous/chat/presentation/ChatController.java new file mode 100644 index 0000000..72538d6 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/chat/presentation/ChatController.java @@ -0,0 +1,13 @@ +package com.sequence.anonymous.chat.presentation; + +import com.sequence.anonymous.chat.application.ChatService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +@RequiredArgsConstructor +@RequestMapping("/chats") +public class ChatController { + private final ChatService chatService; +} diff --git a/src/main/java/com/sequence/anonymous/college/application/CollegeService.java b/src/main/java/com/sequence/anonymous/college/application/CollegeService.java new file mode 100644 index 0000000..a0713f5 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/college/application/CollegeService.java @@ -0,0 +1,11 @@ +package com.sequence.anonymous.college.application; + +import com.sequence.anonymous.college.domain.repository.CollegeRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class CollegeService { + private final CollegeRepository collegeRepository; +} diff --git a/src/main/java/com/sequence/anonymous/college/application/DepartmentService.java b/src/main/java/com/sequence/anonymous/college/application/DepartmentService.java new file mode 100644 index 0000000..b25dbde --- /dev/null +++ b/src/main/java/com/sequence/anonymous/college/application/DepartmentService.java @@ -0,0 +1,11 @@ +package com.sequence.anonymous.college.application; + +import com.sequence.anonymous.college.domain.repository.DepartmentRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class DepartmentService { + private final DepartmentRepository departmentRepository; +} diff --git a/src/main/java/com/sequence/anonymous/college/domain/College.java b/src/main/java/com/sequence/anonymous/college/domain/College.java new file mode 100644 index 0000000..b68e8fa --- /dev/null +++ b/src/main/java/com/sequence/anonymous/college/domain/College.java @@ -0,0 +1,42 @@ +package com.sequence.anonymous.college.domain; + +import com.google.common.base.Preconditions; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import lombok.Getter; +import org.apache.commons.lang3.ObjectUtils; +import org.springframework.data.geo.Point; + +@Entity +@Getter +public class College { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(length = 20, nullable = false, unique = true) + private String name; + + private Point location; + + protected College() { + } + + public College(String name, Point location) { + Preconditions.checkArgument(name != null, "name must be provided"); + Preconditions.checkArgument(location != null, "location must be provided"); + + this.id = null; + this.name = name; + this.location = location; + } + + public void update(String name, Point location) { + this.name = ObjectUtils.defaultIfNull(name, this.name); + this.location = ObjectUtils.defaultIfNull(location, this.location); + } +} diff --git a/src/main/java/com/sequence/anonymous/college/domain/Department.java b/src/main/java/com/sequence/anonymous/college/domain/Department.java new file mode 100644 index 0000000..9e8bfdb --- /dev/null +++ b/src/main/java/com/sequence/anonymous/college/domain/Department.java @@ -0,0 +1,44 @@ +package com.sequence.anonymous.college.domain; + +import com.google.common.base.Preconditions; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import lombok.Getter; +import org.apache.commons.lang3.ObjectUtils; + +@Entity +@Getter +public class Department { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(length = 30, nullable = false) + private String name; + + @ManyToOne + @JoinColumn(name = "college_id") + private College college; + + protected Department() { + } + + public Department(String name, College college) { + Preconditions.checkArgument(name != null, "name must be provided"); + Preconditions.checkArgument(college != null, "college must be provided"); + + this.id = null; + this.name = name; + this.college = college; + } + + public void update(String name) { + this.name = ObjectUtils.defaultIfNull(name, this.name); + } +} diff --git a/src/main/java/com/sequence/anonymous/college/domain/repository/CollegeRepository.java b/src/main/java/com/sequence/anonymous/college/domain/repository/CollegeRepository.java new file mode 100644 index 0000000..5854f04 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/college/domain/repository/CollegeRepository.java @@ -0,0 +1,10 @@ +package com.sequence.anonymous.college.domain.repository; + +import com.sequence.anonymous.college.domain.College; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface CollegeRepository extends JpaRepository { + +} diff --git a/src/main/java/com/sequence/anonymous/college/domain/repository/DepartmentRepository.java b/src/main/java/com/sequence/anonymous/college/domain/repository/DepartmentRepository.java new file mode 100644 index 0000000..1381680 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/college/domain/repository/DepartmentRepository.java @@ -0,0 +1,10 @@ +package com.sequence.anonymous.college.domain.repository; + +import com.sequence.anonymous.college.domain.Department; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface DepartmentRepository extends JpaRepository { + +} diff --git a/src/main/java/com/sequence/anonymous/college/presentation/CollegeController.java b/src/main/java/com/sequence/anonymous/college/presentation/CollegeController.java new file mode 100644 index 0000000..28150a5 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/college/presentation/CollegeController.java @@ -0,0 +1,13 @@ +package com.sequence.anonymous.college.presentation; + +import com.sequence.anonymous.college.application.CollegeService; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/colleges") +public class CollegeController { + private final CollegeService collegeService; +} diff --git a/src/main/java/com/sequence/anonymous/college/presentation/DepartmentController.java b/src/main/java/com/sequence/anonymous/college/presentation/DepartmentController.java new file mode 100644 index 0000000..b530d57 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/college/presentation/DepartmentController.java @@ -0,0 +1,13 @@ +package com.sequence.anonymous.college.presentation; + +import com.sequence.anonymous.college.application.DepartmentService; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/departments") +public class DepartmentController { + private final DepartmentService departmentService; +} diff --git a/src/main/java/com/sequence/anonymous/college/presentation/dto/DepartmentUpdateRequestDto.java b/src/main/java/com/sequence/anonymous/college/presentation/dto/DepartmentUpdateRequestDto.java new file mode 100644 index 0000000..ae23f6f --- /dev/null +++ b/src/main/java/com/sequence/anonymous/college/presentation/dto/DepartmentUpdateRequestDto.java @@ -0,0 +1,12 @@ +package com.sequence.anonymous.college.presentation.dto; + +import lombok.Getter; + +@Getter +public class DepartmentUpdateRequestDto { + + private String name; + + protected DepartmentUpdateRequestDto() { + } +} diff --git a/src/main/java/com/sequence/anonymous/college/presentation/dto/UpdateRequestDto.java b/src/main/java/com/sequence/anonymous/college/presentation/dto/UpdateRequestDto.java new file mode 100644 index 0000000..4b43301 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/college/presentation/dto/UpdateRequestDto.java @@ -0,0 +1,15 @@ +package com.sequence.anonymous.college.presentation.dto; + +import lombok.Getter; +import org.springframework.data.geo.Point; + +@Getter +public class UpdateRequestDto { + + private String name; + + private Point location; + + protected UpdateRequestDto() { + } +} diff --git a/src/main/java/com/sequence/anonymous/common/BaseTimeEntity.java b/src/main/java/com/sequence/anonymous/common/BaseTimeEntity.java new file mode 100644 index 0000000..30e9088 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/common/BaseTimeEntity.java @@ -0,0 +1,23 @@ +package com.sequence.anonymous.common; + +import jakarta.persistence.Column; +import jakarta.persistence.EntityListeners; +import jakarta.persistence.MappedSuperclass; +import java.time.LocalDateTime; +import lombok.Getter; +import org.springframework.data.annotation.CreatedDate; +import org.springframework.data.annotation.LastModifiedDate; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +@Getter +@MappedSuperclass +@EntityListeners(AuditingEntityListener.class) +public abstract class BaseTimeEntity { + + @CreatedDate + @Column(updatable = false) + private LocalDateTime createdAt; + + @LastModifiedDate + private LocalDateTime updatedAt; +} diff --git a/src/main/java/com/sequence/anonymous/invite/application/InviteService.java b/src/main/java/com/sequence/anonymous/invite/application/InviteService.java new file mode 100644 index 0000000..0fcfe17 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/invite/application/InviteService.java @@ -0,0 +1,11 @@ +package com.sequence.anonymous.invite.application; + +import com.sequence.anonymous.invite.domain.repository.InviteRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class InviteService { + private final InviteRepository inviteRepository; +} diff --git a/src/main/java/com/sequence/anonymous/invite/domain/Invite.java b/src/main/java/com/sequence/anonymous/invite/domain/Invite.java new file mode 100644 index 0000000..e3c9c0c --- /dev/null +++ b/src/main/java/com/sequence/anonymous/invite/domain/Invite.java @@ -0,0 +1,64 @@ +package com.sequence.anonymous.invite.domain; + +import com.google.common.base.Preconditions; +import com.sequence.anonymous.user.domain.User; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import lombok.Getter; +import org.apache.commons.lang3.ObjectUtils; + +@Entity +@Getter +public class Invite { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne + @JoinColumn(name = "inviter_id") + private User inviter; + + @ManyToOne + @JoinColumn(name = "invitee_id") + private User invitee; + + @Column(length = 10) + @Enumerated(EnumType.STRING) + private Status status; + + + @Column(length = 15) + @Enumerated(EnumType.STRING) + private Kind kind; + + protected Invite() { + } + + public Invite(User inviter, User invitee, Kind kind) { + this(inviter, invitee, kind, Status.WAIT); + } + + private Invite(User inviter, User invitee, Kind kind, Status status) { + Preconditions.checkArgument(inviter != null, "inviter must be provided"); + Preconditions.checkArgument(invitee != null, "invitee must be provided"); + Preconditions.checkArgument(kind != null, "kind must be provided"); + Preconditions.checkArgument(status != null, "status must be provided"); + + this.inviter = inviter; + this.invitee = invitee; + this.kind = kind; + this.status = status; + } + + public void update(Status status) { + this.status = ObjectUtils.defaultIfNull(status, this.status); + } +} diff --git a/src/main/java/com/sequence/anonymous/invite/domain/Kind.java b/src/main/java/com/sequence/anonymous/invite/domain/Kind.java new file mode 100644 index 0000000..fce7fd3 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/invite/domain/Kind.java @@ -0,0 +1,5 @@ +package com.sequence.anonymous.invite.domain; + +public enum Kind { + MATCH_POST, FRIEND +} diff --git a/src/main/java/com/sequence/anonymous/invite/domain/Status.java b/src/main/java/com/sequence/anonymous/invite/domain/Status.java new file mode 100644 index 0000000..91c2eab --- /dev/null +++ b/src/main/java/com/sequence/anonymous/invite/domain/Status.java @@ -0,0 +1,5 @@ +package com.sequence.anonymous.invite.domain; + +public enum Status { + WAIT, DONE +} diff --git a/src/main/java/com/sequence/anonymous/invite/domain/repository/InviteRepository.java b/src/main/java/com/sequence/anonymous/invite/domain/repository/InviteRepository.java new file mode 100644 index 0000000..aeceef1 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/invite/domain/repository/InviteRepository.java @@ -0,0 +1,11 @@ +package com.sequence.anonymous.invite.domain.repository; + +import com.sequence.anonymous.invite.domain.Invite; +import lombok.RequiredArgsConstructor; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface InviteRepository extends JpaRepository { + +} diff --git a/src/main/java/com/sequence/anonymous/invite/presentation/InviteController.java b/src/main/java/com/sequence/anonymous/invite/presentation/InviteController.java new file mode 100644 index 0000000..653c8eb --- /dev/null +++ b/src/main/java/com/sequence/anonymous/invite/presentation/InviteController.java @@ -0,0 +1,13 @@ +package com.sequence.anonymous.invite.presentation; + +import com.sequence.anonymous.invite.application.InviteService; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/invites") +public class InviteController { + private final InviteService inviteService; +} diff --git a/src/main/java/com/sequence/anonymous/invite/presentation/dto/UpdateRequestDto.java b/src/main/java/com/sequence/anonymous/invite/presentation/dto/UpdateRequestDto.java new file mode 100644 index 0000000..19db05c --- /dev/null +++ b/src/main/java/com/sequence/anonymous/invite/presentation/dto/UpdateRequestDto.java @@ -0,0 +1,13 @@ +package com.sequence.anonymous.invite.presentation.dto; + +import com.sequence.anonymous.invite.domain.Status; +import lombok.Getter; + +@Getter +public class UpdateRequestDto { + + private Status status; + + protected UpdateRequestDto() { + } +} diff --git a/src/main/java/com/sequence/anonymous/matchpost/application/MatchPostService.java b/src/main/java/com/sequence/anonymous/matchpost/application/MatchPostService.java new file mode 100644 index 0000000..6fb2250 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/matchpost/application/MatchPostService.java @@ -0,0 +1,11 @@ +package com.sequence.anonymous.matchpost.application; + +import com.sequence.anonymous.matchpost.domain.repository.MatchPostRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class MatchPostService { + private final MatchPostRepository matchPostRepository; +} diff --git a/src/main/java/com/sequence/anonymous/matchpost/domain/MatchPost.java b/src/main/java/com/sequence/anonymous/matchpost/domain/MatchPost.java new file mode 100644 index 0000000..277ab1f --- /dev/null +++ b/src/main/java/com/sequence/anonymous/matchpost/domain/MatchPost.java @@ -0,0 +1,67 @@ +package com.sequence.anonymous.matchpost.domain; + +import com.google.common.base.Preconditions; +import com.sequence.anonymous.common.BaseTimeEntity; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import lombok.Getter; +import org.apache.commons.lang3.ObjectUtils; + +@Entity +@Getter +public class MatchPost extends BaseTimeEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(length = 40, nullable = false) + private String title; + + @Column(columnDefinition = "TEXT", nullable = false) + private String introduce; + + @Column(length = 50) + private String appeal; + + @Column(length = 10) + @Enumerated(EnumType.STRING) + private Status status; + + protected MatchPost() { + } + + public MatchPost(String title, String introduce) { + this(title, introduce, "No Data"); + } + + public MatchPost(String title, String introduce, String appeal) { + this(null, title, introduce, appeal, Status.RECRUIT); + } + + protected MatchPost(Long id, String title, String introduce, String appeal, + Status status) { + Preconditions.checkArgument(title != null, "title must be provided"); + Preconditions.checkArgument(introduce != null, "introduce must be provided"); + Preconditions.checkArgument(appeal != null, "appeal must be provided"); + Preconditions.checkArgument(status != null, "status must be provided"); + + this.id = id; + this.title = title; + this.introduce = introduce; + this.appeal = appeal; + this.status = status; + } + + public void update(String title, String introduce, String appeal, Status status) { + this.title = ObjectUtils.defaultIfNull(title, this.title); + this.introduce = ObjectUtils.defaultIfNull(introduce, this.introduce); + this.appeal = ObjectUtils.defaultIfNull(appeal, this.appeal); + this.status = ObjectUtils.defaultIfNull(status, this.status); + } +} diff --git a/src/main/java/com/sequence/anonymous/matchpost/domain/Status.java b/src/main/java/com/sequence/anonymous/matchpost/domain/Status.java new file mode 100644 index 0000000..e1fd02b --- /dev/null +++ b/src/main/java/com/sequence/anonymous/matchpost/domain/Status.java @@ -0,0 +1,5 @@ +package com.sequence.anonymous.matchpost.domain; + +public enum Status { + RECRUIT, DONE +} diff --git a/src/main/java/com/sequence/anonymous/matchpost/domain/repository/MatchPostRepository.java b/src/main/java/com/sequence/anonymous/matchpost/domain/repository/MatchPostRepository.java new file mode 100644 index 0000000..ecf77ee --- /dev/null +++ b/src/main/java/com/sequence/anonymous/matchpost/domain/repository/MatchPostRepository.java @@ -0,0 +1,10 @@ +package com.sequence.anonymous.matchpost.domain.repository; + +import com.sequence.anonymous.matchpost.domain.MatchPost; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface MatchPostRepository extends JpaRepository { + +} diff --git a/src/main/java/com/sequence/anonymous/matchpost/presentation/MatchPostController.java b/src/main/java/com/sequence/anonymous/matchpost/presentation/MatchPostController.java new file mode 100644 index 0000000..102c30c --- /dev/null +++ b/src/main/java/com/sequence/anonymous/matchpost/presentation/MatchPostController.java @@ -0,0 +1,15 @@ +package com.sequence.anonymous.matchpost.presentation; + +import com.sequence.anonymous.matchpost.application.MatchPostService; +import com.sequence.anonymous.matchpost.domain.repository.MatchPostRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/match-posts") +public class MatchPostController { + private final MatchPostService matchPostService; +} diff --git a/src/main/java/com/sequence/anonymous/matchpost/presentation/dto/UpdateRequestDto.java b/src/main/java/com/sequence/anonymous/matchpost/presentation/dto/UpdateRequestDto.java new file mode 100644 index 0000000..9a23af0 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/matchpost/presentation/dto/UpdateRequestDto.java @@ -0,0 +1,19 @@ +package com.sequence.anonymous.matchpost.presentation.dto; + +import com.sequence.anonymous.matchpost.domain.Status; +import lombok.Getter; + +@Getter +public class UpdateRequestDto { + + private String title; + + private String introduce; + + private String appeal; + + private Status status; + + protected UpdateRequestDto() { + } +} diff --git a/src/main/java/com/sequence/anonymous/relation/application/RelationService.java b/src/main/java/com/sequence/anonymous/relation/application/RelationService.java new file mode 100644 index 0000000..0803202 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/relation/application/RelationService.java @@ -0,0 +1,11 @@ +package com.sequence.anonymous.relation.application; + +import com.sequence.anonymous.relation.domain.repository.RelationRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class RelationService { + private final RelationRepository relationRepository; +} diff --git a/src/main/java/com/sequence/anonymous/relation/domain/Relation.java b/src/main/java/com/sequence/anonymous/relation/domain/Relation.java new file mode 100644 index 0000000..cd64468 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/relation/domain/Relation.java @@ -0,0 +1,53 @@ +package com.sequence.anonymous.relation.domain; + +import com.google.common.base.Preconditions; +import com.sequence.anonymous.user.domain.User; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import lombok.Getter; +import org.apache.commons.lang3.ObjectUtils; + +@Entity +@Getter +public class Relation { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne + @JoinColumn(name = "user1_id") + private User user1; + + @ManyToOne + @JoinColumn(name = "user2_id") + private User user2; + + @Column(length = 10) + @Enumerated(EnumType.STRING) + private Status status; + + protected Relation() { + } + + public Relation(User user1, User user2, Status status) { + Preconditions.checkArgument(user1 != null, "user1 must be provided"); + Preconditions.checkArgument(user2 != null, "user2 must be provided"); + Preconditions.checkArgument(status != null, "status must be provided"); + + this.user1 = user1; + this.user2 = user2; + this.status = status; + } + + public void update(Status status) { + this.status = ObjectUtils.defaultIfNull(status, this.status); + } +} diff --git a/src/main/java/com/sequence/anonymous/relation/domain/Status.java b/src/main/java/com/sequence/anonymous/relation/domain/Status.java new file mode 100644 index 0000000..796bdab --- /dev/null +++ b/src/main/java/com/sequence/anonymous/relation/domain/Status.java @@ -0,0 +1,5 @@ +package com.sequence.anonymous.relation.domain; + +public enum Status { + BAN, FRIEND +} diff --git a/src/main/java/com/sequence/anonymous/relation/domain/repository/RelationRepository.java b/src/main/java/com/sequence/anonymous/relation/domain/repository/RelationRepository.java new file mode 100644 index 0000000..f5f1b55 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/relation/domain/repository/RelationRepository.java @@ -0,0 +1,10 @@ +package com.sequence.anonymous.relation.domain.repository; + +import com.sequence.anonymous.relation.domain.Relation; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface RelationRepository extends JpaRepository { + +} diff --git a/src/main/java/com/sequence/anonymous/relation/presentation/RelationController.java b/src/main/java/com/sequence/anonymous/relation/presentation/RelationController.java new file mode 100644 index 0000000..d9e0f7e --- /dev/null +++ b/src/main/java/com/sequence/anonymous/relation/presentation/RelationController.java @@ -0,0 +1,12 @@ +package com.sequence.anonymous.relation.presentation; + +import com.sequence.anonymous.relation.application.RelationService; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +@RestController +@RequiredArgsConstructor +@RequestMapping("/relations") +public class RelationController { +private final RelationService relationService; +} diff --git a/src/main/java/com/sequence/anonymous/relation/presentation/dto/UpdateRequestDto.java b/src/main/java/com/sequence/anonymous/relation/presentation/dto/UpdateRequestDto.java new file mode 100644 index 0000000..15776b0 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/relation/presentation/dto/UpdateRequestDto.java @@ -0,0 +1,13 @@ +package com.sequence.anonymous.relation.presentation.dto; + +import com.sequence.anonymous.relation.domain.Status; +import lombok.Getter; + +@Getter +public class UpdateRequestDto { + + private Status status; + + protected UpdateRequestDto() { + } +} diff --git a/src/main/java/com/sequence/anonymous/tag/application/TagService.java b/src/main/java/com/sequence/anonymous/tag/application/TagService.java new file mode 100644 index 0000000..2138ed0 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/tag/application/TagService.java @@ -0,0 +1,11 @@ +package com.sequence.anonymous.tag.application; + +import com.sequence.anonymous.tag.domain.repository.TagRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class TagService { + private final TagRepository tagRepository; +} diff --git a/src/main/java/com/sequence/anonymous/tag/domain/Tag.java b/src/main/java/com/sequence/anonymous/tag/domain/Tag.java new file mode 100644 index 0000000..f2529c8 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/tag/domain/Tag.java @@ -0,0 +1,31 @@ +package com.sequence.anonymous.tag.domain; + +import com.google.common.base.Preconditions; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import lombok.Getter; + +@Entity +@Getter +public class Tag { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(length = 15, nullable = false, unique = true) + private String name; + + protected Tag() { + } + + public Tag(String name) { + Preconditions.checkArgument(name != null, "name must be provided"); + + this.id = null; + this.name = name; + } +} diff --git a/src/main/java/com/sequence/anonymous/tag/domain/repository/TagRepository.java b/src/main/java/com/sequence/anonymous/tag/domain/repository/TagRepository.java new file mode 100644 index 0000000..11a0034 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/tag/domain/repository/TagRepository.java @@ -0,0 +1,10 @@ +package com.sequence.anonymous.tag.domain.repository; + +import com.sequence.anonymous.tag.domain.Tag; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface TagRepository extends JpaRepository { + +} diff --git a/src/main/java/com/sequence/anonymous/tag/presentation/TagController.java b/src/main/java/com/sequence/anonymous/tag/presentation/TagController.java new file mode 100644 index 0000000..4b37728 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/tag/presentation/TagController.java @@ -0,0 +1,13 @@ +package com.sequence.anonymous.tag.presentation; + +import com.sequence.anonymous.tag.application.TagService; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/tags") +public class TagController { + private final TagService tagService; +} diff --git a/src/main/java/com/sequence/anonymous/user/application/AttachmentService.java b/src/main/java/com/sequence/anonymous/user/application/AttachmentService.java new file mode 100644 index 0000000..b6f983a --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/application/AttachmentService.java @@ -0,0 +1,11 @@ +package com.sequence.anonymous.user.application; + +import com.sequence.anonymous.user.domain.repository.AttachmentRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class AttachmentService { + private final AttachmentRepository attachmentRepository; +} diff --git a/src/main/java/com/sequence/anonymous/user/application/UserChatService.java b/src/main/java/com/sequence/anonymous/user/application/UserChatService.java new file mode 100644 index 0000000..2348329 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/application/UserChatService.java @@ -0,0 +1,11 @@ +package com.sequence.anonymous.user.application; + +import com.sequence.anonymous.user.domain.repository.UserChatRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class UserChatService { + private final UserChatRepository userChatRepository; +} diff --git a/src/main/java/com/sequence/anonymous/user/application/UserMatchPostService.java b/src/main/java/com/sequence/anonymous/user/application/UserMatchPostService.java new file mode 100644 index 0000000..896f5c1 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/application/UserMatchPostService.java @@ -0,0 +1,11 @@ +package com.sequence.anonymous.user.application; + +import com.sequence.anonymous.user.domain.repository.UserMatchPostRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class UserMatchPostService { + private final UserMatchPostRepository userMatchPostRepository; +} diff --git a/src/main/java/com/sequence/anonymous/user/application/UserService.java b/src/main/java/com/sequence/anonymous/user/application/UserService.java new file mode 100644 index 0000000..a678835 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/application/UserService.java @@ -0,0 +1,11 @@ +package com.sequence.anonymous.user.application; + +import com.sequence.anonymous.user.domain.repository.UserRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class UserService { + private final UserRepository userRepository; +} diff --git a/src/main/java/com/sequence/anonymous/user/application/UserTagService.java b/src/main/java/com/sequence/anonymous/user/application/UserTagService.java new file mode 100644 index 0000000..01abb57 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/application/UserTagService.java @@ -0,0 +1,11 @@ +package com.sequence.anonymous.user.application; + +import com.sequence.anonymous.user.domain.repository.UserTagRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class UserTagService { + private final UserTagRepository userTagRepository; +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/Attachment.java b/src/main/java/com/sequence/anonymous/user/domain/Attachment.java new file mode 100644 index 0000000..039cc73 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/Attachment.java @@ -0,0 +1,48 @@ +package com.sequence.anonymous.user.domain; + +import com.google.common.base.Preconditions; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import java.util.UUID; +import lombok.Getter; + +@Entity +@Getter +public class Attachment { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(nullable = false, unique = true) + private UUID name; + + @ManyToOne + @JoinColumn(name = "user_id") + private User user; + + @Column(length = 10) + @Enumerated(EnumType.STRING) + private FileType type; + + protected Attachment() { + } + + public Attachment(UUID name, User user, FileType type) { + Preconditions.checkArgument(name != null, "name must be provided"); + Preconditions.checkArgument(user != null, "user must be provided"); + Preconditions.checkArgument(type != null, "type must be provided"); + + this.id = null; + this.name = name; + this.user = user; + this.type = type; + } +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/FileType.java b/src/main/java/com/sequence/anonymous/user/domain/FileType.java new file mode 100644 index 0000000..6021ffc --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/FileType.java @@ -0,0 +1,5 @@ +package com.sequence.anonymous.user.domain; + +public enum FileType { + MP4, MP3, PNG, JPEG +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/Gender.java b/src/main/java/com/sequence/anonymous/user/domain/Gender.java new file mode 100644 index 0000000..f6b9fea --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/Gender.java @@ -0,0 +1,5 @@ +package com.sequence.anonymous.user.domain; + +public enum Gender { + MALE, FEMALE +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/MatchPostRole.java b/src/main/java/com/sequence/anonymous/user/domain/MatchPostRole.java new file mode 100644 index 0000000..bee3e2e --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/MatchPostRole.java @@ -0,0 +1,5 @@ +package com.sequence.anonymous.user.domain; + +public enum MatchPostRole { + OWNER, PARTICIPANT, MATCHED_USER +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/User.java b/src/main/java/com/sequence/anonymous/user/domain/User.java index 50c88bc..ad9c8c7 100644 --- a/src/main/java/com/sequence/anonymous/user/domain/User.java +++ b/src/main/java/com/sequence/anonymous/user/domain/User.java @@ -1,6 +1,9 @@ package com.sequence.anonymous.user.domain; import com.google.common.base.Preconditions; +import com.sequence.anonymous.college.domain.College; +import com.sequence.anonymous.college.domain.Department; +import com.sequence.anonymous.common.BaseTimeEntity; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.EnumType; @@ -8,12 +11,13 @@ import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.validation.constraints.Email; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; import lombok.Getter; @Entity @Getter -public class User { +public class User extends BaseTimeEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -25,30 +29,74 @@ public class User { @Enumerated(EnumType.STRING) private OAuth2Provider provider; - @Column(length = 40) + @Column(length = 10, nullable = false) + private String name; + + @Column(nullable = false) + private int age; + + @Enumerated(EnumType.STRING) + @Column(length = 10, nullable = false) + private Gender gender; + + @ManyToOne + @JoinColumn(name = "college_id") + private College college; + + @ManyToOne + @JoinColumn(name = "department_id") + private Department department; + + @Column(length = 40, unique = true) private String email; @Column(length = 15) @Enumerated(EnumType.STRING) private Role role; + private boolean withdrawal; + protected User() { } public User(String providerId, OAuth2Provider provider, String email) { - this(null, providerId, provider, email, Role.ROLE_USER); + this(null, providerId, provider, email, Role.ROLE_USER, false); } - private User(Long id, String providerId, OAuth2Provider provider, String email, Role role) { + private User(Long id, String providerId, OAuth2Provider provider, String email, Role role, + Boolean withdrawal) { Preconditions.checkArgument(providerId != null, "providerId must be provided."); Preconditions.checkArgument(provider != null, "provider must be provided."); Preconditions.checkArgument(email != null, "email must be provided."); Preconditions.checkArgument(role != null, "role must be provided."); + Preconditions.checkArgument(withdrawal != null, "withdrawal must be provided."); + Preconditions.checkArgument(withdrawal, "initial value of withdrawal field must be false."); this.id = id; this.providerId = providerId; this.provider = provider; this.email = email; this.role = role; + this.withdrawal = withdrawal; + } + + public void initializeProfile(String name, Integer age, Gender gender, College college, + Department department) { + Preconditions.checkArgument(name != null, "name must be provided."); + Preconditions.checkArgument(gender != null, "gender must be provided."); + Preconditions.checkArgument(college != null, "college must be provided."); + Preconditions.checkArgument(department != null, "department must be provided."); + Preconditions.checkArgument(age != null, "age must be provided."); + Preconditions.checkArgument((20 <= age && age <= 30), "age must be between 20-30"); + + this.name = name; + this.age = age; + this.gender = gender; + this.college = college; + this.department = department; + } + + public void withdrawal() { + this.withdrawal = true; } } diff --git a/src/main/java/com/sequence/anonymous/user/domain/UserChat.java b/src/main/java/com/sequence/anonymous/user/domain/UserChat.java new file mode 100644 index 0000000..27dd064 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/UserChat.java @@ -0,0 +1,40 @@ +package com.sequence.anonymous.user.domain; + +import com.google.common.base.Preconditions; +import com.sequence.anonymous.chat.domain.Chat; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import lombok.Getter; + +@Entity +@Getter +public class UserChat { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne + @JoinColumn(name = "user_id") + private User user; + + @ManyToOne + @JoinColumn(name = "chat_id") + private Chat chat; + + protected UserChat() { + } + + public UserChat(User user, Chat chat) { + Preconditions.checkArgument(user != null, "user must be provided"); + Preconditions.checkArgument(chat != null, "chat must be provided"); + + this.id = null; + this.user = user; + this.chat = chat; + } +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/UserMatchPost.java b/src/main/java/com/sequence/anonymous/user/domain/UserMatchPost.java new file mode 100644 index 0000000..e023e8c --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/UserMatchPost.java @@ -0,0 +1,48 @@ +package com.sequence.anonymous.user.domain; + +import com.google.common.base.Preconditions; +import com.sequence.anonymous.matchpost.domain.MatchPost; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import lombok.Getter; + +@Entity +@Getter +public class UserMatchPost { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne + @JoinColumn(name = "matchPost_id") + private MatchPost matchPost; + + @ManyToOne + @JoinColumn(name = "user_id") + private User user; + + @Column(length = 15) + @Enumerated(EnumType.STRING) + private MatchPostRole role; + + protected UserMatchPost() { + } + + public UserMatchPost(MatchPost matchPost, User user, MatchPostRole role) { + Preconditions.checkArgument(matchPost != null, "matchPost must be provided"); + Preconditions.checkArgument(user != null, "user must be provided"); + Preconditions.checkArgument(role != null, "role must be provided"); + + this.user = user; + this.matchPost = matchPost; + this.role = role; + } +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/UserTag.java b/src/main/java/com/sequence/anonymous/user/domain/UserTag.java new file mode 100644 index 0000000..6684954 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/UserTag.java @@ -0,0 +1,40 @@ +package com.sequence.anonymous.user.domain; + +import com.google.common.base.Preconditions; +import com.sequence.anonymous.tag.domain.Tag; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import lombok.Getter; + +@Entity +@Getter +public class UserTag { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne + @JoinColumn(name = "user_id") + private User user; + + @ManyToOne + @JoinColumn(name = "tag_id") + private Tag tag; + + protected UserTag() { + } + + public UserTag(User user, Tag tag) { + Preconditions.checkArgument(user != null, "User must be provided"); + Preconditions.checkArgument(tag != null, "Tag must be provided"); + + this.id = null; + this.user = user; + this.tag = tag; + } +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/repository/AttachmentRepository.java b/src/main/java/com/sequence/anonymous/user/domain/repository/AttachmentRepository.java new file mode 100644 index 0000000..6563594 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/repository/AttachmentRepository.java @@ -0,0 +1,10 @@ +package com.sequence.anonymous.user.domain.repository; + +import com.sequence.anonymous.user.domain.Attachment; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface AttachmentRepository extends JpaRepository { + +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/repository/UserChatRepository.java b/src/main/java/com/sequence/anonymous/user/domain/repository/UserChatRepository.java new file mode 100644 index 0000000..901d61e --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/repository/UserChatRepository.java @@ -0,0 +1,10 @@ +package com.sequence.anonymous.user.domain.repository; + +import com.sequence.anonymous.user.domain.UserChat; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface UserChatRepository extends JpaRepository { + +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/repository/UserMatchPostRepository.java b/src/main/java/com/sequence/anonymous/user/domain/repository/UserMatchPostRepository.java new file mode 100644 index 0000000..a1aca9f --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/repository/UserMatchPostRepository.java @@ -0,0 +1,10 @@ +package com.sequence.anonymous.user.domain.repository; + +import com.sequence.anonymous.user.domain.UserMatchPost; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface UserMatchPostRepository extends JpaRepository { + +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/repository/UserTagRepository.java b/src/main/java/com/sequence/anonymous/user/domain/repository/UserTagRepository.java new file mode 100644 index 0000000..d4178b0 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/repository/UserTagRepository.java @@ -0,0 +1,10 @@ +package com.sequence.anonymous.user.domain.repository; + +import com.sequence.anonymous.user.domain.UserTag; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface UserTagRepository extends JpaRepository { + +} diff --git a/src/main/java/com/sequence/anonymous/user/presentation/AttachmentController.java b/src/main/java/com/sequence/anonymous/user/presentation/AttachmentController.java new file mode 100644 index 0000000..4e50bd0 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/presentation/AttachmentController.java @@ -0,0 +1,14 @@ +package com.sequence.anonymous.user.presentation; + +import com.sequence.anonymous.user.application.AttachmentService; +import com.sequence.anonymous.user.domain.repository.AttachmentRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/attachments") +public class AttachmentController { + private final AttachmentService attachmentService; +} diff --git a/src/main/java/com/sequence/anonymous/user/presentation/UserChatController.java b/src/main/java/com/sequence/anonymous/user/presentation/UserChatController.java new file mode 100644 index 0000000..2b9879e --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/presentation/UserChatController.java @@ -0,0 +1,13 @@ +package com.sequence.anonymous.user.presentation; + +import com.sequence.anonymous.user.application.UserChatService; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/user-chats") +public class UserChatController { + private final UserChatService userChatService; +} diff --git a/src/main/java/com/sequence/anonymous/user/presentation/UserController.java b/src/main/java/com/sequence/anonymous/user/presentation/UserController.java new file mode 100644 index 0000000..f0f07be --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/presentation/UserController.java @@ -0,0 +1,14 @@ +package com.sequence.anonymous.user.presentation; + +import com.sequence.anonymous.user.application.UserService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/users") +public class UserController { + private final UserService userService; +} diff --git a/src/main/java/com/sequence/anonymous/user/presentation/UserMatchPostController.java b/src/main/java/com/sequence/anonymous/user/presentation/UserMatchPostController.java new file mode 100644 index 0000000..e5c52cc --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/presentation/UserMatchPostController.java @@ -0,0 +1,13 @@ +package com.sequence.anonymous.user.presentation; + +import com.sequence.anonymous.user.application.UserMatchPostService; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/user-match-posts") +public class UserMatchPostController { + private final UserMatchPostService userMatchPostService; +} diff --git a/src/main/java/com/sequence/anonymous/user/presentation/UserTagController.java b/src/main/java/com/sequence/anonymous/user/presentation/UserTagController.java new file mode 100644 index 0000000..4de38eb --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/presentation/UserTagController.java @@ -0,0 +1,13 @@ +package com.sequence.anonymous.user.presentation; + +import com.sequence.anonymous.user.application.UserTagService; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/user-tags") +public class UserTagController { + private final UserTagService userTagService; +}