package co.yixiang.yshop.module.distributor.controller.admin.distributororder.vo;

import lombok.*;

import java.math.BigDecimal;
import java.util.*;

import io.swagger.v3.oas.annotations.media.Schema;
import co.yixiang.yshop.framework.common.pojo.PageParam;

import java.time.LocalDateTime;

import org.springframework.format.annotation.DateTimeFormat;

import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 分销商订单 Excel 导出 Request VO，参数和 DistributorOrderPageReqVO 是一致的")
@Data
public class DistributorOrderExportReqVO {

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

    @Schema(description = "结算时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] settlementTime;

    @Schema(description = "订单ID", example = "18018")
    private Long oid;

    @Schema(description = "订单号", example = "32634")
    private String orderId;

    @Schema(description = "佣金状态", example = "1")
    private Integer status;

    @Schema(description = "分销规则 0-默认 1-自定义")
    private Integer distributionRule;

    @Schema(description = "分销自购 0-关闭 1-开启")
    private Integer distributionPurchase;

    @Schema(description = "商品结算方式 0-实际支付价格 1-商品价格")
    private Integer distributionProductSettlement;

    @Schema(description = "佣金结算方式 0-支付后结算 1-确认收获后结算 2-订单完成结算")
    private Integer distributionWagesSettlement;

    @Schema(description = "下单用户", example = "625")
    private Long userId;

    @Schema(description = "用户昵称", example = "王五")
    private String userName;

    @Schema(description = "商品ID", example = "32461")
    private Long productId;

    @Schema(description = "商品规格ID", example = "20034")
    private Long productAttrValueId;

    @Schema(description = "商品名称", example = "张三")
    private String productName;

    @Schema(description = "商品金额", example = "27614")
    private BigDecimal productPrice;

    @Schema(description = "订单详情id", example = "12663")
    private Long detailId;

    @Schema(description = "所属一级ID")
    private Long superiorIdP1;

    @Schema(description = "上级名称")
    private String superiorNameP1;

    @Schema(description = "所属二级ID")
    private Long superiorIdP2;

    @Schema(description = "上级名称")
    private String superiorNameP2;

    @Schema(description = "一级佣金比例")
    private Integer firstWages;

    @Schema(description = "二级佣金比例")
    private Integer secondWages;

    @Schema(description = "一级佣金")
    private BigDecimal firstAmount;

    @Schema(description = "二级佣金")
    private BigDecimal secondAmount;

    @Schema(description = "下单用户ids", example = "625")
    private List<Long> userIds;

    @Schema(description = "订单详情ids", example = "12663")
    private List<Long> detailIds;

}
