package shop.alien.entity.store.vo;

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

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

/**
 * 预订订单列表查询结果 DTO（Mapper 层用，含门店名与入口图）
 *
 * @author system
 */
@Data
@ApiModel(value = "ReservationOrderListDto", description = "预订订单列表查询行")
public class ReservationOrderListDto {

    @ApiModelProperty(value = "订单ID")
    private Integer orderId;
    @ApiModelProperty(value = "订单编号")
    private String orderSn;
    @ApiModelProperty(value = "门店ID")
    private Integer storeId;
    @ApiModelProperty(value = "门店名称")
    private String storeName;
    @ApiModelProperty(value = "门店入口图URL")
    private String storeEntranceImageUrl;
    @ApiModelProperty(value = "订单状态")
    private Integer orderStatus;
    @ApiModelProperty(value = "支付状态 0:未支付 1:已支付 2:已退款 3:部分退款")
    private Integer paymentStatus;
    @ApiModelProperty(value = "预约ID")
    private Integer reservationId;
    @ApiModelProperty(value = "订金金额")
    private BigDecimal depositAmount;
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createdTime;
    @ApiModelProperty(value = "核销码/券码")
    private String verificationCode;
    @ApiModelProperty(value = "商户订单号（out_trade_no）")
    private String outTradeNo;
    @ApiModelProperty(value = "支付方式/类型，如 wechatPay、alipay")
    private String payType;
    @ApiModelProperty(value = "商家取消原因（user_reservation.reason，商家取消时有值）")
    private String merchantCancelReason;
    @ApiModelProperty(value = "经营板块ID（store_info.business_section）")
    private Integer businessSection;
    @ApiModelProperty(value = "订单费用类型 0-免费，1-收费")
    private Integer orderCostType;
}
