From f06d3bce2771390e445c47b0d77f03baaa163653 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B2=9C=20=EC=A7=84=EA=B0=95?= <jjjjjk12@ajou.ac.kr> Date: Sun, 9 Mar 2025 19:20:50 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EB=9D=BC=EC=9A=B0=ED=8C=85,=20?= =?UTF-8?q?=EC=9D=B8=EC=A6=9D=20=EB=93=B1=20=EC=97=94=ED=8B=B0=ED=8B=B0=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/aolda/itda/entity/BaseTimeEntity.java | 26 +++++++++++ .../itda/entity/certificate/Certificate.java | 46 +++++++++++++++++++ .../itda/entity/certificate/Challenge.java | 5 ++ .../itda/entity/forwarding/Forwarding.java | 39 ++++++++++++++++ .../com/aolda/itda/entity/log/Action.java | 5 ++ .../java/com/aolda/itda/entity/log/Log.java | 40 ++++++++++++++++ .../com/aolda/itda/entity/log/ObjectType.java | 5 ++ .../aolda/itda/entity/routing/Routing.java | 42 +++++++++++++++++ .../java/com/aolda/itda/entity/user/User.java | 24 ++++++++++ 9 files changed, 232 insertions(+) create mode 100644 src/main/java/com/aolda/itda/entity/BaseTimeEntity.java create mode 100644 src/main/java/com/aolda/itda/entity/certificate/Certificate.java create mode 100644 src/main/java/com/aolda/itda/entity/certificate/Challenge.java create mode 100644 src/main/java/com/aolda/itda/entity/forwarding/Forwarding.java create mode 100644 src/main/java/com/aolda/itda/entity/log/Action.java create mode 100644 src/main/java/com/aolda/itda/entity/log/Log.java create mode 100644 src/main/java/com/aolda/itda/entity/log/ObjectType.java create mode 100644 src/main/java/com/aolda/itda/entity/routing/Routing.java create mode 100644 src/main/java/com/aolda/itda/entity/user/User.java diff --git a/src/main/java/com/aolda/itda/entity/BaseTimeEntity.java b/src/main/java/com/aolda/itda/entity/BaseTimeEntity.java new file mode 100644 index 0000000..4460eb7 --- /dev/null +++ b/src/main/java/com/aolda/itda/entity/BaseTimeEntity.java @@ -0,0 +1,26 @@ +package com.aolda.itda.entity; + +import jakarta.persistence.Column; +import jakarta.persistence.EntityListeners; +import jakarta.persistence.MappedSuperclass; +import lombok.Getter; +import org.springframework.data.annotation.CreatedDate; +import org.springframework.data.annotation.LastModifiedDate; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +import java.time.LocalDateTime; + +@Getter +@MappedSuperclass +@EntityListeners(AuditingEntityListener.class) +public abstract class BaseTimeEntity { + + @CreatedDate + @Column(updatable = false) + private LocalDateTime createdAt; + + @LastModifiedDate + @Column(name = "updated_at") + private LocalDateTime updatedAt; + +} diff --git a/src/main/java/com/aolda/itda/entity/certificate/Certificate.java b/src/main/java/com/aolda/itda/entity/certificate/Certificate.java new file mode 100644 index 0000000..76253a1 --- /dev/null +++ b/src/main/java/com/aolda/itda/entity/certificate/Certificate.java @@ -0,0 +1,46 @@ +package com.aolda.itda.entity.certificate; + +import com.aolda.itda.entity.BaseTimeEntity; +import com.aolda.itda.entity.user.User; +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; + +@Entity +@Table(name = "routing") +@Getter +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Certificate extends BaseTimeEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(nullable = false) + private Long certificateId; + + @OneToOne + @JoinColumn(nullable = false, name = "user_id") + private User user; + + private String projectId; + + private String domain; + + private String email; + + private LocalDateTime expiredAt; + + @Enumerated(EnumType.STRING) + private Challenge challenge; + + private Boolean isDeleted; + + private String metadata; + + +} diff --git a/src/main/java/com/aolda/itda/entity/certificate/Challenge.java b/src/main/java/com/aolda/itda/entity/certificate/Challenge.java new file mode 100644 index 0000000..14713bf --- /dev/null +++ b/src/main/java/com/aolda/itda/entity/certificate/Challenge.java @@ -0,0 +1,5 @@ +package com.aolda.itda.entity.certificate; + +public enum Challenge { + HTTP, DNS_CLOUDFLARE +} diff --git a/src/main/java/com/aolda/itda/entity/forwarding/Forwarding.java b/src/main/java/com/aolda/itda/entity/forwarding/Forwarding.java new file mode 100644 index 0000000..0288af8 --- /dev/null +++ b/src/main/java/com/aolda/itda/entity/forwarding/Forwarding.java @@ -0,0 +1,39 @@ +package com.aolda.itda.entity.forwarding; + +import com.aolda.itda.entity.BaseTimeEntity; +import com.aolda.itda.entity.user.User; +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@Table(name = "forwarding") +@Getter +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Forwarding extends BaseTimeEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(nullable = false) + private Long forwardingId; + + @OneToOne + @JoinColumn(name = "user_id") + private User user; + + private String projectId; + + private String serverIp; + + private String serverPort; + + private String instanceIp; + + private String instancePort; + + private Boolean isDeleted; +} diff --git a/src/main/java/com/aolda/itda/entity/log/Action.java b/src/main/java/com/aolda/itda/entity/log/Action.java new file mode 100644 index 0000000..a620f87 --- /dev/null +++ b/src/main/java/com/aolda/itda/entity/log/Action.java @@ -0,0 +1,5 @@ +package com.aolda.itda.entity.log; + +public enum Action { + CREATE, UPDATE, DELETE +} diff --git a/src/main/java/com/aolda/itda/entity/log/Log.java b/src/main/java/com/aolda/itda/entity/log/Log.java new file mode 100644 index 0000000..fd8f460 --- /dev/null +++ b/src/main/java/com/aolda/itda/entity/log/Log.java @@ -0,0 +1,40 @@ +package com.aolda.itda.entity.log; + +import com.aolda.itda.entity.BaseTimeEntity; +import com.aolda.itda.entity.user.User; +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@Table(name = "log") +@Getter +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Log extends BaseTimeEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(nullable = false) + private Long logId; + + @OneToOne + @JoinColumn(name = "user_id", nullable = false) + private User user; + + private String projectId; + + @Enumerated(EnumType.STRING) + private ObjectType objectType; + + private Long objectId; + + @Enumerated(EnumType.STRING) + private Action action; + + private String metadata; + +} diff --git a/src/main/java/com/aolda/itda/entity/log/ObjectType.java b/src/main/java/com/aolda/itda/entity/log/ObjectType.java new file mode 100644 index 0000000..5310315 --- /dev/null +++ b/src/main/java/com/aolda/itda/entity/log/ObjectType.java @@ -0,0 +1,5 @@ +package com.aolda.itda.entity.log; + +public enum ObjectType { + ROUTING, CERTIFICATE, FORWARDING +} diff --git a/src/main/java/com/aolda/itda/entity/routing/Routing.java b/src/main/java/com/aolda/itda/entity/routing/Routing.java new file mode 100644 index 0000000..2eb9bd1 --- /dev/null +++ b/src/main/java/com/aolda/itda/entity/routing/Routing.java @@ -0,0 +1,42 @@ +package com.aolda.itda.entity.routing; + +import com.aolda.itda.entity.BaseTimeEntity; +import com.aolda.itda.entity.certificate.Certificate; +import com.aolda.itda.entity.user.User; +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@Table(name = "routing") +@Getter +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Routing extends BaseTimeEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(nullable = false) + private Long routingId; + + @OneToOne + @JoinColumn(name = "user_id", nullable = false) + private User user; + + @OneToOne + @JoinColumn(name = "certificate_id") + private Certificate certificate; + + private String projectId; + + private String domain; + + private String instanceIp; + + private Boolean isDeleted; + + +} diff --git a/src/main/java/com/aolda/itda/entity/user/User.java b/src/main/java/com/aolda/itda/entity/user/User.java new file mode 100644 index 0000000..df006b2 --- /dev/null +++ b/src/main/java/com/aolda/itda/entity/user/User.java @@ -0,0 +1,24 @@ +package com.aolda.itda.entity.user; + +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@Table(name = "user") +@Getter +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class User { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(nullable = false) + private Long userId; + + private String keystoneUsername; + private String keystoneId; +} -- GitLab