保誠-保戶業務員媒合平台
KillerADO
2021-12-23 41bc5df9cda6a43ef47313622dd1ffde1480d06f
pamapi/src/main/java/com/pollex/pam/domain/Customer.java
@@ -2,42 +2,45 @@
import java.io.Serializable;
import java.time.Instant;
import java.util.Optional;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.*;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import org.springframework.util.StringUtils;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.pollex.pam.enums.OtpLoginTypeEnum;
@EntityListeners(AuditingEntityListener.class)
@Entity
@Table(name = "customer")
public class Customer implements Serializable {
   /**
    *
    *
    */
   private static final long serialVersionUID = 1L;
   @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
   @Column(name = "name")
    private String name;
   @Column(name = "phone")
    private String phone;
   @Column(name = "email")
    private String email;
   @Enumerated(value = EnumType.STRING)
   @Column(name = "contact_type")
    private OtpLoginTypeEnum contactType;
   @CreatedDate
    @Column(name = "created_date", updatable = false)
    @JsonIgnore
@@ -47,6 +50,11 @@
    @Column(name = "last_modified_date")
    @JsonIgnore
    private Instant lastModifiedDate = Instant.now();
    @CreatedDate
    @Column(name = "agree_personal_information_time", updatable = false)
    @JsonIgnore
    private Instant agreePersonalInformationTime;
   public Long getId() {
      return id;
@@ -95,7 +103,27 @@
   public void setLastModifiedDate(Instant lastModifiedDate) {
      this.lastModifiedDate = lastModifiedDate;
   }
   public OtpLoginTypeEnum getContactType() {
      return contactType;
   }
   public void setContactType(OtpLoginTypeEnum contactType) {
      this.contactType = contactType;
   }
    public Instant getAgreePersonalInformationTime() {
        return agreePersonalInformationTime;
    }
    public void setAgreePersonalInformationTime(Instant agreePersonalInformationTime) {
        this.agreePersonalInformationTime = agreePersonalInformationTime;
    }
    public String toAccountString() {
       return Optional.ofNullable(getPhone())
            .filter(StringUtils::hasText)
            .orElseGet(this::getEmail);
    }
}