package com.tourism.webadmin.back.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.tourism.common.core.base.vo.BaseVo;
import com.tourism.webadmin.back.model.TourProjectGroupPurchase;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

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

/**
 * 旅游订单VO视图对象。
 *
 * @author 吃饭睡觉
 * @date 2024-09-06
 */
@Schema(description = "TourOderVO视图对象")
@Data
@EqualsAndHashCode(callSuper = true)
public class TourOrderVo extends BaseVo {

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

    /**
     * 订单号。
     */
    @Schema(description = "订单号")
    private String orderNo;

    /**
     * 出发日期。
     */
    @Schema(description = "出发日期")
    private Date departureDate;

    /**
     * 结束日期。
     */
    @Schema(description = "结束日期")
    private Date endDate;

    /**
     * 成人数量。
     */
    @Schema(description = "成人数量")
    private Integer adultNumber;

    /**
     * 儿童数量。
     */
    @Schema(description = "儿童数量")
    private Integer childrenNumber;

    /**
     * 币种。
     */
    @Schema(description = "币种")
    private String currency;

    /**
     * 订单总金额。
     */
    @Schema(description = "订单总金额")
    private BigDecimal totalAmount;

    /**
     * 房间数量。
     */
    @Schema(description = "房间数量")
    private Integer roomNumber;

    /**
     * 车辆信息。
     */
    @Schema(description = "车辆信息")
    private Long carId;

    /**
     * 车辆金额。
     */
    @Schema(description = "车辆金额")
    private BigDecimal carAmount;

    /**
     * 预定日期。
     */
    @Schema(description = "预定日期")
    private Date orderDate;

    /**
     * 订单状态。
     */
    @Schema(description = "订单状态")
    private Integer orderStatus;

    /**
     * 旅游项目。
     */
    @Schema(description = "旅游项目")
    private String projectId;

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

    /**
     * 顾客姓名。
     */
    @Schema(description = "顾客姓名")
    private String customerName;

    /**
     * 顾客手机号。
     */
    @Schema(description = "顾客手机号")
    private String customerMobile;

    /**
     * 顾客微信号。
     */
    @Schema(description = "顾客微信号")
    private String customerWechat;

    /**
     * 顾客备用手机号。
     */
    @Schema(description = "顾客备用手机号")
    private String customerMobileStandby;

    /**
     * 儿童价格。
     */
    @Schema(description = "儿童价格")
    private BigDecimal childrenPrice;

    /**
     * 成人价格。
     */
    @Schema(description = "成人价格")
    private BigDecimal adultPrice;

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

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

//    /**
//     * whatsapp账号。
//     */
//    @Schema(description = "whatsapp账号")
//    private String whatsapp;

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

    /**
     * detailList 全局字典关联数据。
     */
    @Schema(description = "orderStatus 全局字典关联数据")
    private List<TourOrderPassenageVo> detailList;

    /**
     * projectInfo 旅游项目信息。
     */
    @Schema(description = "projectInfo 旅游项目信息")
    private TourismProjectVo tourismProjectVo;

    @Schema(description = "团购信息")
    private TourProjectGroupPurchase tourProjectGroupPurchase;
}
