package com.bcxin.tenant.domain.readers.dtos;

import com.bcxin.Infrastructures.enums.CredentialType;
import com.bcxin.Infrastructures.enums.RealNameAuthenticatedStatus;
import com.bcxin.Infrastructures.enums.Sex;
import com.bcxin.Infrastructures.enums.UserCheckedStatus;
import com.bcxin.tenant.domain.entities.valueTypes.LocationValueType;
import lombok.Getter;

import java.util.Date;

@Getter
public class TenantUserDto
{
    private final String id;
    private final String name;
    private final String email;
    private final String nicky;
    private final String telephone;
    private final String lonLatJson;
    private final UserCheckedStatus checkedStatus;
    private final RealNameAuthenticatedStatus authenticateStatus;
    private final String authenticatedResult;
    private final String headPhoto;
    private final Sex sex;
    private final String nation;
    private final String politicsStatus;
    private final String stature;
    private final String militaryStatus;
    private final Date birthdate;
    private final String education;
    private final String householdType;
    private final String nativePlace;
    private final String maritalStatus;
    private final String oneInchColorWhitePhoto;
    private final String twoInchColorBluePhoto;
    private final String cid;
    private final String thirdPartyLoginNo;
    private final String imIdentity;
    private final String certificateImage;
    /**
     * 紧急联系人
     */
    private final String emergencyContact;

    /**
     * 紧急联系人电话
     */
    private final String emergencyPhone;

    /**
     * 驾照等级
     */
    private final String licenseLevel;
    /**
     * 从业年限
     */
    private final Integer workYear;
    /**
     * 疾病历史
     */
    private final String diseasesHistory;

    /**
     * 现住地址
     */
    private final LocationValueType placeOfNow;

    private final CredentialType credentialType;
    private final String credentialName;
    private final String credentialNumber;
    private final Date credentialValidDateFrom;
    private final Date credentialValidDateTo;
    private final String credentialFrontPhoto;
    private final String credentialReversePhoto;
    private final String credentialAddress;
    private final String credentialHeadPhoto;

    public TenantUserDto(String id, String name,
                         String email,
                         String nicky,
                         String telephone, String lonLatJson,
                         UserCheckedStatus checkedStatus,
                         RealNameAuthenticatedStatus authenticateStatus,
                         String authenticatedResult,
                         String headPhoto,

                         Sex sex, String nation,Integer workYear, String diseasesHistory, String politicsStatus,
                         String stature, String militaryStatus, Date birthdate, String education,
                         String householdType, String nativePlace, String maritalStatus,
                         String oneInchColorWhitePhoto,
                         String twoInchColorBluePhoto,
                         String cid,
                         String emergencyContact,
                         String emergencyPhone,
                         String licenseLevel,
                         LocationValueType placeOfNow,
                         CredentialType credentialType,
                         String credentialName,
                         String credentialNumber,
                         Date credentialValidDateFrom,
                         Date credentialValidDateTo,
                         String credentialFrontPhoto,
                         String credentialReversePhoto,
                         String credentialAddress,
                         String credentialHeadPhoto,
                         String thirdPartyLoginNo,
                         String imIdentity,
                         String certificateImage) {
        this.id = id;
        this.name = name;
        this.telephone = telephone;
        this.lonLatJson = lonLatJson;
        this.checkedStatus = checkedStatus;
        this.authenticateStatus = authenticateStatus;
        this.authenticatedResult = authenticatedResult;
        this.email = email;
        this.nicky = nicky;
        this.headPhoto = headPhoto;
        this.sex = sex;
        this.nation = nation;
        this.politicsStatus = politicsStatus;
        this.stature = stature;
        this.militaryStatus = militaryStatus;
        this.birthdate = birthdate;
        this.education = education;
        this.householdType = householdType;
        this.nativePlace = nativePlace;
        this.maritalStatus = maritalStatus;
        this.oneInchColorWhitePhoto = oneInchColorWhitePhoto;
        this.twoInchColorBluePhoto = twoInchColorBluePhoto;
        this.cid = cid;
        this.credentialType = credentialType;
        this.credentialName = credentialName;
        this.credentialNumber = credentialNumber;
        this.credentialValidDateFrom = credentialValidDateFrom;
        this.credentialValidDateTo = credentialValidDateTo;
        this.credentialFrontPhoto = credentialFrontPhoto;
        this.credentialReversePhoto = credentialReversePhoto;
        this.credentialAddress = credentialAddress;
        this.credentialHeadPhoto = credentialHeadPhoto;
        this.emergencyContact = emergencyContact;
        this.emergencyPhone = emergencyPhone;
        this.licenseLevel = licenseLevel;
        this.placeOfNow = placeOfNow;
        this.thirdPartyLoginNo = thirdPartyLoginNo;
        this.imIdentity = imIdentity;
        this.workYear = workYear;
        this.diseasesHistory = diseasesHistory;
        this.certificateImage = certificateImage;
    }
}
