Created
December 13, 2019 06:56
-
-
Save 1ou/a4c9942171ab04b328b5bf921d10b481 to your computer and use it in GitHub Desktop.
vova
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* User entity | |
*/ | |
@Entity | |
@Table(name = "users") | |
@Getter | |
@Setter | |
@DynamicUpdate | |
@AllArgsConstructor | |
@NoArgsConstructor | |
@Builder | |
public class User extends AuditableEntity { | |
/** | |
* First name | |
*/ | |
@Column(name = "first_name", length = 50, unique = false, nullable = true) | |
private String firstName; | |
/** | |
* Last name | |
*/ | |
@Column(name = "last_name", length = 50, unique = false, nullable = true) | |
private String lastName; | |
/** | |
*/ | |
@Column(name = "email", length = 254, unique = true, nullable = true) | |
private String email; | |
/** | |
* Password | |
*/ | |
@Column(name = "password", length = 255, unique = false, nullable = true) | |
private String password; | |
/** | |
* Status | |
*/ | |
public enum Status {NOT_ACTIVATED, ACTIVATED} | |
@Column(name = "status", unique = false, nullable = false) | |
private Status status; | |
/** | |
* Role | |
*/ | |
public enum Role {ROLE_CLIENT, ROLE_ADMIN, ROLE_TRANSLATOR, ROLE_SERVICE} | |
@Column(name = "role", unique = false, nullable = false) | |
private Role role; | |
/** | |
* Locked | |
*/ | |
@Column(name = "locked", unique = false, nullable = false) | |
private boolean locked; | |
/** | |
* Activation code | |
*/ | |
@Column(name = "activation_code", length = 50, unique = false, nullable = true) | |
private String activationCode; | |
/** | |
* Phone | |
*/ | |
@Column(name = "phone", length = 50, unique = false, nullable = true) | |
private String phone; | |
/** | |
* User name | |
*/ | |
@Column(name = "user_name", length = 100, unique = true, nullable = true) | |
private String userName; | |
/** | |
* Reset code | |
*/ | |
@Column(name = "reset_code", length = 50, unique = false, nullable = true) | |
private String resetCode; | |
/** | |
* Country | |
*/ | |
@ManyToOne(optional = true, fetch = FetchType.EAGER) | |
@JoinColumn(name = "country_id") | |
private Country country; | |
/** | |
* Country name | |
*/ | |
@Column(name = "country_name", length = 200, unique = false, nullable = true) | |
private String countryName; | |
/** | |
* Date of birth | |
*/ | |
@Column(name = "date_of_birth", unique = false, nullable = true) | |
private Date dateOfBirth; | |
/** | |
* Nationality | |
*/ | |
@Column(name = "nationality", length = 50, unique = false, nullable = true) | |
private String nationality; | |
/** | |
* City | |
*/ | |
@Column(name = "city", length = 50, unique = false, nullable = true) | |
private String city; | |
/** | |
* Passport number | |
*/ | |
@Column(name = "passport_number", length = 250, unique = false, nullable = true) | |
private String passportNumber; | |
/** | |
* National id | |
*/ | |
@Column(name = "national_id", length = 250, unique = false, nullable = true) | |
private String nationalId; | |
/** | |
* Driving licence | |
*/ | |
@Column(name = "driving_licence", length = 250, unique = false, nullable = true) | |
private String drivingLicence; | |
/** | |
* Client id | |
*/ | |
@Column(name = "client_id", length = 50, unique = false, nullable = true) | |
private String clientId; | |
/** | |
* Client secret | |
*/ | |
@Column(name = "client_secret", length = 150, unique = false, nullable = true) | |
private String clientSecret; | |
/** | |
* Bank account info | |
*/ | |
@Embedded | |
private BankAccount bankAccount; | |
/** | |
* Gender | |
*/ | |
public enum Gender {MALE, FEMALE} | |
@Column(name = "gender", unique = false, nullable = true) | |
private Gender gender; | |
/** | |
* Address | |
*/ | |
@Column(name = "address", length = 150, unique = false, nullable = true) | |
private String address; | |
/** | |
* ZIP | |
*/ | |
@Column(name = "zip", length = 50, unique = false, nullable = true) | |
private String zip; | |
/** | |
* Area | |
*/ | |
@Column(name = "area", length = 100, unique = false, nullable = true) | |
private String area; | |
/** | |
* Step | |
*/ | |
@Column(name = "step", unique = false, nullable = true) | |
private Integer step; | |
/** | |
* Payment | |
*/ | |
public enum Payment {NOT_PAID, PAID, WAITING_CONFIRM} | |
@Column(name = "payment", unique = false, nullable = true) | |
private Payment payment; | |
/** | |
* Kyc | |
*/ | |
public enum Kyc {NOT_PASSED, PASSED, WAIT_ANSWER, KYC_NOTIFICATION} | |
@Column(name = "kyc", unique = false, nullable = true) | |
private Kyc kyc; | |
/** | |
* AML | |
* <p> | |
* NOT_PASSED - didn't try to pass yet | |
* PASSED - passed | |
* WAIT_ANSWER - still wait answer | |
* FORBIDDEN - person was found in pep list | |
*/ | |
public enum Aml {NOT_PASSED, PASSED, WAIT_ANSWER, FORBIDDEN} | |
@Column(name = "aml", unique = false, nullable = true) | |
private Aml aml; | |
/** | |
* Sponsor ref code | |
*/ | |
@Column(name = "sponsor_ref_code", length = 10, unique = false, nullable = true) | |
private String sponsorRefCode; | |
/** | |
* Ref code | |
*/ | |
@Column(name = "ref_code", length = 200, unique = false, nullable = true) | |
private String refCode; | |
/** | |
* Byc bonus for ref code | |
*/ | |
@Column(name = "byc_bonus_for_ref_code", unique = false, nullable = true, precision = 19, scale = 8) | |
private BigDecimal bycBonusForRefCode; | |
/** | |
* Company name | |
*/ | |
@Column(name = "company_name", length = 100, unique = false, nullable = true) | |
private String companyName; | |
/** | |
* Company reg name | |
*/ | |
@Column(name = "company_reg_number", length = 100, unique = false, nullable = true) | |
private String companyRegNumber; | |
/** | |
* Is affiliate | |
*/ | |
@Column(name = "is_affiliate", unique = false, nullable = false) | |
private boolean isAffiliate; | |
/** | |
* Is affiliate executed | |
*/ | |
@Column(name = "is_affiliate_executed", unique = false, nullable = false) | |
private boolean isAffiliateExecuted; | |
/** | |
* Affiliate code | |
*/ | |
@Column(name = "affiliate_code", length = 255, unique = false, nullable = true) | |
private String affiliateCode; | |
/** | |
* Last paid date | |
*/ | |
@Column(name = "last_paid_date", unique = false, nullable = true) | |
private Date lastPaidDate; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment