package cn.com.ty.lift.system.settings.dao.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalTime;

/**
 * <p>
 * 维保公司
 * </p>
 *
 * @author huangy
 * @since 2019-12-09
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class MaintenanceCompany implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 公司ID
     */
    @TableId(value = "id", type = IdType.ID_WORKER)
    private Long id;

    /**
     * 公司名称
     */
    @TableField("name")
    private String name;

    /**
     * 公司地址
     */
    @TableField("address")
    private String address;

    /**
     * 注册资金
     */
    @TableField("registered_capital")
    private BigDecimal registeredCapital;

    /**
     * 企业法人
     */
    @TableField("corporator")
    private String corporator;

    /**
     * 联系电话
     */
    @TableField("telephone")
    private String telephone;

    /**
     * 主要业务
     */
    @TableField("mainbusiness")
    private String mainbusiness;

    /**
     * 营业执照编号
     */
    @TableField("business_license_code")
    private String businessLicenseCode;

    /**
     * 营业执照附件
     */
    @TableField("business_license_annex")
    private String businessLicenseAnnex;

    /**
     * 备注
     */
    @TableField("remarks")
    private String remarks;

    /**
     * 是否认证  '0 未认证 1 已认证 2 审核中 3 认证失败'
     */
    @TableField("is_certificated")
    private Integer isCertificated;

    /**
     * 状态  '1：生效 2：系统创建'
     */
    @TableField("status")
    private Integer status;

    /**
     * 创建人ID
     */
    @TableField("creator_id")
    private Long creatorId;

    /**
     * 创建时间
     */
    @TableField("create_date")
    private LocalDateTime createDate;

    @TableField("limited_num")
    private Integer limitedNum;

    /**
     * 服务总积分
     */
    @TableField("service_total")
    private Integer serviceTotal;

    /**
     * 满意度总积分
     */
    @TableField("satisfaction_total")
    private Integer satisfactionTotal;

    @TableField("service_count")
    private Integer serviceCount;

    /**
     * 用户等级
     */
    @TableField("level")
    private Integer level;

    /**
     * 团队图片
     */
    @TableField("logo_img")
    private String logoImg;

    /**
     * 维保积分
     */
    @TableField("maintenance_total")
    private Integer maintenanceTotal;

    /**
     * 急修积分
     */
    @TableField("emergency_total")
    private Integer emergencyTotal;

    /**
     * 创建电梯积分
     */
    @TableField("lift_total")
    private Integer liftTotal;

    /**
     * 是否开启打卡
     */
    @TableField("is_clock")
    private Integer isClock;

    /**
     * 下午上班时间
     */
    @TableField("top_time_pm")
    private LocalTime topTimePm;

    /**
     * 下午下班时间
     */
    @TableField("down_time_pm")
    private LocalTime downTimePm;

    /**
     * 加班上班时间
     */
    @TableField("top_time_ot")
    private LocalTime topTimeOt;

    /**
     * 加班下班时间
     */
    @TableField("down_time_ot")
    private LocalTime downTimeOt;

    /**
     * 是否开启上下班打卡
     */
    @TableField("is_updown")
    private Integer isUpdown;

    /**
     * vip表示：1表示是vip，0表示不是vip
     */
    @TableField("vip_flag")
    private Integer vipFlag;

    /**
     * 省份编码
     */
    @TableField("province_code")
    private String provinceCode;

    /**
     * 团队人数
     */
    @TableField(exist = false)
    private Integer userNum;

    /**
     * 是否当前团队 true表示是当前团队 false表示不是
     */
    @TableField(exist = false)
    private boolean isCurrentTeamFlag;

    public MaintenanceCompany() {
    }

    /**
     * @description 复制认证信息的值
     * @date 2019-12-12 15:13
     * @param mtCompanyAttestation 认证参数请求体
     * @return
     */
    public void copyAttestation(MtCompanyAttestation mtCompanyAttestation){
        this.name = mtCompanyAttestation.getAttestationName();
        this.corporator = mtCompanyAttestation.getContactsName();
        this.telephone = mtCompanyAttestation.getContactsTel();
        this.logoImg = mtCompanyAttestation.getLogoImg();
        this.businessLicenseAnnex = mtCompanyAttestation.getBusinessLicenseAnnex();
        this.provinceCode = mtCompanyAttestation.getProvinceCode();
    }
}
