package com.jeesharp.business.modules.mall.vo;

import com.jeesharp.business.modules.member.vo.MemberOrderDisplay;
import com.jeesharp.framework.pojo.vo.BaseListVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

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

/**
 * 商城订单管理端分页列表行 VO；会员编号、昵称、手机由 {@code MemberService.enrichMemberDisplay} 补全。
 *
 * @author jeesharp
 * @since 2026-06-05
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class MallOrderListVO extends BaseListVO implements MemberOrderDisplay {

    private String orderNo;

    private String memberId;

    private String memberNo;

    private String memberNickname;

    private String memberMobile;

    private BigDecimal payAmount;

    private BigDecimal freightAmount;

    private String payType;

    /**
     * 支付方式中文名（由 {@link com.jeesharp.business.modules.mall.enums.MallPayTypeEnum} 转换）
     */
    private String payTypeName;

    private String deliveryType;

    private String pickupVerifyCode;

    private Integer status;

    private String receiverName;

    private String receiverMobile;

    private LocalDateTime payTime;

    @Schema(description = "合并支付批次ID")
    private String payBatchId;

    @Schema(description = "合并支付批次编号（展示用，非表字段补全）")
    private String payBatchNo;

    @Schema(description = "商户租户ID")
    private String tenantId;

    @Schema(description = "商户租户编码")
    private String tenantCode;

    @Schema(description = "商户券抵扣（元）")
    private BigDecimal merchantCouponAmount;

    @Schema(description = "平台券分摊抵扣（元）")
    private BigDecimal platformCouponAmount;
}
