package shop.alien.entity.store.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
 * 订单详情VO（包含订单基本信息和按批次分组的变更记录）
 *
 * @author system
 * @since 2025-02-02
 */
@Data
@ApiModel(value = "OrderDetailWithChangeLogVO对象", description = "订单详情（包含变更记录）")
public class OrderDetailWithChangeLogVO {

    @ApiModelProperty(value = "订单ID")
    private Integer orderId;

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

    @ApiModelProperty(value = "店铺名称")
    private String storeName;

    @ApiModelProperty(value = "桌号")
    private String tableNumber;

    @ApiModelProperty(value = "就餐人数")
    private Integer dinerCount;

    @ApiModelProperty(value = "联系电话")
    private String contactPhone;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "菜品总价")
    private BigDecimal totalAmount;

    @ApiModelProperty(value = "餐具费")
    private BigDecimal tablewareFee;

    @ApiModelProperty(value = "优惠券ID")
    private Integer couponId;

    @ApiModelProperty(value = "优惠券名称")
    private String couponName;

    @ApiModelProperty(value = "优惠金额")
    private BigDecimal discountAmount;

    @ApiModelProperty(value = "应付金额")
    private BigDecimal payAmount;

    @ApiModelProperty(value = "订单状态(0:待支付, 1:已支付, 2:已取消, 3:已完成)")
    private Integer orderStatus;

    @ApiModelProperty(value = "支付状态(0:未支付, 1:已支付, 2:已退款)")
    private Integer payStatus;

    @ApiModelProperty(value = "支付方式(1:微信, 2:支付宝, 3:现金)")
    private Integer payType;

    @ApiModelProperty(value = "创建时间")
    private Date createdTime;

    @ApiModelProperty(value = "支付时间")
    private Date payTime;

    @ApiModelProperty(value = "订单变更记录批次列表（按批次分组，展示每次下单/加餐都加了什么）")
    private List<OrderChangeLogBatchVO> changeLogBatches;
}
