package com.yc.ship.module.resource.controller.admin.scenic.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.math.BigDecimal;
import java.util.*;
import com.alibaba.excel.annotation.*;
import com.yc.ship.framework.excel.core.annotations.DictFormat;
import com.yc.ship.framework.excel.core.convert.DictConvert;

@Schema(description = "管理后台 - 景区管理 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ResourceScenicRespVO {

    @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14410")
    @ExcelProperty("ID")
    private Long id;

    @Schema(description = "景区名称", example = "张三")
    @ExcelProperty("景区名称")
    private String name;

    @Schema(description = "所属供应商", example = "15781")
    @ExcelProperty("所属供应商")
    private Long supplierId;

    @Schema(description = "省份ID", example = "15086")
    @ExcelProperty("省份ID")
    private Integer provinceId;

    @Schema(description = "省份名称", example = "芋艿")
    @ExcelProperty("省份名称")
    private String provinceName;

    @Schema(description = "城市ID", example = "12118")
    @ExcelProperty("城市ID")
    private Integer cityId;

    @Schema(description = "城市名称", example = "芋艿")
    @ExcelProperty("城市名称")
    private String cityName;

    @Schema(description = "区县ID", example = "26359")
    @ExcelProperty("区县ID")
    private Integer countyId;

    @Schema(description = "区县名称", example = "芋艿")
    @ExcelProperty("区县名称")
    private String countyName;

    @Schema(description = "区域")
    @ExcelProperty("区域")
    private String area;

    @Schema(description = "详细地址")
    @ExcelProperty("详细地址")
    private String address;

    @Schema(description = "景区介绍")
    @ExcelProperty("景区介绍")
    private String introduce;

    @Schema(description = "所属码头ID", example = "19621")
    @ExcelProperty("所属码头ID")
    private Long dockId;

    @Schema(description = "所属码头名称", example = "芋艿")
    @ExcelProperty("所属码头名称")
    private String dockName;

    @Schema(description = "中文语音")
    @ExcelProperty("中文语音")
    private String voiceZh;

    @Schema(description = "英文语音")
    @ExcelProperty("英文语音")
    private String voiceEn;

    @Schema(description = "中文视频")
    @ExcelProperty("中文视频")
    private String videoZh;

    @Schema(description = "英文视频")
    @ExcelProperty("英文视频")
    private String videoEn;

    @Schema(description = "游玩线路")
    @ExcelProperty("游玩线路")
    private String travelLine;

    @Schema(description = "景区图片")
    @ExcelProperty("景区图片")
    private String pic;

    @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @ExcelProperty(value = "状态", converter = DictConvert.class)
    @DictFormat("common_status") // TODO 代码优化：建议设置到对应的 DictTypeConstants 枚举类中
    private Integer status;


    /**
     * 建议游玩时间
     */
    @Schema(description = "建议游玩时间")
    private String playTime;

    /**
     * 景区价格
     */
    @Schema(description = "景区价格")
    private BigDecimal price;

    /**
     * 评分
     */
    @Schema(description = "评分")
    private BigDecimal score;

}