package com.yuchen.saas.park.api.dto.property;

import com.yuchen.saas.park.api.entity.park.PmgBatParkPeople;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

/**
 * @description:
 * @author: 洪铭铭
 * @time: 2024/11/30 16:11
 */
@Data
@ApiModel(value = "入住新家新增参数")
public class NewHouseReq {

    /**
     * 名字
     */
    @ApiModelProperty(name = "name", value = "名字")
    private String name;
    /**
     * 性别
     */
//    @ApiModelProperty(value = "性别")
//    private String sex;
    @NotNull(message = "是否为企业不可为空")
    @ApiModelProperty(name = "isCompany", value = "是否为企业 0：个人 1：企业")
    private Integer isCompany;
    /**
     * 身份ID
     */
    @NotNull(message = "证件号码不可为空")
    @ApiModelProperty(name = "idCard", value = "身份证号")
    private String idCard;
    /**
     * 联系方式
     */
    @NotNull(message = "手机号码不可为空")
    @ApiModelProperty(name = "phone", value = "联系电话")
    private String phone;

    /**
     * 证件类型
     */
    @NotNull(message = "证件类型不可为空")
    @ApiModelProperty(name = "idType", value = "证件类型")
    private String idType;


    @NotNull(message = "社区id不可为空")
    @ApiModelProperty(name = "parkId", value = "社区id")
    private Long parkId;

    @NotNull(message = "楼栋id不可为空")
    @ApiModelProperty(name = "buildingId", value = "楼栋id")
    private Long buildingId;

    @NotNull(message = "楼层id不可为空")
    @ApiModelProperty(name = "floorId", value = "楼层id")
    private Long floorId;

    @NotNull(message = "房源id不可为空")
    @ApiModelProperty(name = "roomId", value = "房间id")
    private Long roomId;

    @ApiModelProperty(name = "parkName", value = "社区名称")
    private String parkName;

    @ApiModelProperty(name = "buildingName", value = "楼栋名称")
    private String buildingName;

    @ApiModelProperty(name = "buildingUnitName", value = "单元名称")
    private String buildingUnitName;

    @ApiModelProperty(name = "roomName", value = "房屋名称")
    private String roomName;

    @ApiModelProperty(name = "buildingUnitId", value = "单元id")
    private Long buildingUnitId;

    @ApiModelProperty(name = "floorName", value = "楼层名称")
    private String floorName;

    @NotNull(message = "证件正面照片不可为空")
    @ApiModelProperty(name = "idPhoto", value = "证件照片")
    private String idPhoto;

    @NotNull(message = "证件反面照片不可为空")
    @ApiModelProperty(name = "idPhotoBack", value = "证件照片反面")
    private String idPhotoBack;

    @NotNull(message = "房屋产权证明文件不可为空")
    @ApiModelProperty(name = "propertyFiles", value = "房屋产权证明文件")
    private String propertyFiles;

    @ApiModelProperty(name = "occupiers", value = "住户列表")
    private List<PmgBatParkPeople> occupiers;

    @ApiModelProperty(name = "parkingSpace", value = "车位列表")
    private List<ParkingPlaceSyncDTO> parkingSpace;

    @ApiModelProperty(name = "cars", value = "车辆列表")
    private List<ParkingPlacePersonSyncDTO> cars;

    @Data
    public static class ParkingPlaceSyncDTO implements Serializable {
        /**
         * 项目id
         */
        @ApiModelProperty(name = "projectId", value = "项目id")
        private Long projectId;
        /**
         * 停车库唯一标志
         */
        @ApiModelProperty(name = "parkingId", value = "停车库唯一标志")
        private String parkingId;
        /**
         * 车位id
         */
        @ApiModelProperty(name = "placeId", value = "车位id")
        private Long placeId;
        /**
         * 车主姓名
         */
        @ApiModelProperty(name = "personName", value = "车主姓名")
        private String personName;
        /**
         * 车主电话
         */
        @ApiModelProperty(name = "personPhone", value = "车主电话")
        private String personPhone;
        /**
         * 人员id
         */
        @ApiModelProperty(name = "peopleId", value = "人员id")
        private Long peopleId;
        /**
         * 用户id
         */
        @ApiModelProperty(name = "userId", value = "用户id")
        private Long userId;
    }

    @Data
    public static class ParkingPlacePersonSyncDTO implements Serializable {
        /**
         * 项目id
         */
        @ApiModelProperty(name = "projectId", value = "项目id")
        private Long projectId;
        /**
         * 停车库唯一标志
         */
        @ApiModelProperty(name = "parkingId", value = "停车库唯一标志")
        private String parkingId;
        /**
         * 车位id
         */
        @ApiModelProperty(name = "placeId", value = "车位id")
        private Long placeId;
        /**
         * 车主姓名
         */
        @ApiModelProperty(name = "personName", value = "车主姓名")
        private String personName;
        /**
         * 人员id
         */
        @ApiModelProperty(name = "peopleId", value = "人员id")
        private Long peopleId;
        /**
         * 用户id
         */
        @ApiModelProperty(name = "userId", value = "用户id")
        private Long userId;
        /**
         * 车主电话
         */
        @ApiModelProperty(name = "personPhone", value = "车主电话")
        private String personPhone;
        /**
         * 车牌号码
         */
        @ApiModelProperty(name = "plateNo", value = "车牌号码")
        private String plateNo;
        /**
         * 车辆类型
         */
        @ApiModelProperty(value = "车辆类型")
        private String vehicleType;
        /**
         * 车牌类型
         */
        @ApiModelProperty(value = "车牌类型")
        private String plateType;
        /**
         * 车辆id
         */
        @ApiModelProperty(name = "carId", value = "车辆id")
        private Long carId;

    }


}
