package com.jeesharp.business.modules.setting.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Data;

import java.util.List;

/**
 * 意见反馈提交DTO
 *
 * @author jeesharp
 * @version 2026-02-05
 */
@Data
@Schema(description = "意见反馈提交请求")
public class FeedbackSubmitDTO {

    /**
     * 反馈类型：1-功能建议 2-问题反馈 3-其他
     */
    @NotNull(message = "反馈类型不能为空")
    @Schema(description = "反馈类型：1-功能建议 2-问题反馈 3-其他", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer feedbackType;

    /**
     * 反馈标题
     */
    @NotBlank(message = "反馈标题不能为空")
    @Size(max = 100, message = "反馈标题长度不能超过100个字符")
    @Schema(description = "反馈标题", requiredMode = Schema.RequiredMode.REQUIRED)
    private String title;

    /**
     * 反馈内容
     */
    @NotBlank(message = "反馈内容不能为空")
    @Size(max = 2000, message = "反馈内容长度不能超过2000个字符")
    @Schema(description = "反馈内容", requiredMode = Schema.RequiredMode.REQUIRED)
    private String content;

    /**
     * 联系方式（手机号或邮箱）
     */
    @Size(max = 50, message = "联系方式长度不能超过50个字符")
    @Schema(description = "联系方式（手机号或邮箱）")
    private String contact;

    /**
     * 图片URL列表
     */
    @Schema(description = "图片URL列表（最多9张）")
    private List<String> images;

    /**
     * 设备信息（JSON格式）
     */
    @Schema(description = "设备信息（JSON格式）")
    private String deviceInfo;

    /**
     * 应用版本号
     */
    @Schema(description = "应用版本号")
    private String appVersion;

    /**
     * 操作系统版本
     */
    @Schema(description = "操作系统版本")
    private String osVersion;
}
