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;

/**
 *
 * 订单主单分页查询 VO
 *
 * @author chenxiky
 * @version 1.0.0
 * @since 2025/7/11
 */
@Data
public class OrderMainPageQueryVO {

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

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

    /**
     * 订单类型
     */
    @ApiModelProperty(value = "订单类型（1=载物飞行，2=载人飞行）")
    private Integer orderType;

    /**
     * 订单状态
     */
    @ApiModelProperty(value = "订单状态(0=未进行，1=进行中，2=已完成，3=已取消,4=待确认)")
    private Integer mainOrderStatus;

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

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

    /**
     * 订单发起人ID
     */
    @ApiModelProperty(value = "订单发起人ID（飞行员ID）")
    private Long orderInitiatorId;
    /**
     * 手机号
     */
    @ApiModelProperty(value = "发起人手机号")
    private String initiatorPhone;

    /**
     * 区域ID
     */
    @ApiModelProperty(value = "区域ID")
    private Long areaId;

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

    /**
     * 路线名称，拼接返回
     */
    @ApiModelProperty(value = "路线名称")
    private String routeName;

    /**
     * 下单时间
     */
    @ApiModelProperty(value = "下单时间")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private Date orderCreateTime;

    /**
     * 订单完成时间
     */
    @ApiModelProperty(value = "订单完成时间")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private Date orderFinishTime;

    /**
     * 结算状态
     */
    @ApiModelProperty(value = "结算状态: 0=未结算, 1=结算中, 2=结算完成")
    private Integer settlementStatus;

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

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

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