package com.changhu.module.miniProgram.pojo.vo;

import cn.hutool.core.lang.Dict;
import com.changhu.common.db.enums.EnterprisesUnitType;
import com.changhu.common.db.enums.IsOrNot;
import com.changhu.common.db.enums.ServiceProjectType;
import com.changhu.module.management.pojo.model.ContactPersonInfo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.List;

/**
 * @author 20252
 * @createTime 2024/9/10 下午3:55
 * @desc 首页服务项目列表
 */
@Data
public class IndexServiceProjectListVo {

    @Schema(description = "企事业单位id")
    private Long snowFlakeId;
    @Schema(description = "企事业单位名称")
    private String name;
    @Schema(description = "单位类型")
    private EnterprisesUnitType type;

    @Schema(description = "省编码")
    private String province;
    @Schema(description = "省名字")
    private String provinceName;
    @Schema(description = "市编码")
    private String city;
    @Schema(description = "市名字")
    private String cityName;
    @Schema(description = "区编码")
    private String districts;
    @Schema(description = "区名字")
    private String districtsName;
    @Schema(description = "街道编码")
    private String street;
    @Schema(description = "街道名字")
    private String streetName;

    @Schema(description = "详细地址")
    private String address;
    @Schema(description = "联系人")
    private ContactPersonInfo contactPersonInfo;
    @Schema(description = "备注")
    private String remark;

    @Schema(description = "服务项目列表")
    private List<ServiceProjectVo> serviceProjectList;

    @Data
    static class ServiceProjectVo {
        @Schema(description = "服务项目id")
        private Long snowFlakeId;

        @Schema(description = "保安单位id")
        private Long securityUnitId;
        @Schema(description = "保安单位名字")
        private String securityUnitName;

        @Schema(description = "项目经理信息")
        private Dict projectManagerMiniProgramUserInfo;

        @Schema(description = "服务项目名称")
        private String name;
        @Schema(description = "服务项目类型")
        private ServiceProjectType type;
        @Schema(description = "是否自招保安(只有当type为property 此字段必填)")
        private IsOrNot isRecruitSecurity;
        @Schema(description = "证件号(服务类型为保安必填 服务类型为物业则需自招保安为必填)")
        private String idNumber;
        @Schema(description = "服务区域面积")
        private Double serviceArea;
        @Schema(description = "楼栋数量")
        private Integer buildingTotal;
        @Schema(description = "户数")
        private Integer houseTotal;
        @Schema(description = "工作人员数量")
        private Integer staffTotal;
        @Schema(description = "保安人员数量")
        private Integer securityUserTotal;
        @Schema(description = "备注")
        private String remark;
    }

}
