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.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 统一订餐订单
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("app_food_meal_order")
public class FoodMealOrder extends BaseEntity<FoodMealOrder> {

    /**
     * 订餐订单号
     */
    private String orderNo;
    /**
     * 交易主单ID
     */
    private String tradeOrderId;
    /**
     * 统一交易订单主键
     */
    private String unifiedOrderId;
    /**
     * 订单中心统一订单主键（biz_trade_order.id）
     */
    private String tradeCenterOrderId;
    /**
     * 订单类型：personal/company
     */
    private String orderType;
    /**
     * 门店ID
     */
    private String restaurantId;
    /**
     * 门店名称快照
     */
    private String restaurantName;
    /**
     * 服务区域ID
     */
    private String serviceAreaId;
    /**
     * 服务区域名称快照
     */
    private String serviceAreaName;
    /**
     * 菜单ID
     */
    private String menuId;
    /**
     * 用餐日期
     */
    private LocalDate menuDate;
    /**
     * 餐别
     */
    private String mealType;
    /**
     * 会员ID
     */
    private String memberId;
    /**
     * 会员姓名快照
     */
    private String memberName;
    /**
     * 会员手机号快照
     */
    private String memberPhone;
    /**
     * 企业ID
     */
    private String companyId;
    /**
     * 企业名称快照
     */
    private String companyName;
    /**
     * 企业员工ID
     */
    private String employeeId;
    /**
     * 订单总金额
     */
    private BigDecimal totalAmount;
    /**
     * 优惠金额
     */
    private BigDecimal discountAmount;
    /**
     * 企业承担金额
     */
    private BigDecimal companyPayAmount;
    /**
     * 用户实付金额
     */
    private BigDecimal userPayAmount;
    /**
     * 已退款金额
     */
    private BigDecimal refundAmount;
    /**
     * 订单状态
     */
    private String orderStatus;
    /**
     * 支付状态
     */
    private String payStatus;
    /**
     * 取餐码
     */
    private String pickupCode;
    /**
     * 支付时间
     */
    private LocalDateTime payTime;
    /**
     * 取消时间
     */
    private LocalDateTime cancelTime;
    /**
     * 取消原因
     */
    private String cancelReason;
    /**
     * 退款完成时间
     */
    private LocalDateTime refundTime;
    /**
     * 退款申请时间
     */
    private LocalDateTime refundApplyTime;
    /**
     * 退款原因
     */
    private String refundReason;
    /**
     * 核销/取餐时间
     */
    private LocalDateTime verifyTime;
    /**
     * 核销人ID
     */
    private String verifyUserId;
    /**
     * 核销人姓名
     */
    private String verifyUserName;
    /**
     * 配送方式：delivery/pickup
     */
    private String deliveryType;
    /**
     * 会员地址ID
     */
    private String addressId;
    /**
     * 收货人姓名快照
     */
    private String receiverName;
    /**
     * 收货人手机号快照
     */
    private String receiverMobile;
    /**
     * 省份快照
     */
    private String province;
    /**
     * 省份编码快照
     */
    private String provinceCode;
    /**
     * 城市快照
     */
    private String city;
    /**
     * 城市编码快照
     */
    private String cityCode;
    /**
     * 区县快照
     */
    private String district;
    /**
     * 区县编码快照
     */
    private String districtCode;
    /**
     * 详细地址快照
     */
    private String detailAddress;
    /**
     * 完整地址快照
     */
    private String fullAddress;
    /**
     * 经度快照
     */
    private BigDecimal longitude;
    /**
     * 纬度快照
     */
    private BigDecimal latitude;
    /**
     * 用户下单备注
     */
    private String remark;
    /**
     * 扩展字段JSON
     */
    private String extJson;
}
