Skip to content

Instantly share code, notes, and snippets.

@1ou
Created December 13, 2019 06:56
Show Gist options
  • Save 1ou/a4c9942171ab04b328b5bf921d10b481 to your computer and use it in GitHub Desktop.
Save 1ou/a4c9942171ab04b328b5bf921d10b481 to your computer and use it in GitHub Desktop.
vova
/**
* 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;
/**
* Email
*/
@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