package org.jeecg.modules.system.app.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author DM
 * @date 2025/7/8 16:15
 * @description
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@AllArgsConstructor
@NoArgsConstructor
@Schema(description = "赛事入参自定义DTO")
public class AppGameCuDTO {
    @Schema(description = "id")
    private String id;
    /**部门编码*/
    @Excel(name = "部门编码", width = 15)
    @Schema(description = "部门编码")
    private String orgCode;
    /**关联部门id*/
    @Excel(name = "关联部门id", width = 15)
    @Schema(description = "关联部门id")
    private String tenantId;
    /**产品名称*/
    @Schema(description = "产品名称")
    private String name;
    /**封面*/
    @Schema(description = "封面")
    private String cover;
    /**背景图;可能数组*/
    @Schema(description = "背景图;可能数组")
    private String backgroundImage;
    /**举办方*/
    @Schema(description = "举办方")
    private String organizers;
    /**举办地址*/
    @Schema(description = "比赛地址")
    private String address;
    /**报名截止时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @Schema(description = "报名截止时间")
    private Date applicationEndTime;
    /**保险id;可能有多个险种*/
    @Schema(description = "保险id;可能有多个险种")
    private String insureIds;
    /**开始时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @Schema(description = "开始时间")
    private Date startTime;
    /**结束时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @Schema(description = "结束时间")
    private Date endTime;
    /**提示/须知/说明*/
    @Schema(description = "提示/须知/说明")
    private String reminder;
    /**资质，逗号分割*/
    @Schema(description = "资质，逗号分割")
    private String aptitudes;
    /**赛事成绩*/
    @Schema(description = "赛事成绩")
    private String gameResults;

    @Schema(description = "场地类型")
    private Integer siteType;

    @Schema(description = "场地id")
    private String  siteId;

    @Schema(description = "省份code")
    private String  provinceCode;
    @Schema(description = "城市code")
    private String  cityCode;
    @Schema(description = "区code")
    private String  areaCode;
    @Schema(description = "纬度")
    private BigDecimal latitude;
    @Schema(description = "经度")
    private BigDecimal  longitude;
}