package com.pollex.pam.domain; import java.io.Serializable; import java.time.Instant; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.EntityListeners; import javax.persistence.EnumType; import javax.persistence.Enumerated; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.OneToMany; import javax.persistence.OneToOne; import javax.persistence.Table; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.jpa.domain.support.AuditingEntityListener; import com.pollex.pam.enums.AppointmentStatusEnum; import com.pollex.pam.enums.ContactStatusEnum; @EntityListeners(AuditingEntityListener.class) @Entity @Table(name = "appointment") public class Appointment implements Serializable { /** * */ private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "phone") private String phone; @Column(name = "email") private String email; @Column(name = "contact_type") private String contactType; @Column(name = "gender") private String gender; @Column(name = "age") private String age; @Column(name = "job") private String job; @Column(name = "requirement") private String requirement; @Enumerated(EnumType.STRING) @Column(name = "communicate_status") private ContactStatusEnum communicateStatus; @Column(name = "hope_contact_time") private String hopeContactTime; @Column(name = "other_requirement") private String otherRequirement; @CreatedDate @Column(name = "appointment_date", updatable = false) private Instant appointmentDate = Instant.now(); @Column(name = "last_modified_date") private Instant lastModifiedDate = Instant.now(); @Column(name = "agent_no") private String agentNo; @Column(name = "customer_id") private Long customerId; @Column(name = "consultant_view_time") private Instant consultantViewTime; @Column(name = "consultant_read_time") private Instant consultantReadTime; @Column(name = "contact_time") private Instant contactTime; @Enumerated(value = EnumType.STRING) @Column(name = "status") private AppointmentStatusEnum status; @JoinColumn(name = "appointment_id") @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.REMOVE) private List appointmentMemoList; // @OneToOne(cascade = CascadeType.REMOVE,fetch=FetchType.EAGER) //// @JoinColumn(name = "form_authority_id", referencedColumnName = "id") // @JoinColumn(name = "appointment_id", referencedColumnName = "id") // private AppointmentClosedInfo closedInfo; // @OneToOne(cascade = CascadeType.REMOVE // , mappedBy = "appointment", fetch=FetchType.LAZY) // private AppointmentClosedInfo closedInfo; public Long getId() { return id; } public void setId(Long id) { this.id = id; } 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 String getContactType() { return contactType; } public void setContactType(String contactType) { this.contactType = contactType; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getJob() { return job; } public void setJob(String job) { this.job = job; } public String getRequirement() { return requirement; } public void setRequirement(String requirement) { this.requirement = requirement; } public String getHopeContactTime() { return hopeContactTime; } public void setHopeContactTime(String hopeContactTime) { this.hopeContactTime = hopeContactTime; } public String getOtherRequirement() { return otherRequirement; } public void setOtherRequirement(String otherRequirement) { this.otherRequirement = otherRequirement; } public Instant getAppointmentDate() { return appointmentDate; } public void setAppointmentDate(Instant appointmentDate) { this.appointmentDate = appointmentDate; } public String getAgentNo() { return agentNo; } public void setAgentNo(String agentNo) { this.agentNo = agentNo; } public ContactStatusEnum getCommunicateStatus() { return communicateStatus; } public void setCommunicateStatus(ContactStatusEnum communicateStatus) { this.communicateStatus = communicateStatus; } public Long getCustomerId() { return customerId; } public void setCustomerId(Long customerId) { this.customerId = customerId; } public Instant getConsultantViewTime() { return consultantViewTime; } public void setConsultantViewTime(Instant consultantViewTime) { this.consultantViewTime = consultantViewTime; } public Instant getConsultantReadTime() { return consultantReadTime; } public void setConsultantReadTime(Instant consultantReadTime) { this.consultantReadTime = consultantReadTime; } public Instant getContactTime() { return contactTime; } public void setContactTime(Instant markCommunicateTime) { this.contactTime = markCommunicateTime; } public AppointmentStatusEnum getStatus() { return status; } public void setStatus(AppointmentStatusEnum status) { this.status = status; } public Instant getLastModifiedDate() { return lastModifiedDate; } public void setLastModifiedDate(Instant lastModifiedDate) { this.lastModifiedDate = lastModifiedDate; } public List getAppointmentMemoList() { return appointmentMemoList; } public void setAppointmentMemoList(List appointmentMemoList) { this.appointmentMemoList = appointmentMemoList; } // public AppointmentClosedInfo getClosedInfo() { // return closedInfo; // } // // public void setClosedInfo(AppointmentClosedInfo closedInfo) { // this.closedInfo = closedInfo; // } }