package com.aircraft.modules.order.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
 * 获取订单详情VO
 *
 * @author chenxiky
 * @version 1.0.0
 * @since 2025/7/16
 */
@Data
public class OrderAllDetailVO {

    /**
     * 订单ID
     */
    @ApiModelProperty(value = "ID")
    private Long id;

    /**
     * 订单编号
     */
    @ApiModelProperty(value = "订单编号")
    private String orderNo;

    /**
     * 订单类型
     */
    @ApiModelProperty(value = "订单类型")
    private String orderType;

    /**
     * 订单状态
     */
    @ApiModelProperty(value = "订单状态")
    private String mainOrderStatus;

    /**
     * 订单发起人
     */
    @ApiModelProperty(value = "订单发起人")
    private String orderInitiator;

    /**
     * 订单发起人ID
     */
    @ApiModelProperty(value = "订单发起人ID")
    private Long orderInitiatorId;

    /**
     * 客户名称
     */
    @ApiModelProperty(value = "客户名称")
    private String customerName;

    /**
     * 客户ID
     */
    @ApiModelProperty(value = "客户ID")
    private Long customerId;

    /**
     * 手机号码
     */
    @ApiModelProperty(value = "客户手机号码")
    private String phone;

    /**
     * 发起人手机号码
     */
    @ApiModelProperty(value = "发起人手机号码")
    private String initiatorPhone;

    /**
     * 景区
     */
    @ApiModelProperty(value = "景区名称")
    private String scenicName;

    /**
     * 景区ID
     */
    @ApiModelProperty(value = "景区ID")
    private Long attractionId;

    /**
     * 路线,多个用逗号隔开返回
     */
    @ApiModelProperty(value = "路线名称,多个用逗号隔开返回", example = "线路1,线路2")
    private String routeName;

    /**
     * 路线ID集合
     */
    @ApiModelProperty(value = "路线ID集合")
    private List<Long> routeIds;

    /**
     * 货物重量
     */
    @ApiModelProperty(value = "货物重量")
    private BigDecimal cargoWeight;

    /**
     * 附加费
     */
    @ApiModelProperty(value = "附加费")
    private BigDecimal surchargeAmount;

    /**
     * 计算重量的金额
     */
    @ApiModelProperty(value = "计算重量的金额")
    private BigDecimal amount;

    /**
     * 订单总金额
     */
    @ApiModelProperty(value = "订单总金额（附加费+计算重量金额）")
    private BigDecimal totalAmount;

    /**
     * 操作员，多个逗号拼接返回
     */
    @ApiModelProperty(value = "操作员，多个逗号拼接返回", example = "操作员1,操作员2")
    private String operatorName;

    /**
     * 操作员ID集合
     */
    @ApiModelProperty(value = "操作员ID集合")
    private List<Long> operatorIds;

    /**
     * 下单时间
     */
    @ApiModelProperty(value = "下单时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date orderCreateTime;

    /**
     * 订单完成时间
     */
    @ApiModelProperty(value = "订单完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date orderFinishTime;

    /**
     * 订单子单信息列表
     */
    private List<OrderTaskDetailVO> orderTaskDetailList;

}
