package com.ylx.massage.domain.dto;

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

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.math.BigDecimal;
import java.util.List;

/**
 * 编辑动态请求DTO
 */
@Data
@ApiModel("编辑动态请求")
public class EditMomentDTO {

    /**
     * 动态ID
     */
    @ApiModelProperty(value = "动态ID", required = true)
    @NotNull(message = "动态ID不能为空")
    private Long momentId;

    /**
     * 动态标题
     */
    @ApiModelProperty(value = "动态标题", required = true)
    @NotBlank(message = "动态标题不能为空")
    private String title;

    /**
     * 动态内容
     */
    @ApiModelProperty(value = "动态内容", required = true)
    @NotBlank(message = "动态内容不能为空")
    @Size(max = 1000, message = "动态内容不能超过1000个字符")
    private String content;

    /**
     * 媒体类型:1-图片,2-视频
     */
    @ApiModelProperty(value = "媒体类型:1-图片,2-视频", required = true)
    @NotNull(message = "媒体类型不能为空")
    private Integer mediaType;

    /**
     * 图片URL列表（最多9张）
     */
    @ApiModelProperty("图片URL列表，最多9张")
    @Size(max = 9, message = "最多只能上传9张图片")
    private List<String> imageUrls;

    /**
     * 视频URL
     */
    @ApiModelProperty("视频URL")
    private String videoUrl;

    /**
     * 视频封面URL
     */
    @ApiModelProperty("视频封面URL")
    private String videoCoverUrl;

    /**
     * 可见范围:1-公开
     */
    @ApiModelProperty(value = "可见范围:1-公开", required = true)
    @NotNull(message = "可见范围不能为空")
    private Integer visibleRange;

    /**
     * 纬度
     */
    @ApiModelProperty("纬度")
    private BigDecimal latitude;

    /**
     * 经度
     */
    @ApiModelProperty("经度")
    private BigDecimal longitude;

    /**
     * 地址名称
     */
    @ApiModelProperty("地址名称")
    private String location;

    /**
     * 详细地址信息
     */
    @ApiModelProperty("详细地址信息")
    private String address;

    /**
     * 是否保存为草稿:0-立即发布,1-保存草稿
     */
    @ApiModelProperty("是否保存为草稿:0-立即发布,1-保存草稿")
    private Integer isDraft;
}
