package com.red.circle.other.infra.database.mongo.dto.team;

import com.red.circle.other.inner.enums.team.TeamBillCycleStatus;
import lombok.Data;

import java.time.LocalDate;
import java.time.LocalDateTime;

@Data
public class SettlementBatch {

    /**
     * 批次号，用于标识当前是当月的第几个结算批次。
     * <ul>
     *   <li>{@code 1} 表示上半月（1日 - 15日）</li>
     *   <li>{@code 2} 表示下半月（16日 - 月末）</li>
     * </ul>
     */
    private Integer batchNumber;

    /**
     * 批次标题，用于展示用途，格式如："2025年11月（上半月）"。
     */
    private String batchTitle;

    /**
     * 本批次统计周期的开始日期（包含），例如：{@code 2025-11-01}。
     */
    private LocalDate periodStart;

    /**
     * 本批次统计周期的结束日期（包含），例如：{@code 2025-11-15}（上半月）或 {@code 2025-11-30}（下半月）。
     */
    private LocalDate periodEnd;

    /**
     * 实际执行结算操作的时间戳，精确到秒，例如：{@code 2025-11-16T10:30:00}。
     */
    private LocalDateTime settlementTime;

    /**
     * 本批次的结算结果详情，包含金额、条目数等汇总信息。
     */
    private TeamBillSettleResult batchResult;

    /**
     * 本批次的结算状态，如：待结算、结算中、已结算、结算失败等。
     */
    private TeamBillCycleStatus batchStatus;
}