package com.greenorange.promotion.model.vo.dashboard;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class WebQueryDashboardVO implements Serializable {

    /**
     * 订单总金额
     */
    @Schema(description = "订单总金额", example = "1000.00")
    private BigDecimal totalAmount;

    /**
     * 净成交
     */
    @Schema(description = "净成交", example = "800.00")
    private BigDecimal netAmount;

    /**
     * 客户数量
     */
    @Schema(description = "客户数量", example = "10")
    private Integer promoCount;

    /**
     * 主管数量
     */
    @Schema(description = "主管数量", example = "15")
    private Integer superCount;

    /**
     * 员工数量
     */
    @Schema(description = "员工数量", example = "15")
    private Integer empCount;

    /**
     * 下单数量
     */
    @Schema(description = "下单数量", example = "25")
    private Integer orderCount;

    /**
     * 待释放
     */
    @Schema(description = "待释放", example = "1000.00")
    private BigDecimal toRelease;

    /**
     * 可结算
     */
    @Schema(description = "可结算", example = "600.00")
    private BigDecimal toSettle;

    /**
     * 已结算
     */
    @Schema(description = "已结算", example = "200.00")
    private BigDecimal settled;

    /**
     * 已回退
     */
    @Schema(description = "已回退", example = "100.00")
    private BigDecimal refunded;

    /**
     * 今日下单数量
     */
    @Schema(description = "今日下单数量", example = "10")
    private Integer todayOrderCount;

    /**
     * 今日下单总金额
     */
    @Schema(description = "今日下单总金额", example = "100.00")
    private BigDecimal todayOrderAmount;

    /**
     * 今日退款数量
     */
    @Schema(description = "今日退款数量", example = "10")
    private Integer todayRefundCount;

    /**
     * 今日下单退款金额
     */
    @Schema(description = "今日下单退款金额", example = "90.00")
    private BigDecimal todayRefundAmount;

    /**
     * 今日推广数量
     */
    @Schema(description = "今日推广数量", example = "10")
    private Integer todayPromotionCount;

    /**
     * 本月下单数量
     */
    @Schema(description = "本月下单数量", example = "100")
    private Integer monthOrderCount;

    /**
     * 本月下单金额
     */
    @Schema(description = "本月下单金额", example = "1000.00")
    private BigDecimal monthOrderAmount;

    /**
     * 本月退款数量
     */
    @Schema(description = "本月退款数量", example = "10")
    private Integer monthRefundCount;

    /**
     * 本月退款金额
     */
    @Schema(description = "本月退款金额", example = "1000.00")
    private BigDecimal monthRefundAmount;

    /**
     * 本月推广数量
     */
    @Schema(description = "本月推广数量", example = "10")
    private Integer monthPromotionCount;


    @Serial
    private static final long serialVersionUID = 1L;
}
