package com.njzscloud.supervisory.sys.user.pojo.param;

import com.njzscloud.supervisory.biz.constant.BizObj;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.time.LocalDate;

@Getter
@Setter
@ToString
@Accessors(chain = true)
public class UserRegisterParam {

    /**
     * 业务对象; 字典代码：biz_obj
     */
    private BizObj bizObj;

    /**
     * 昵称
     */
    private String nickname;

    /**
     * 手机号
     */
    private String phone;
    /**
     * 账号信息
     */
    private Account account;

    /**
     * 公司信息
     */
    private Company company;

    @Getter
    @Setter
    @ToString
    @Accessors(chain = true)
    public static class Account {
        /**
         * 邮箱
         */
        private String email;

        /**
         * 手机号
         */
        private String phone;

        /**
         * 用户名
         */
        private String username;

        /**
         * 密码
         */
        private String secret;

        /**
         * 微信openid
         */
        private String wechatOpenid;
        /**
         * 微信unionid
         */
        private String wechatUnionid;

        /**
         * 验证码
         */
        private String code;

        /**
         * 获取验证码时使用的 uid
         */
        private String codeId;
    }

    @Getter
    @Setter
    @ToString
    @Accessors(chain = true)
    public static class Company {
        /**
         * 企业名称
         */
        private String companyName;

        /**
         * 统一社会信用代码; biz_company.uscc
         */
        private String uscc;

        /**
         * 营业执照; 图片
         */
        private String businessLicense;

        /**
         * 营业执照有效期; [开始日期，结束日期]
         */
        private LocalDate licenseStartTime;

        private LocalDate licenseEndTime;

        /**
         * 法人名称
         */
        private String legalRepresentative;
        /**
         * 身份证号
         */
        private String idcard;
        private LocalDate idcardStartTime;
        private LocalDate idcardEndTime;
        private String idcardFront;
        private String idcardBack;
        /**
         * 省; 代码
         */
        private String province;

        /**
         * 市; 代码
         */
        private String city;

        /**
         * 区县; 代码
         */
        private String area;

        /**
         * 乡镇街道; 代码
         */
        private String town;

        /**
         * 省; 名称
         */
        private String provinceName;

        /**
         * 市; 名称
         */
        private String cityName;

        /**
         * 区县; 名称
         */
        private String areaName;

        /**
         * 乡镇街道; 名称
         */
        private String townName;

        /**
         * 详细地址
         */
        private String address;

        /**
         * 经度
         */
        private Double lng;

        /**
         * 纬度
         */
        private Double lat;

        /**
         * 联系人
         */
        private String contacts;

        /**
         * 联系电话
         */
        private String phone;
    }
}
