package com.cyl.manager.staff.domain;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.ruoyi.common.core.domain.BaseAudit;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import java.math.BigDecimal;

/**
 * 人员信息对象 staff
 * 
 * @author ruoyi
 * @date 2023-12-26
 */
@Data
@TableName(autoResultMap = true)
public class Staff extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 员工ID */
    private Long id;

    @ApiModelProperty("加密手机号")
    private String phoneEncrypted;

    @ApiModelProperty("隐藏前三位后四位的手机号")
    private String phoneHidden;

    /** 姓名 */
    @Excel(name = "姓名")
    private String name;

    /** 年龄 */
    @Excel(name = "年龄")
    private Integer age;

    /** 昵称 */
    @Excel(name = "昵称")
    private String nickName;

    /** 姓 */
    @Excel(name = "姓")
    private String lastName;

    /** 名 */
    @Excel(name = "名")
    private String firstName;

    /** 性别 */
    @Excel(name = "性别")
    private Long gender;

    /** 生日 */
    @Excel(name = "生日")
    private String birthDay;

    /** 服务类型 */
    @Excel(name = "服务类型")
    private Long staffType;

    /** 服务年限 */
    @Excel(name = "服务年限")
    private Long serviceAge;

    /** 服务级别 */
    @Excel(name = "服务级别")
    private Long serviceLevel;

    /** 服务时间 */
    @Excel(name = "服务时间")
    private String serviceTime;

    /** 地址 */
    @Excel(name = "地址")
    private String address;

    /** 人员简介 */
    @Excel(name = "人员简介")
    private String shortDescription;

    /** 人员介绍 */
    @Excel(name = "人员介绍")
    private String description;

    /** 删除标识 */
    private Integer delFlag;

    @ApiModelProperty("是否是合伙人（0否 1是）")
    private String isPartner;


    @ApiModelProperty("是否伴宠师（0否 1是）")
    private String isPetCompanion;


    @ApiModelProperty("电话号码")
    private String phone;

    @ApiModelProperty("答题次数")
    private Integer answerCount;

    @ApiModelProperty("邀请码")
    private String inviteCode;

    @ApiModelProperty("养宠年限")
    private Integer feedingAge;

    @ApiModelProperty("个人宠物类型，多个类型逗号分隔(1:猫咪，2狗狗 3异宠)")
    private String petType;

    @ApiModelProperty("喂养员认证状态：0：未开始，1：通过基础考核，2：3次考试失败，3：培训考核审核中 4：培训考核审核通过，5：培训考核审核失败")
    private Integer authenticateStatus;

    @ApiModelProperty("伴宠师状态 0正常 1已清退")
    private Integer status;

    @ApiModelProperty("连续拒单次数")
    private Integer continuousRejectCount;

    @ApiModelProperty("宠物图片")
    @TableField(typeHandler = FastjsonTypeHandler.class)
    private JSONArray petImages;


    @ApiModelProperty("可服务宠物类型 1猫咪 2狗狗 3异宠")
    @TableField(typeHandler = FastjsonTypeHandler.class)
    private JSONArray servePetType;


    @ApiModelProperty("基础服务")
    private Integer baseService;


    @ApiModelProperty("增值服务 1陪玩/遛狗 2一天多次(做卫生) 3护理 4提前熟悉")
    @TableField(typeHandler = FastjsonTypeHandler.class)
    private JSONArray externalService;

    @ApiModelProperty("接收超出订单范围加急派单通知 0不接收,1接收")
    private Integer receiveUrgentOrder;

    @ApiModelProperty("点赞数")
    private Integer star;

    @ApiModelProperty("是否完善服务信息(0未完善 1已完善)")
    private Integer serviceInfoCommitted;




    @ApiModelProperty("保证金缴纳状态：0：未缴纳，1已缴纳")
    private Integer bondStatus;

    @ApiModelProperty("保证金余额")
    private BigDecimal bondAmount;

    @ApiModelProperty("被扣除保证金总计")
    private BigDecimal deductBondAmount;

    @ApiModelProperty("工具包接收人姓名)")
    private String toolReceiveName;

    @ApiModelProperty("工具包接收人电话")
    private String toolReceivePhone;

    @ApiModelProperty("工具包接收人地址")
    private String toolReceiveAddress;

    @ApiModelProperty("数据库乐观锁字段")
    @Version
    private Integer lockVersion;

}
