using Meezi.Core.Enums;
using Meezi.Core.Platform;

namespace Meezi.Admin.API.Models;

public record AdminDashboardStatsDto(
    int TotalCafes,
    int ActiveCafes,
    int SuspendedCafes,
    int OpenTickets,
    int PlansConfigured);

public record UpdatePlanRequest(
    string DisplayNameFa,
    string? DisplayNameEn,
    decimal MonthlyPriceToman,
    bool IsBillableOnline,
    bool IsActive,
    int SortOrder,
    PlanLimitsData Limits,
    IReadOnlyList<string>? FeatureKeys);

public record UpdateSettingRequest(string Value, string? DescriptionFa);

public record UpdateFeatureRequest(
    string DisplayNameFa,
    string? DisplayNameEn,
    string ModuleGroup,
    bool IsEnabledGlobally);

public record AdminCafeListItemDto(
    string Id,
    string Name,
    string Slug,
    string City,
    PlanTier PlanTier,
    DateTime? PlanExpiresAt,
    bool IsSuspended,
    bool IsVerified,
    int BranchCount,
    int EmployeeCount,
    DateTime CreatedAt);

public record AdminCafePatchRequest(
    PlanTier? PlanTier,
    DateTime? PlanExpiresAt,
    bool? IsSuspended,
    bool? IsVerified,
    IReadOnlyList<string>? DiscoverBadges = null);

public record CafeFeatureOverrideRequest(string FeatureKey, bool IsEnabled);
