package shop.alien.entity.store.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
 * 律师仪表板数据VO
 * 包含律师个人信息、订单统计和收益统计
 *
 * @author system
 * @since 2025-01-XX
 */
@Data
@ApiModel(value = "LawyerDashboardVO对象", description = "律师仪表板数据VO")
public class LawyerDashboardVO implements Serializable {

    private static final long serialVersionUID = 1L;

    // ========== 律师基本信息 ==========
    @ApiModelProperty(value = "律师ID")
    private Integer lawyerId;

    @ApiModelProperty(value = "律师姓名")
    private String name;

    @ApiModelProperty(value = "律师头像")
    private String avatar;

    @ApiModelProperty(value = "服务领域（多个用逗号分隔）")
    private String serviceFields;

    // ========== 性能指标 ==========
    @ApiModelProperty(value = "本月订单量")
    private Integer monthOrderCount;

    @ApiModelProperty(value = "总订单量")
    private Integer totalOrderCount;

    @ApiModelProperty(value = "本月收益（元）")
    private BigDecimal monthRevenue;

    @ApiModelProperty(value = "总收益（元）")
    private BigDecimal totalRevenue;

    // ========== 订单信息 ==========
    @ApiModelProperty(value = "进行中订单统计")
    private OrderStatusInfo inProgressOrder;

    @ApiModelProperty(value = "待接单订单统计")
    private OrderStatusInfo pendingAcceptOrder;

    @ApiModelProperty(value = "已退款订单统计")
    private OrderStatusInfo refundedOrder;

    /**
     * 订单状态信息内部类
     */
    @Data
    @ApiModel(value = "OrderStatusInfo对象", description = "订单状态信息")
    public static class OrderStatusInfo implements Serializable {

        private static final long serialVersionUID = 1L;

        @ApiModelProperty(value = "订单总数")
        private Integer orderCount;

        @ApiModelProperty(value = "金额合计（元）")
        private BigDecimal totalAmount;
    }
}

