package com.tourism.webadmin.back.vo;

import com.tourism.common.core.base.vo.BaseVo;
import com.tourism.webadmin.back.model.TourismTravelNotesContentWrite;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDate;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 发布游记VO视图对象。
 *
 * @author 吃饭睡觉
 * @date 2024-09-06
 */
@Schema(description = "发布游记VO视图对象")
@Data
@EqualsAndHashCode(callSuper = true)
public class TourismProjectTravelNotesWriteVo extends BaseVo {

    /**
     * 主键id。
     */
    @Schema(description = "主键id")
    private String id;

    /**
     * 项目标题。
     */
    @Schema(description = "项目标题")
    private String projectTitle;

    /**
     * 出发时间。
     */
    @Schema(description = "出发时间")
    private LocalDate departureTime;

    /**
     * 总天数。
     */
    @Schema(description = "总天数")
    private String countTimes;

    /**
     * 人物关系。
     */
    @Schema(description = "人物关系")
    private String role;

    /**
     * 推荐指数。
     */
    @Schema(description = "推荐指数")
    private Integer recommendationRate;

    /**
     * 人均费用。
     */
    @Schema(description = "人均费用")
    private String averageCost;

    /**
     * 审核状态(0,未审核;1,审核通过;2、审核不通过)。
     */
    @Schema(description = "审核状态(0,未审核;1,审核通过;2、审核不通过)")
    private Integer state;

    /**
     * 审核不通过的原因。
     */
    @Schema(description = "审核不通过的原因")
    private String reason;

    /**
     * 发布游记的banner图。
     */
    @Schema(description = "发布游记的banner图")
    private String travelNotesBanner;

    /**
     * 游记内容中的图片。
     */
    @Schema(description = "游记内容中的图片")
    private String tourismTavelNotesUrl;

    /**
     * 上下架状态(0,下架;1,上架)。
     */
    @Schema(description = "上下架状态(0,下架;1,上架)")
    private Integer unmountState;

    /**
     * 项目展示图片。
     */
    @Schema(description = "项目展示图片")
    private String tourismUrl;

    /**
     * 项目简述。
     */
    @Schema(description = "项目简述")
    private String remarks;

    /**
     * 是否热点，0非热点，1热点。
     */
    @Schema(description = "是否热点，0非热点，1热点")
    private Integer isHotspot;

    /**
     * 标签。
     */
    @Schema(description = "标签")
    private String noteLabel;

    /**
     * 点赞数。
     */
    @Schema(description = "点赞数")
    private Integer likeCount;

    /**
     * 浏览量。
     */
    @Schema(description = "浏览量")
    private Integer pageViewCount;

    /**
     * 热度值。
     */
    @Schema(description = "热度值")
    private Integer hotValue;

    /**
     * 是否原创(0:非原创;1:原创)。
     */
    @Schema(description = "是否原创(0:非原创;1:原创)")
    private Integer isOriginal;

    /**
     * 目的地。
     */
    @Schema(description = "目的地")
    private String endPlace;

    /**
     * 自动审核结果1：通过，2未通过。
     */
    @Schema(description = "自动审核结果1：通过，2未通过")
    private Integer autoAuditStatus;

    /**
     * 自动审核未通过原因。
     */
    @Schema(description = "自动审核未通过原因")
    private String autoRejectReason;

    /**
     * endPlace 字典关联数据。
     */
    @Schema(description = "endPlace 字典关联数据")
    private Map<String, Object> endPlaceDictMap;

    /**
     * state 常量字典关联数据。
     */
    @Schema(description = "state 常量字典关联数据")
    private Map<String, Object> stateDictMap;

    /**
     * tourismProjectTravelNotesContentDraft 游记内容。
     */
    @Schema(description = "tourismProjectTravelNotesContentDraft 游记内容")
    private List<TourismTravelNotesContentWriteVo> travelNotesContent;

    /**
     * isHotspot 常量字典关联数据。
     */
    @Schema(description = "isHotspot 常量字典关联数据")
    private Map<String, Object> isHotspotDictMap;

    /**
     * isOriginal 常量字典关联数据。
     */
    @Schema(description = "isOriginal 常量字典关联数据")
    private Map<String, Object> isOriginalDictMap;

    @Schema(description = "热门图url转换")
    private List<String> homeHotPicturesAfterConvert;

    @Schema(description = "游记列表图url转换")
    private List<String> tourismUrlsAfterConvert;

    @Schema(description = "联系人图片")
    private String contactCodeConvert;

    @Schema(description = "联系人图片")
    private List<String> travelNotesBannerAfterConvert;

    /**
     * autoAuditStatus 常量字典关联数据。
     */
    @Schema(description = "autoAuditStatus 常量字典关联数据")
    private Map<String, Object> autoAuditStatusDictMap;

    /**
     * 出行方式。
     */
    @Schema(description = "出行方式")
    private String travelMode;

    /**
     * travelMode 全局字典关联数据。
     */
    @Schema(description = "travelMode 全局字典关联数据")
    private Map<String, Object> travelModeDictMap;

    /**
     * 游玩人数。
     */
    @Schema(description = "游玩人数")
    private String travelNumber;
}
