package com.talentcard.server.talentcard;
|
|
import java.time.LocalDate;
|
import java.time.LocalDateTime;
|
|
import jakarta.persistence.Column;
|
import jakarta.persistence.Entity;
|
import jakarta.persistence.GeneratedValue;
|
import jakarta.persistence.GenerationType;
|
import jakarta.persistence.Id;
|
import jakarta.persistence.PrePersist;
|
import jakarta.persistence.PreUpdate;
|
import jakarta.persistence.Table;
|
|
@Entity
|
@Table(name = "talent_card")
|
public class TalentCard {
|
|
@Id
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
private Long id;
|
|
@Column(name = "talent_id", nullable = false)
|
private Long talentId;
|
|
@Column(name = "card_no", nullable = false, unique = true, length = 64)
|
private String cardNo;
|
|
@Column(name = "card_type", length = 32)
|
private String cardType = "PERSONAL";
|
|
@Column(name = "card_level", length = 64)
|
private String cardLevel;
|
|
@Column(name = "valid_start")
|
private LocalDate validStart;
|
|
@Column(name = "valid_end")
|
private LocalDate validEnd;
|
|
@Column(name = "qr_code", length = 512)
|
private String qrCode;
|
|
@Column(name = "issue_time")
|
private LocalDateTime issueTime;
|
|
@Column(name = "status")
|
private Byte status = 1;
|
|
@Column(name = "remark", length = 512)
|
private String remark;
|
|
@Column(name = "created_at")
|
private LocalDateTime createdAt;
|
|
@Column(name = "updated_at")
|
private LocalDateTime updatedAt;
|
|
@Column(name = "deleted")
|
private Byte deleted = 0;
|
|
@Column(name = "expire_time")
|
private LocalDateTime expireTime;
|
|
@Column(name = "is_family_card_enabled", nullable = false)
|
private Byte familyCardEnabled = 0;
|
|
@Column(name = "family_card_limit", nullable = false)
|
private Integer familyCardLimit = 0;
|
|
protected TalentCard() {
|
}
|
|
public TalentCard(Long talentId, String cardNo, String cardType, String cardLevel) {
|
this.talentId = talentId;
|
this.cardNo = cardNo;
|
this.cardType = cardType;
|
this.cardLevel = cardLevel;
|
}
|
|
@PrePersist
|
void onCreate() {
|
LocalDateTime now = LocalDateTime.now();
|
if (createdAt == null) {
|
createdAt = now;
|
}
|
updatedAt = now;
|
}
|
|
@PreUpdate
|
void onUpdate() {
|
updatedAt = LocalDateTime.now();
|
}
|
|
public Long getId() {
|
return id;
|
}
|
|
public Long getTalentId() {
|
return talentId;
|
}
|
|
public String getCardNo() {
|
return cardNo;
|
}
|
|
public String getCardType() {
|
return cardType;
|
}
|
|
public String getCardLevel() {
|
return cardLevel;
|
}
|
|
public LocalDate getValidStart() {
|
return validStart;
|
}
|
|
public LocalDate getValidEnd() {
|
return validEnd;
|
}
|
|
public String getQrCode() {
|
return qrCode;
|
}
|
|
public LocalDateTime getIssueTime() {
|
return issueTime;
|
}
|
|
public Byte getStatus() {
|
return status;
|
}
|
|
public String getRemark() {
|
return remark;
|
}
|
|
public LocalDateTime getCreatedAt() {
|
return createdAt;
|
}
|
|
public LocalDateTime getUpdatedAt() {
|
return updatedAt;
|
}
|
|
public Byte getDeleted() {
|
return deleted;
|
}
|
|
public LocalDateTime getExpireTime() {
|
return expireTime;
|
}
|
|
public Byte getFamilyCardEnabled() {
|
return familyCardEnabled;
|
}
|
|
public Integer getFamilyCardLimit() {
|
return familyCardLimit;
|
}
|
}
|