package com.jeesharp.business.modules.food.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.jeesharp.framework.mybatis.core.dataobject.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * 美食预订订单，映射表 {@code app_food_booking_order}；可选关联全站统一单 {@code unified_order_id}。
 *
 * @author jeesharp
 * @since 2026-05-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("app_food_booking_order")
public class FoodBookingOrder extends BaseEntity<FoodBookingOrder> {

    /**
     * 交易订单ID（业务侧展示号）
     */
    private String tradeOrderId;
    /**
     * 统一交易订单主键（{@code biz_trade_order.id}）
     */
    private String unifiedOrderId;
    /**
     * 门店ID
     */
    private String restaurantId;
    /**
     * 套餐ID
     */
    private String packageId;
    /**
     * 会员ID
     */
    private String memberId;

    /**
     * 数量
     */
    private Integer quantity;
    /**
     * 预订人手机号
     */
    private String guestPhone;
    /**
     * 支付订单ID
     */
    private String payOrderId;
    /**
     * 支付渠道
     */
    private String payChannel;
    /**
     * 支付状态
     */
    private String payStatus;
    /**
     * 支付时间
     */
    private LocalDateTime payTime;
    /**
     * 支付过期时间
     */
    private LocalDateTime expireTime;
    /**
     * 核销码
     */
    private String verifyCode;
    /** 预订状态：created-已创建 pending_use-待使用 used-已使用 cancelled-已取消 refunded-已退款 */
    private String bookStatus;
    /**
     * 结果载荷JSON
     */
    private String resultPayloadJson;
    /**
     * 使用时间
     */
    private LocalDateTime usedTime;
    /**
     * 取消时间
     */
    private LocalDateTime cancelTime;
    /**
     * 扩展信息JSON
     */
    private String extJson;
}
