diff --git a/src/main/kotlin/com/record/zooc/domain/Alarm.kt b/src/main/kotlin/com/record/zooc/domain/Alarm.kt new file mode 100644 index 0000000..55118e1 --- /dev/null +++ b/src/main/kotlin/com/record/zooc/domain/Alarm.kt @@ -0,0 +1,34 @@ +package com.record.zooc.domain + +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 java.time.LocalDateTime + +@Entity(name = "alarm") +class Alarm( + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", nullable = false) + var id: Int = 0, + + @Column(name = "created_at") + var createdAt: LocalDateTime = LocalDateTime.now(), + + @ManyToOne + @JoinColumn(name = "user_id") + val users: Users, + + @ManyToOne + @JoinColumn(name = "family_id") + val family: Family, + + @ManyToOne + @JoinColumn(name = "memory_id") + val record: Memory, + +) diff --git a/src/main/kotlin/com/record/zooc/domain/Comment.kt b/src/main/kotlin/com/record/zooc/domain/Comment.kt new file mode 100644 index 0000000..366363e --- /dev/null +++ b/src/main/kotlin/com/record/zooc/domain/Comment.kt @@ -0,0 +1,27 @@ +package com.record.zooc.domain + +import jakarta.persistence.Column +import jakarta.persistence.DiscriminatorColumn +import jakarta.persistence.Entity +import jakarta.persistence.GeneratedValue +import jakarta.persistence.GenerationType +import jakarta.persistence.Id +import jakarta.persistence.Inheritance +import jakarta.persistence.InheritanceType +import java.time.LocalDateTime + +@Entity(name = "comment") +@Inheritance(strategy = InheritanceType.JOINED) +@DiscriminatorColumn(name = "comment_Type") +class Comment( + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", nullable = false) + var id: Int = 0, + + @Column(name = "created_at") + var createdAt: LocalDateTime = LocalDateTime.now(), + + @Column(name = "updated_at") + var updatedAt: LocalDateTime = LocalDateTime.now(), +) diff --git a/src/main/kotlin/com/record/zooc/domain/EmojiComment.kt b/src/main/kotlin/com/record/zooc/domain/EmojiComment.kt new file mode 100644 index 0000000..76e9899 --- /dev/null +++ b/src/main/kotlin/com/record/zooc/domain/EmojiComment.kt @@ -0,0 +1,14 @@ +package com.record.zooc.domain + +import jakarta.persistence.Column +import jakarta.persistence.DiscriminatorValue +import jakarta.persistence.Entity + +@Entity(name = "emoji_comment") +@DiscriminatorValue("EmojiComment") +class EmojiComment( + + @Column(name = "emoji", nullable = false) + var emoji: String, + +) : Comment() diff --git a/src/main/kotlin/com/record/zooc/domain/Family.kt b/src/main/kotlin/com/record/zooc/domain/Family.kt new file mode 100644 index 0000000..a86ed35 --- /dev/null +++ b/src/main/kotlin/com/record/zooc/domain/Family.kt @@ -0,0 +1,24 @@ +package com.record.zooc.domain + +import jakarta.persistence.Column +import jakarta.persistence.Entity +import jakarta.persistence.GeneratedValue +import jakarta.persistence.GenerationType +import jakarta.persistence.Id +import jakarta.persistence.Table +import java.time.LocalDateTime + +@Entity +@Table(name = "family") +class Family( + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", nullable = false) + var id: Int = 0, + + @Column(name = "code", nullable = false) + var code: String, + + @Column(name = "created_at") + var createdAt: LocalDateTime = LocalDateTime.now(), +) diff --git a/src/main/kotlin/com/record/zooc/domain/FcmToken.kt b/src/main/kotlin/com/record/zooc/domain/FcmToken.kt new file mode 100644 index 0000000..7c6ceb9 --- /dev/null +++ b/src/main/kotlin/com/record/zooc/domain/FcmToken.kt @@ -0,0 +1,33 @@ +package com.record.zooc.domain + +import jakarta.persistence.Column +import jakarta.persistence.Entity +import jakarta.persistence.GeneratedValue +import jakarta.persistence.GenerationType +import jakarta.persistence.Id +import jakarta.persistence.Index +import jakarta.persistence.JoinColumn +import jakarta.persistence.ManyToOne +import jakarta.persistence.Table +import java.time.LocalDateTime + +@Entity(name = "fcmtoken") +class FcmToken( + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", nullable = false) + var id: Int = 0, + + @Column(name = "fcm_token", nullable = false) + var fcmToken: String, + + @Column(name = "created_at") + var createdAt: LocalDateTime = LocalDateTime.now(), + + @Column(name = "updated_at") + var updatedAt: LocalDateTime = LocalDateTime.now(), + + @ManyToOne + @JoinColumn(name = "user_id") + val users: Users, +) diff --git a/src/main/kotlin/com/record/zooc/domain/Memory.kt b/src/main/kotlin/com/record/zooc/domain/Memory.kt new file mode 100644 index 0000000..231741d --- /dev/null +++ b/src/main/kotlin/com/record/zooc/domain/Memory.kt @@ -0,0 +1,49 @@ +package com.record.zooc.domain + +import jakarta.persistence.Column +import jakarta.persistence.DiscriminatorColumn +import jakarta.persistence.Entity +import jakarta.persistence.GeneratedValue +import jakarta.persistence.GenerationType +import jakarta.persistence.Id +import jakarta.persistence.Inheritance +import jakarta.persistence.InheritanceType +import jakarta.persistence.JoinColumn +import jakarta.persistence.JoinTable +import jakarta.persistence.ManyToMany +import jakarta.persistence.ManyToOne +import java.time.LocalDateTime + +@Entity(name = "memory") +@Inheritance(strategy = InheritanceType.JOINED) +@DiscriminatorColumn(name = "memory_type") +class Memory( + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", nullable = false) + var id: Int, + + @Column(name = "image") + var image: String, + + @Column(name = "content") + var content: String, + + @ManyToOne + @JoinColumn(name = "user_id") + val users: Users, + + @ManyToMany + @JoinTable(name = "pet_memory") + val pets: List, + + @ManyToOne + @JoinColumn(name = "family_id") + val family: Family, + + @Column(name = "created_at") + var createdAt: LocalDateTime = LocalDateTime.now(), + + @Column(name = "updated_at") + var updatedAt: LocalDateTime = LocalDateTime.now(), +) diff --git a/src/main/kotlin/com/record/zooc/domain/Mission.kt b/src/main/kotlin/com/record/zooc/domain/Mission.kt new file mode 100644 index 0000000..7422500 --- /dev/null +++ b/src/main/kotlin/com/record/zooc/domain/Mission.kt @@ -0,0 +1,17 @@ +package com.record.zooc.domain + +import jakarta.persistence.Column +import jakarta.persistence.Entity +import jakarta.persistence.GeneratedValue +import jakarta.persistence.GenerationType +import jakarta.persistence.Id +@Entity(name = "mission") +class Mission( + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", nullable = false) + var id: Int = 0, + + @Column(name = "content") + var content: String, +) diff --git a/src/main/kotlin/com/record/zooc/domain/MissionMemory.kt b/src/main/kotlin/com/record/zooc/domain/MissionMemory.kt new file mode 100644 index 0000000..1a91937 --- /dev/null +++ b/src/main/kotlin/com/record/zooc/domain/MissionMemory.kt @@ -0,0 +1,21 @@ +package com.record.zooc.domain + +import jakarta.persistence.DiscriminatorValue +import jakarta.persistence.Entity +import jakarta.persistence.JoinColumn +import jakarta.persistence.OneToOne + +@Entity(name = "mission_memory") +@DiscriminatorValue("MissionMemory") +class MissionMemory( + id: Int, + image: String, + content: String, + users: Users, + family: Family, + + @OneToOne + @JoinColumn(name = "mission_id") + val mission: Mission, + +) : Memory(id, image, content, users, family) diff --git a/src/main/kotlin/com/record/zooc/domain/Pet.kt b/src/main/kotlin/com/record/zooc/domain/Pet.kt new file mode 100644 index 0000000..4ae3833 --- /dev/null +++ b/src/main/kotlin/com/record/zooc/domain/Pet.kt @@ -0,0 +1,44 @@ +package com.record.zooc.domain + +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.JoinTable +import jakarta.persistence.ManyToMany +import jakarta.persistence.ManyToOne +import java.time.LocalDateTime + +@Entity(name = "pet") +class Pet( + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", nullable = false) + var id: Int = 0, + + @Column(name = "profile_image") + var profileImage: String, + + @Column(name = "name") + var name: String, + + @ManyToOne + @JoinColumn(name = "user_id") + val users: Users, + + @ManyToOne + @JoinColumn(name = "family_id") + val family: Family, + + @ManyToMany + @JoinTable(name = "pet_memory") + val memories: List, + + @Column(name = "created_at") + var createdAt: LocalDateTime = LocalDateTime.now(), + + @Column(name = "updated_at") + var updatedAt: LocalDateTime = LocalDateTime.now(), +) diff --git a/src/main/kotlin/com/record/zooc/domain/RecordMemory.kt b/src/main/kotlin/com/record/zooc/domain/RecordMemory.kt new file mode 100644 index 0000000..b4ff42b --- /dev/null +++ b/src/main/kotlin/com/record/zooc/domain/RecordMemory.kt @@ -0,0 +1,15 @@ +package com.record.zooc.domain + +import jakarta.persistence.DiscriminatorValue +import jakarta.persistence.Entity + +@Entity(name = "record_memory") +@DiscriminatorValue("Record_Memory") +class RecordMemory( + id: Int, + image: String, + content: String, + users: Users, + family: Family, + +) : Memory(id, image, content, users, family) diff --git a/src/main/kotlin/com/record/zooc/domain/TextComment.kt b/src/main/kotlin/com/record/zooc/domain/TextComment.kt new file mode 100644 index 0000000..413a5d1 --- /dev/null +++ b/src/main/kotlin/com/record/zooc/domain/TextComment.kt @@ -0,0 +1,12 @@ +package com.record.zooc.domain + +import jakarta.persistence.Column +import jakarta.persistence.DiscriminatorValue +import jakarta.persistence.Entity + +@Entity(name = "text_comment") +@DiscriminatorValue("TextComment") +class TextComment( + @Column(name = "content", nullable = false) + var content: String? = null, +) : Comment() diff --git a/src/main/kotlin/com/record/zooc/domain/Users.kt b/src/main/kotlin/com/record/zooc/domain/Users.kt new file mode 100644 index 0000000..d46be2f --- /dev/null +++ b/src/main/kotlin/com/record/zooc/domain/Users.kt @@ -0,0 +1,36 @@ +package com.record.zooc.domain + +import jakarta.persistence.Column +import jakarta.persistence.Entity +import jakarta.persistence.GeneratedValue +import jakarta.persistence.GenerationType +import jakarta.persistence.Id +import jakarta.persistence.Table +import jakarta.persistence.UniqueConstraint +import java.time.LocalDateTime + +@Entity(name = "users") +class Users( + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", nullable = false) + var id: Int = 0, + + @Column(name = "sns_token", nullable = false) + var snsToken: String, + + @Column(name = "sns_type", nullable = false) + var snsType: String, + + @Column(name = "user_email", nullable = false) + var userEmail: String, + + @Column(name = "profile_image") + var profileImage: String, + + @Column(name = "created_at") + var createdAt: LocalDateTime = LocalDateTime.now(), + + @Column(name = "updated_at") + var updatedAt: LocalDateTime = LocalDateTime.now() +)