package com.zanxiang.game.gs.data.serve.pojo.vo;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

@Data
public class ServeManageVO {
    private Long superGameId;
    private String endServerId;

    private Boolean originServer;

    private Integer parentGameId;
    private String parentGameName;

    private String gsIds;
    private String gsName;

    private Integer gsStatus;

    private LocalDate startTime;
    private long startDiff;

    private String serverId;
    private String serverName;

    private LocalDate endTime;
    private long serveDiff;

    private Boolean serveStatus;

    private Long totalRoleNum;

    private Long totalAmountNum;

    private Long totalAmountCount;

    private BigDecimal totalAmount;

    private BigDecimal amountRate;

    private Long sonRoleNum;

    private Long sonServerAmountNum;

    private Long sonServerAmountCount;

    private BigDecimal sonServerAmount;

    private BigDecimal sonAmountRate;

    private String combatRoleId;

    private String combatRoleName;

    private String combatCountry;

    private Long combatTotalRoleCombatNum;

    private Long combatRoleLevel;

    private Long combatNum;

    private BigDecimal combatAmount;

    private String amountRoleId;

    private String amountRoleName;

    private BigDecimal amountRoleTotalAmount;

    private String amountCountry;

    private Long amountTotalRoleCombatNum;

    private Long amountRoleLevel;

    private Long amountNum;

    private List<CombatRank> combatRankList;

    private List<AmountRank> amountRankList;

    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class CombatRank{
        private String combatRoleId;

        private String combatRoleName;

        private String combatCountry;

        private Long combatTotalRoleCombatNum;

        private Long combatRoleLevel;

        private Long combatNum;

        private BigDecimal combatAmount;
    }

    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class AmountRank{
        private String amountRoleId;

        private String amountRoleName;

        private BigDecimal amountRoleTotalAmount;

        private String amountCountry;

        private Long amountTotalRoleCombatNum;

        private Long amountRoleLevel;

        private Long amountNum;
    }
}
