package shop.alien.entity.store.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import shop.alien.entity.store.dto.CartItemDTO;

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

/**
 * 订单信息VO（用于查询订单详情）
 *
 * @author system
 * @since 2025-02-02
 */
@Data
@ApiModel(value = "OrderInfoVO对象", description = "订单信息")
public class OrderInfoVO {

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

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

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

    @ApiModelProperty(value = "店铺ID")
    private Integer storeId;

    @ApiModelProperty(value = "门店电话")
    private String storeTel;

    @ApiModelProperty(value = "smid")
    private String smid;

    @ApiModelProperty(value = "门店地址")
    private String storeAddress;

    @ApiModelProperty(value = "门店简介")
    private String storeBlurb;

    @ApiModelProperty(value = "门店类型(1:中餐, 2:烧烤, 3:饮品, 4:甜点, 5:火锅, 6:宵夜, 7:西餐, 8:轻食, 9:水果)")
    private String storeType;

    @ApiModelProperty(value = "营业状态(-1:注销中, 0:正常营业, 1:暂停营业, 2:筹建中, 99:永久关门)")
    private Integer businessStatus;

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

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

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

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

    @ApiModelProperty(value = "菜品清单")
    private List<CartItemDTO> items;

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

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

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

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

    @ApiModelProperty(value = "优惠券类型：1-满减券，2-折扣券")
    private Integer couponType;

    @ApiModelProperty(value = "折扣率（0-100，用于折扣券，例如80表示8折）")
    private BigDecimal discountRate;

    @ApiModelProperty(value = "面值（用于满减券）")
    private BigDecimal nominalValue;

    @ApiModelProperty(value = "最低消费")
    private BigDecimal minimumSpendingAmount;

    @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;
}
