package com.cool.store.request.notice;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * @Author suzhuhong
 * @Date 2025/8/26 16:10
 * @Version 1.0
 */
@Data
public class ThirdMatterRequest {

    @ApiModelProperty("0-提交订单 5-已分配拣货 10-拣货完成 15-已出库 20-配送中 25-订单签收 30-服务包发布 35-补货 40-盘点通知 ")
    @NotNull(message = "场景不能为空")
    private Integer sceneCode;

    @ApiModelProperty("事项配置ID CRM配置好部分信息 找CRM提供")
    @NotNull(message = "事项配置ID不能为空")
    private Long matterConfigId;

    @ApiModelProperty("事项标题")
    @NotBlank(message = "事项标题不能为空")
    private String matterTitle;

    @ApiModelProperty("处理类型(1:仅阅读 2:需要处理)")
    @NotNull(message = "处理类型不能为空")
    private Integer processType;

    @ApiModelProperty("提醒类型(1:持续提醒 2:阶段提醒)")
    @NotNull(message = "提醒类型不能为空")
    private Integer remindType;

    @ApiModelProperty("阶段提醒时 需要设置时间范围 开始时间")
    private Date remindStartTime;

    @ApiModelProperty("阶段提醒时 需要设置时间范围 结束时间")
    private Date remindEndTime;

    @ApiModelProperty("截止时间")
    private Date deadline;

    @ApiModelProperty("今日必办标识 0非必办 1必办")
    @NotNull(message = "今日必办标识不能为空")
    private Integer todayTask;

    @ApiModelProperty("消息图片URL 物流crm自动匹配 无需传递")
    private String messageImage;

    @ApiModelProperty("门店范围 如果不传 默认取matterConfigId对应的门店范围 如果都没有 任务处于待发布状态")
    List<String> shopCodeList;

    @ApiModelProperty("手机号列表 如果不传 默认取matterConfigId配置的人员信息 如果都没有 任务处于待发布状态")
    List<String> mobileList;

    private String jumpUrl;

    @ApiModelProperty("处理关键字 针对processType需要处理的字段 需要传递该关键字识别 注意 每个批次门店任务keyword不能重复")
    private String handleKeyword;

}
