package pl.polskalokalnie.admin;

import java.time.Instant;
import java.time.LocalDate;
import java.util.List;

public record AdminStatsResponse(
        int periodDays,
        LocalDate fromDate,
        LocalDate toDate,
        Instant generatedAt,
        Summary summary,
        Period period,
        List<DailyPoint> daily
) {
    public record Summary(
            long activeListings,
            long pendingListings,
            long totalUsers,
            long pendingVerificationUsers,
            long openReports,
            long messagesToAdminTotal,
            long blockedUsers
    ) {
    }

    public record Period(
            long messagesToAdmin,
            long newListings,
            long newReports,
            long newPersonalAccounts,
            long newCompanyAccounts
    ) {
    }

    public record DailyPoint(
            LocalDate date,
            long messagesToAdmin,
            long newListings,
            long newReports,
            long newPersonalAccounts,
            long newCompanyAccounts
    ) {
    }
}
