package com.dora.dto;

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

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

/**
 * 推广信息DTO
 */
@Data
@Schema(description = "推广信息")
public class PromotionDto {

    @Schema(description = "推广码")
    private String inviteCode;

    @Schema(description = "推广等级")
    private Integer promotionLevel;

    @Schema(description = "推广等级名称")
    private String levelName;

    @Schema(description = "付费粉丝数量")
    private Integer paidFansCount;

    @Schema(description = "总粉丝数量")
    private Integer totalFansCount;

    @Schema(description = "当前提成比例")
    private BigDecimal commissionRate;

    @Schema(description = "累计提成金额")
    private BigDecimal totalCommission;

    @Schema(description = "积分余额")
    private Integer points;

    @Schema(description = "积分过期时间")
    private LocalDateTime pointsExpiresAt;

    @Schema(description = "创建时间")
    private LocalDateTime createTime;
}



/**
 * 推广码生成请求DTO
 */
@Data
@Schema(description = "推广码生成请求")
class GenerateInviteCodeRequest {

    @Schema(description = "推广码长度", example = "8")
    private Integer length = 8;

    @Schema(description = "是否包含数字", example = "true")
    private Boolean includeNumbers = true;

    @Schema(description = "是否包含字母", example = "true")
    private Boolean includeLetters = true;
} 