package com.tourism.webadmin.back.vo;

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

import java.math.BigDecimal;
import java.util.Map;

/**
 * 包车车型VO视图对象。
 *
 * @author 吃饭睡觉
 * @date 2024-09-06
 */
@Schema(description = "包车车型VO视图对象")
@Data
@EqualsAndHashCode(callSuper = true)
public class TourCarCategoryVo extends BaseVo {

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

    /**
     * 车型种类(suv,mpv)。
     */
    @Schema(description = "车型种类(suv,mpv)")
    private Long model;

    /**
     * 标题。
     */
    @Schema(description = "标题")
    private String title;

    /**
     * 车名。
     */
    @Schema(description = "车名")
    private String name;

    /**
     * 包车价格。
     */
    @Schema(description = "包车价格")
    private BigDecimal price;

    /**
     * 单位。
     */
    @Schema(description = "单位")
    private String unit;

    /**
     * 座位数。
     */
    @Schema(description = "座位数")
    private Integer seatNumber;

    /**
     * 图片。
     */
    @Schema(description = "图片")
    private String image;

    /**
     * 车型归属(1.平台自营;2.三方个人)。
     */
    @Schema(description = "车型归属(1.平台自营;2.三方个人)")
    private Integer type;

    /**
     * 关联司机(若车型归属为2，则必填)。
     */
    @Schema(description = "关联司机(若车型归属为2，则必填)")
    private String relationDriverId;

    /**
     * 车型标签(以 ,隔开)。
     */
    @Schema(description = "车型标签(以 ,隔开)")
    private String label;

    /**
     * 评分。
     */
    @Schema(description = "评分")
    private Integer mark;

    /**
     * 组织id。
     */
    @Schema(description = "组织id")
    private Long deptId;

    /**
     * 是否启用。
     */
    @Schema(description = "是否启用")
    private Integer enable;

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

    /**
     * 所属区域。
     */
    @Schema(description = "所属区域")
    private Long belongTab;

    /**
     * 行李数。
     */
    @Schema(description = "行李数")
    private Integer luggageNumber;

    /**
     * 平均分（四舍五入）
     */
    @Schema(description = "平均分（四舍五入）")
    private Integer score;

    /**
     * relationDriverId 的一对一关联数据对象，数据对应类型为TourCarDriverVo。
     */
    @Schema(description = "relationDriverId 的一对一关联数据对象，数据对应类型为TourCarDriverVo")
    private Map<String, Object> tourCarDriver;

    /**
     * deptId 的一对一关联数据对象，数据对应类型为SysDeptVo。
     */
    @Schema(description = "deptId 的一对一关联数据对象，数据对应类型为SysDeptVo")
    private Map<String, Object> sysDept;

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

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

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

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

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