package com.sonic.lion.domain.req;

import com.sonic.common.rpc.Page;
import com.sonic.lion.domain.entity.AccountBuffBill;
import com.google.common.collect.ImmutableMap;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import java.util.Map;

/**
 * @author: code
 * @date: 2025/06/23
 * @Description:
 * @version: 1.0.0
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BillListReq {

    private Type type;

    @Builder.Default
    Map<String, Object> query = ImmutableMap.of();

    @Builder.Default
    Page<AccountBuffBill> page = new Page<>(1, 10);

    public Map<String, Object> getQuery() {
        return query == null ? ImmutableMap.of() : query;
    }

    public Page<AccountBuffBill> getPage() {
        return page == null ? new Page<>(1, 10) : page;
    }

    @Getter
    public enum Type {

        BALANCE,

        INCOME,
        ;
    }

    @ApiModelProperty("开始时间戳")
    private Long startTime;

    @ApiModelProperty("结束时间戳")
    private Long endTime;
}
