package org.egov.council.entity; import java.util.Date; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.EnumType; import javax.persistence.Enumerated; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.SequenceGenerator; import javax.persistence.Table; import javax.persistence.Transient; import javax.validation.constraints.NotNull; import org.egov.infra.admin.master.entity.Boundary; import org.egov.infra.filestore.entity.FileStoreMapper; import org.egov.infra.persistence.entity.AbstractAuditable; import org.egov.infra.persistence.entity.enums.Gender; import org.egov.infra.persistence.validator.annotation.Unique; import org.egov.search.domain.Searchable; import org.hibernate.validator.constraints.Length; import org.springframework.web.multipart.MultipartFile; @Entity @Unique(id = "id", tableName = "egcncl_members", fields = { "name" }, columnName = { "name" }, enableDfltMsg = true) @Table(name = "egcncl_members") @Searchable @SequenceGenerator(name = CouncilMember.SEQ_COUNCILMEMBER, sequenceName = CouncilMember.SEQ_COUNCILMEMBER, allocationSize = 1) public class CouncilMember extends AbstractAuditable { private static final long serialVersionUID = 8227838067322332444L; public static final String SEQ_COUNCILMEMBER = "seq_egcncl_members"; @Id @GeneratedValue(generator = SEQ_COUNCILMEMBER, strategy = GenerationType.SEQUENCE) private Long id; @ManyToOne @JoinColumn(name = "electionWard") private Boundary electionWard; @NotNull @ManyToOne @JoinColumn(name = "designation") private CouncilDesignation designation; @ManyToOne @JoinColumn(name = "qualification") private CouncilQualification qualification; @ManyToOne @JoinColumn(name = "caste") private CouncilCaste caste; @ManyToOne @JoinColumn(name = "partyAffiliation") private CouncilParty partyAffiliation; @Enumerated(EnumType.ORDINAL) @NotNull private Gender gender; private Date birthDate; private Date electionDate; private Date oathDate; @Length(max = 15) private String mobileNumber; @Length(max = 52) private String emailId; @NotNull @Length(min = 2, max = 100) private String name; @NotNull @Enumerated(EnumType.ORDINAL) private CouncilMemberStatus status=CouncilMemberStatus.ACTIVE; @NotNull private String residentialAddress; @Transient private MultipartFile attachments; @ManyToOne(cascade = CascadeType.ALL) @JoinColumn(name = "filestoreid") private FileStoreMapper photo; public FileStoreMapper getPhoto() { return photo; } public void setPhoto(FileStoreMapper photo) { this.photo = photo; } public MultipartFile getAttachments() { return attachments; } public void setAttachments(MultipartFile attachments) { this.attachments = attachments; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Boundary getElectionWard() { return electionWard; } public void setElectionWard(Boundary electionWard) { this.electionWard = electionWard; } public CouncilDesignation getDesignation() { return designation; } public void setDesignation(CouncilDesignation designation) { this.designation = designation; } public CouncilQualification getQualification() { return qualification; } public void setQualification(CouncilQualification qualification) { this.qualification = qualification; } public CouncilCaste getCaste() { return caste; } public void setCaste(CouncilCaste caste) { this.caste = caste; } public CouncilParty getPartyAffiliation() { return partyAffiliation; } public void setPartyAffiliation(CouncilParty partyAffiliation) { this.partyAffiliation = partyAffiliation; } public Gender getGender() { return gender; } public void setGender(Gender gender) { this.gender = gender; } public Date getBirthDate() { return birthDate; } public void setBirthDate(Date birthDate) { this.birthDate = birthDate; } public Date getElectionDate() { return electionDate; } public void setElectionDate(Date electionDate) { this.electionDate = electionDate; } public Date getOathDate() { return oathDate; } public void setOathDate(Date oathDate) { this.oathDate = oathDate; } public String getMobileNumber() { return mobileNumber; } public void setMobileNumber(String mobileNumber) { this.mobileNumber = mobileNumber; } public String getEmailId() { return emailId; } public void setEmailId(String emailId) { this.emailId = emailId; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getResidentialAddress() { return residentialAddress; } public void setResidentialAddress(String residentialAddress) { this.residentialAddress = residentialAddress; } public CouncilMemberStatus getStatus() { return status; } public void setStatus(CouncilMemberStatus status) { this.status = status; } }