Skip to content
Snippets Groups Projects
Commit f06d3bce authored by 천 진강's avatar 천 진강
Browse files

feat: 라우팅, 인증 등 엔티티 생성

parent 02fbd7f6
No related branches found
No related tags found
3 merge requests!15Feat/certificate,!7Feat/forwarding 포트포워딩 CRUD,!6Feat/forwarding 포트포워딩 CRUD
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;
}
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;
}
package com.aolda.itda.entity.certificate;
public enum Challenge {
HTTP, DNS_CLOUDFLARE
}
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;
}
package com.aolda.itda.entity.log;
public enum Action {
CREATE, UPDATE, DELETE
}
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;
}
package com.aolda.itda.entity.log;
public enum ObjectType {
ROUTING, CERTIFICATE, FORWARDING
}
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;
}
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;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment