保誠-保戶業務員媒合平台
Jack
2022-01-18 c2a3da1d4071f2f1d6a5beb63b8442920767584e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
package com.pollex.pam.domain;
 
import java.io.Serializable;
import java.time.Instant;
import java.util.Optional;
 
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
    private Instant createdDate = Instant.now();
 
    @LastModifiedDate
    @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;
    }
 
    public void setId(Long id) {
        this.id = id;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public String getPhone() {
        return phone;
    }
 
    public void setPhone(String phone) {
        this.phone = phone;
    }
 
    public String getEmail() {
        return email;
    }
 
    public void setEmail(String email) {
        this.email = email;
    }
 
    public Instant getCreatedDate() {
        return createdDate;
    }
 
    public void setCreatedDate(Instant createdDate) {
        this.createdDate = createdDate;
    }
 
    public Instant getLastModifiedDate() {
        return lastModifiedDate;
    }
 
    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);
    }
 
}