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

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

/**
 * 会员签到执行结果，供移动端展示本次获得积分与连续天数。
 *
 * @author jeesharp
 * @since 2026-05-08
 */
@Data
@Schema(description = "签到结果")
public class MemberSignInResultVO {

    @Schema(description = "本次获得积分合计（基础+额外）")
    private Integer points;

    @Schema(description = "当前连续签到天数（含今日）")
    private Integer continuousDays;

    @Schema(description = "历史累计签到天数（含今日）")
    private Integer totalSignDays;

    @Schema(description = "今日是否已签到（成功后为 true）")
    private Boolean todaySigned;

    @Schema(description = "额外奖励（连续签到里程碑）")
    private ExtraReward extraReward;

    @Data
    @Schema(description = "额外奖励")
    public static class ExtraReward {
        @Schema(description = "是否有额外奖励")
        private Boolean hasExtra;
        @Schema(description = "额外积分（不含基础分）")
        private Integer extraPoints;
        @Schema(description = "奖励说明")
        private String reason;
    }
}
