package com.qmth.sop.business.bean.result;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qmth.sop.business.bean.dto.AllocationDto;
import com.qmth.sop.common.enums.CrmStatusEnum;
import com.qmth.sop.common.enums.ProductTypeEnum;
import io.swagger.annotations.ApiModelProperty;

import java.util.List;

/**
 * @Description: 人员档案分配查询结果
 * @Author: CaoZixuan
 * @Date: 2023-08-16
 */
public class UserArchivesAllocationResult {
    @ApiModelProperty("服务单元id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long serviceUnitId;

    @ApiModelProperty("服务单元名称")
    private String serviceUnitName;

    @ApiModelProperty("派单id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long crmId;

    @ApiModelProperty("派单号")
    private String crmNo;

    @ApiModelProperty("客户id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long customId;

    @ApiModelProperty("客户名称")
    private String customName;

    @ApiModelProperty("客户类型")
    private ProductTypeEnum customType;

    @ApiModelProperty("省")
    private String province;

    @ApiModelProperty("市")
    private String city;

    @ApiModelProperty("县")
    private String area;

    @ApiModelProperty("服务区域规划id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long regionId;

    @ApiModelProperty("档位等级id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long levelId;

    @ApiModelProperty("档位等级")
    private String level;

    @ApiModelProperty("角色分配信息")
    private String roleConfigInfo;

    @ApiModelProperty("配额")
    private Integer quota;

    @ApiModelProperty("已分配")
    private Integer distributed;

    @ApiModelProperty("未分配")
    private Integer unDistributed;

    @ApiModelProperty("区域协调人配额")
    private Integer coordinatorQuota;
    @ApiModelProperty("实施工程师配额")
    private Integer effectQuota;
    @ApiModelProperty("助理工程师配额")
    private Integer assistantQuota;

    @ApiModelProperty("区域协调人已分配")
    private Integer coordinatorDistributed;
    @ApiModelProperty("实施工程师已分配")
    private Integer effectDistributed;
    @ApiModelProperty("助理工程师已分配")
    private Integer assistantDistributed;

    @ApiModelProperty("区域协调人差额（取反）")
    private Integer coordinatorUnDistributed;
    @ApiModelProperty("实施工程师差额（取反）")
    private Integer effectUnDistributed;
    @ApiModelProperty("助理工程师差额（取反）")
    private Integer assistantUnDistributed;

    @ApiModelProperty("派单状态")
    private CrmStatusEnum crmStatus;

    @ApiModelProperty("派单发布人名称")
    private String publishUserName;

    @ApiModelProperty("派单发布时间")
    private Long publishTime;

    @ApiModelProperty("大区经理id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long regionManagerId;

    @ApiModelProperty("大区经理名称")
    private String regionManagerName;

    // --编辑页面用的附加信息
    @ApiModelProperty("用户分配的数据")
    private List<AllocationDto> allocationDtoList;

    @ApiModelProperty("由大区经理兼任")
    private boolean concurrently;

    public Long getServiceUnitId() {
        return serviceUnitId;
    }

    public void setServiceUnitId(Long serviceUnitId) {
        this.serviceUnitId = serviceUnitId;
    }

    public String getServiceUnitName() {
        return serviceUnitName;
    }

    public void setServiceUnitName(String serviceUnitName) {
        this.serviceUnitName = serviceUnitName;
    }

    public Long getCrmId() {
        return crmId;
    }

    public void setCrmId(Long crmId) {
        this.crmId = crmId;
    }

    public String getCrmNo() {
        return crmNo;
    }

    public void setCrmNo(String crmNo) {
        this.crmNo = crmNo;
    }

    public Long getCustomId() {
        return customId;
    }

    public void setCustomId(Long customId) {
        this.customId = customId;
    }

    public String getCustomName() {
        return customName;
    }

    public void setCustomName(String customName) {
        this.customName = customName;
    }

    public ProductTypeEnum getCustomType() {
        return customType;
    }

    public void setCustomType(ProductTypeEnum customType) {
        this.customType = customType;
    }

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getArea() {
        return area;
    }

    public void setArea(String area) {
        this.area = area;
    }

    public Long getLevelId() {
        return levelId;
    }

    public void setLevelId(Long levelId) {
        this.levelId = levelId;
    }

    public Long getRegionId() {
        return regionId;
    }

    public void setRegionId(Long regionId) {
        this.regionId = regionId;
    }

    public String getLevel() {
        return level;
    }

    public void setLevel(String level) {
        this.level = level;
    }

    public String getRoleConfigInfo() {
        return roleConfigInfo;
    }

    public void setRoleConfigInfo(String roleConfigInfo) {
        this.roleConfigInfo = roleConfigInfo;
    }

    public Integer getQuota() {
        return quota;
    }

    public void setQuota(Integer quota) {
        this.quota = quota;
    }

    public Integer getDistributed() {
        return distributed;
    }

    public void setDistributed(Integer distributed) {
        this.distributed = distributed;
    }

    public Integer getUnDistributed() {
        return unDistributed;
    }

    public void setUnDistributed(Integer unDistributed) {
        this.unDistributed = unDistributed;
    }

    public Integer getCoordinatorQuota() {
        return coordinatorQuota;
    }

    public void setCoordinatorQuota(Integer coordinatorQuota) {
        this.coordinatorQuota = coordinatorQuota;
    }

    public Integer getEffectQuota() {
        return effectQuota;
    }

    public void setEffectQuota(Integer effectQuota) {
        this.effectQuota = effectQuota;
    }

    public Integer getAssistantQuota() {
        return assistantQuota;
    }

    public void setAssistantQuota(Integer assistantQuota) {
        this.assistantQuota = assistantQuota;
    }

    public Integer getCoordinatorDistributed() {
        return coordinatorDistributed;
    }

    public void setCoordinatorDistributed(Integer coordinatorDistributed) {
        this.coordinatorDistributed = coordinatorDistributed;
    }

    public Integer getEffectDistributed() {
        return effectDistributed;
    }

    public void setEffectDistributed(Integer effectDistributed) {
        this.effectDistributed = effectDistributed;
    }

    public Integer getAssistantDistributed() {
        return assistantDistributed;
    }

    public void setAssistantDistributed(Integer assistantDistributed) {
        this.assistantDistributed = assistantDistributed;
    }

    public Integer getCoordinatorUnDistributed() {
        return coordinatorUnDistributed;
    }

    public void setCoordinatorUnDistributed(Integer coordinatorUnDistributed) {
        this.coordinatorUnDistributed = coordinatorUnDistributed;
    }

    public Integer getEffectUnDistributed() {
        return effectUnDistributed;
    }

    public void setEffectUnDistributed(Integer effectUnDistributed) {
        this.effectUnDistributed = effectUnDistributed;
    }

    public Integer getAssistantUnDistributed() {
        return assistantUnDistributed;
    }

    public void setAssistantUnDistributed(Integer assistantUnDistributed) {
        this.assistantUnDistributed = assistantUnDistributed;
    }

    public List<AllocationDto> getAllocationDtoList() {
        return allocationDtoList;
    }

    public void setAllocationDtoList(List<AllocationDto> allocationDtoList) {
        this.allocationDtoList = allocationDtoList;
    }

    public CrmStatusEnum getCrmStatus() {
        return crmStatus;
    }

    public void setCrmStatus(CrmStatusEnum crmStatus) {
        this.crmStatus = crmStatus;
    }

    public String getPublishUserName() {
        return publishUserName;
    }

    public void setPublishUserName(String publishUserName) {
        this.publishUserName = publishUserName;
    }

    public Long getPublishTime() {
        return publishTime;
    }

    public void setPublishTime(Long publishTime) {
        this.publishTime = publishTime;
    }

    public Long getRegionManagerId() {
        return regionManagerId;
    }

    public void setRegionManagerId(Long regionManagerId) {
        this.regionManagerId = regionManagerId;
    }

    public String getRegionManagerName() {
        return regionManagerName;
    }

    public void setRegionManagerName(String regionManagerName) {
        this.regionManagerName = regionManagerName;
    }

    public boolean isConcurrently() {
        return concurrently;
    }

    public void setConcurrently(boolean concurrently) {
        this.concurrently = concurrently;
    }
}