export type TenantStatus = "ACTIVE" | "SUSPENDED" | "TRIAL";

export interface TenantUserSummary {
  id: string;
  name: string;
  email: string;
  role: string;
  active: boolean;
}

export interface TenantCompany {
  id: string;
  legalName: string;
  tradeName: string;
  document: string;
  email: string;
  phone?: string | null;
  status: TenantStatus;
  plan: string;
  monthlyFee: number;
  dueDay: number;
  lastPaymentStatus: "PAID" | "PENDENTE" | "OVERDUE";
  userCount: number;
  users?: TenantUserSummary[];
  createdAt: string;
  updatedAt: string;
}

export interface SaaSFinancialStats {
  totalTenants: number;
  activeTenants: number;
  suspendedTenants: number;
  trialTenants: number;
  mrr: number;
  arr: number;
  overdueRevenue: number;
}

export interface CreateTenantDTO {
  legalName: string;
  tradeName?: string;
  document: string;
  email: string;
  phone?: string;
  status?: TenantStatus;
  plan?: string;
  monthlyFee?: number;
  dueDay?: number;
  adminName: string;
  adminEmail: string;
  adminPassword: string;
}

export interface BroadcastNotificationDTO {
  companyId?: string;
  title: string;
  message: string;
  type?: "INFO" | "WARNING" | "BLOCK";
  expiresAt?: string;
}

export interface SystemNotification {
  id: string;
  companyId?: string | null;
  title: string;
  message: string;
  type: string;
  active: boolean;
  createdAt: string;
}
