package cn.iocoder.yudao.module.member.controller.app.order.vo;

import cn.iocoder.yudao.module.member.controller.app.orderdetail.vo.AppOrderDetailRespVO;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

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

@Schema(description = "管理后台 - 会员订单 Response VO")
@Data
@ExcelIgnoreUnannotated
public class AppOrderRespVO {

    @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "19151")
    @ExcelProperty("编号")
    private Long id;

    @Schema(description = "门店Id", example = "24217")
    @ExcelProperty("门店Id")
    private Long storeId;

    @Schema(description = "门店名", example = "赵六")
    @ExcelProperty("门店名")
    private String storeName;

    @Schema(description = "订单状态", example = "1")
    @ExcelProperty("订单状态")
    private String orderStatus;

    @Schema(description = "用户ID", example = "1")
    private Long userId;

    @Schema(description = "总价")
    @ExcelProperty("总价")
    private BigDecimal totalMoney;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    @Schema(description = "菜品")
    private List<AppOrderDetailRespVO> detailList;

    @Schema(description = "推荐摄入量")
    private BigDecimal proposeIntake;

    @Schema(description = "摄入量")
    private BigDecimal intake;

    @Schema(description = "差值")
    private BigDecimal difference;

    @Schema(description = "完结时间")
    @ExcelProperty("完结时间")
    private LocalDateTime updateTime;

    @Schema(description = "退款状态")
    private String refundStatus;

    @Schema(description = "减免状态")
    private String reductionState;

    @Schema(description = "减免金额")
    private BigDecimal reductionAmount;

    @Schema(description = "现有金额")
    private BigDecimal money;

    /**
     * 待支付金额
     */
    private BigDecimal payAmount;
    /**
     * 最大退款金额
     */
    private BigDecimal refundAmount;

    private String faceData;

    private String mobile;

    /**
     * 补贴金额
     */
    private BigDecimal subsidyAmount;

    private String nickname;

    private String diningPlatesNum;
}