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

import com.thinkunion.park.service.common.constant.GroupAction;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Null;
import java.util.Date;

/**
 * @author zhouhanwei
 * @create 2024/10/18 9:04
 */
@Data
public class ResourceInfoSubmitReqDTO {

    @NotNull(groups = GroupAction.UpdateAction.class, message = "id不能为空")
    @Null(groups = GroupAction.InsertAction.class, message = "id必须为空")
    private Long id;
    /**
     * 项目id
     */
    @ApiModelProperty(name = "projectId", value = "项目id")
    @NotNull(message = "请选择项目")
    private Long projectId;
    /**
     * 资源名称
     */
    @ApiModelProperty(name = "resourceName", value = "资源名称")
    @NotBlank(message = "资源名称不能为空")
    private String resourceName;
    /**
     * 资源类型（1：会所资源）
     */
    @ApiModelProperty(name = "resourceTypeId", value = "资源类型（1：会所资源）")
    @NotNull(message = "请选择资源类型")
    private Long resourceTypeId;
    /**
     * 资源标签,字典编码为resource_tags（多选逗号隔开）
     */
    @ApiModelProperty(name = "resourceTags", value = "资源标签,字典编码为resource_tags（多选逗号隔开）")
    @NotBlank(message = "请选择资源标签")
    private String resourceTags;
    /**
     * 省编码
     */
    @ApiModelProperty(name = "provinceCode", value = "省编码")
    private String provinceCode;
    /**
     * 省名称
     */
    @ApiModelProperty(name = "provinceName", value = "省名称")
    private String provinceName;
    /**
     * 市编码
     */
    @ApiModelProperty(name = "cityCode", value = "市编码")
    private String cityCode;
    /**
     * 市名称
     */
    @ApiModelProperty(name = "cityName", value = "市名称")
    private String cityName;
    /**
     * 县/区编码
     */
    @ApiModelProperty(name = "countyCode", value = "县/区编码")
    private String countyCode;
    /**
     * 县/区名称
     */
    @ApiModelProperty(name = "countyName", value = "县/区名称")
    private String countyName;
    /**
     * 详细地址
     */
    @ApiModelProperty(name = "addressName", value = "详细地址")
    private String addressName;
    /**
     * 资源开始时间（日期 + 00：00：00）
     */
    @ApiModelProperty(name = "resourceStartTime", value = "资源开始时间")
    @NotNull(message = "资源有效开始时间不能为空")
    private Date resourceStartTime;
    /**
     * 资源结束时间（日期 + 23：59：59）
     */
    @ApiModelProperty(name = "resourceEndTime", value = "资源结束时间")
    @NotNull(message = "资源有效结束时间不能为空")
    private Date resourceEndTime;
    /**
     * 资源图片地址
     */
    @ApiModelProperty(name = "resourceImages", value = "资源图片地址")
    @NotBlank(message = "资源图片不能为空")
    private String resourceImages;
    /**
     * 资源描述
     */
    @ApiModelProperty(name = "resourceDesc", value = "资源描述")
    @NotBlank(message = "资源描述不能为空")
    private String resourceDesc;
    /**
     * 联系人
     */
    @ApiModelProperty(name = "linkman", value = "联系人")
    @NotBlank(message = "联系人不能为空")
    private String linkman;
    /**
     * 联系人电话
     */
    @ApiModelProperty(name = "linkmanPhone", value = "联系人电话")
    @NotBlank(message = "联系电话不能为空")
    private String linkmanPhone;
    /**
     * 客服电话
     */
    @ApiModelProperty(name = "customerServicePhone", value = "客服电话")
    @NotBlank(message = "客服电话不能为空")
    private String customerServicePhone;
    /**
     * 资源开放开始时间
     */
    @ApiModelProperty(name = "openStartTime", value = "资源开放开始时间")
    @NotNull(message = "资源开放开始时间不能为空")
    private Date openStartTime;
    /**
     * 资源开放结束时间
     */
    @ApiModelProperty(name = "openEndTime", value = "资源开放结束时间")
    @NotNull(message = "资源开放结束时间不能为空")
    private Date openEndTime;
    /**
     * 预约方式（1：提前预约，2：无需预约）
     */
    @ApiModelProperty(name = "subscribeMode", value = "预约方式（1：提前预约，2：无需预约）")
    @NotBlank(message = "请选择预约方式")
    private String subscribeMode;
    /**
     * 预定类型（1：收费，2：免费）
     */
    @ApiModelProperty(name = "subscribeType", value = "预定类型（1：收费，2：免费）")
    @NotBlank(message = "请选择预定类型")
    private String subscribeType;
    /**
     * 资源需提前多少天预约，单位天
     */
    @ApiModelProperty(name = "resourceSubscribeLeadDay", value = "资源需提前多少天预约，单位天")
    private Integer resourceSubscribeLeadDay;
    /**
     * 用户需提前多少小时预约，单位小时
     */
    @ApiModelProperty(name = "userSubscribeLeadHour", value = "用户需提前多少小时预约，单位小时")
    private Integer userSubscribeLeadHour;
    /**
     * 预约范围（1：全体用户，2：住户人员）
     */
    @ApiModelProperty(name = "userSubscribeScope", value = "预约范围（1：全体用户，2：住户人员）")
    private Integer userSubscribeScope;
    /**
     * 收费方式（1：收费，2：免费）
     */
    @ApiModelProperty(name = "chargeMode", value = "收费方式（1：收费，2：免费）")
    @NotBlank(message = "请选择收费方式")
    private String chargeMode;
    /**
     * 价格类型（1：定金，2：金额）
     */
    @ApiModelProperty(name = "priceType", value = "价格类型（1：定金，2：金额）")
    private String priceType;
    /**
     * 现价，单位分
     */
    @ApiModelProperty(name = "currentPrice", value = "现价，单位分")
    private Long currentPrice;
    /**
     * 原价，单位分
     */
    @ApiModelProperty(name = "originalPrice", value = "原价，单位分")
    private Long originalPrice;
}
