package shop.alien.entity.store.dto;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 律师用户视图对象
 *
 * @author system
 * @since 2025-01-XX
 */
@Data
@JsonInclude
public class LawyerUserDto implements Serializable {



    @ApiModelProperty(value = "主键")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @ApiModelProperty(value = "律所id")
    @TableField("firm_id")
    private Integer firmId;

    @ApiModelProperty(value = "律所id")
    private Integer firmPaymentId;

    @ApiModelProperty(value = "手机号")
    @TableField("phone")
    private String phone;

    @ApiModelProperty(value = "密码")
    private String password;

    @ApiModelProperty(value = "是否密码登录")
    private Boolean isPassword;

    @ApiModelProperty(value = "姓名")
    @TableField("name")
    private String name;

    @ApiModelProperty(value = "身份证")
    @TableField("id_card")
    private String idCard;

    @ApiModelProperty(value = "用户状态, 0:禁用, 1:启用")
    @TableField("status")
    private Integer status;

    @ApiModelProperty(value = "昵称")
    @TableField("nick_name")
    private String nickName;

    @ApiModelProperty(value = "头像")
    @TableField("head_img")
    private String headImg;

    @ApiModelProperty(value = "律师执业证号")
    @TableField("lawyer_certificate_no")
    private String lawyerCertificateNo;

    @ApiModelProperty(value = "所属律师事务所")
    @TableField("law_firm")
    private String lawFirm;

    @ApiModelProperty(value = "执业年限")
    @TableField("practice_years")
    private Integer practiceYears;

    @ApiModelProperty(value = "执业开始日期")
    @TableField("practice_start_date")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date practiceStartDate;

    @ApiModelProperty(value = "专业领域,多个用逗号分隔")
    @TableField("specialty_fields")
    private String specialtyFields;

    @ApiModelProperty(value = "执业证照片")
    @TableField("certificate_image")
    private String certificateImage;

    @ApiModelProperty(value = "所属省份")
    @TableField("province")
    private String province;

    @ApiModelProperty(value = "所属城市")
    @TableField("city")
    private String city;

    @ApiModelProperty(value = "所属区县")
    @TableField("district")
    private String district;

    @ApiModelProperty(value = "详细地址")
    @TableField("address")
    private String address;

    @ApiModelProperty(value = "邮箱")
    @TableField("email")
    private String email;

    @ApiModelProperty(value = "性别, 0:未知, 1:男, 2:女")
    @TableField("gender")
    private Integer gender;

    @ApiModelProperty(value = "生日")
    @TableField("birthday")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date birthday;

    @ApiModelProperty(value = "个人简介(详细)")
    @TableField("personal_introduction")
    private String personalIntroduction;

    @ApiModelProperty(value = "领域ID")
    @TableField("lawyer_expertise_area_id")
    private Integer lawyerExpertiseAreaId;

    @ApiModelProperty(value = "法律问题场景")
    @TableField(exist = false)
    private List<Integer> problemScenarioIds;

    @ApiModelProperty(value = "律师事务所收款账号")
    @TableField("payment_num")
    private String paymentNum;

    @ApiModelProperty(value = "登录Token")
    private String token;

    @ApiModelProperty(value = "验证码")
    private String msgCode;

    @ApiModelProperty(value = "分钟收费-钱数")
    @TableField("charge_minute")
    private Integer chargeMinute;

    @ApiModelProperty(value = "分钟收费-分钟数")
    @TableField("minute_num")
    private Integer minuteNum;

    @ApiModelProperty(value = "次数收费-钱数")
    @TableField("charge_time")
    private Integer chargeTime;

    @ApiModelProperty(value = "次数收费-次数")
    @TableField("time_num")
    private Integer timeNum;
}

