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.CartDTO;
import shop.alien.entity.store.dto.CartItemDTO;

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

/**
 * 订单确认页面VO
 *
 * @author system
 * @since 2025-01-XX
 */
@Data
@ApiModel(value = "OrderConfirmVO对象", description = "订单确认页面")
public class OrderConfirmVO {

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

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

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

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

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

    @ApiModelProperty(value = "购物车商品列表")
    private List<CartItemDTO> items;

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

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

    @ApiModelProperty(value = "餐具费单价")
    private BigDecimal tablewareUnitPrice;

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

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

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

    @ApiModelProperty(value = "应付金额(菜品总价+餐具费-优惠券)")
    private BigDecimal payAmount;

    @ApiModelProperty(value = "可用优惠券列表")
    private List<AvailableCouponVO> availableCoupons;

    @ApiModelProperty(value = "是否已锁定(有人正在下单)")
    private Boolean isLocked;

    @ApiModelProperty(value = "锁定用户ID")
    private Integer lockUserId;
}
