// =====================================================
// DTOs: Feature Flags
// Modulo: MGN-019
// Version: 1.0.0
// =====================================================

export interface CreateFlagDto {
  code: string;
  name: string;
  description?: string;
  enabled?: boolean;
  rolloutPercentage?: number;
  tags?: string[];
}

export interface UpdateFlagDto {
  name?: string;
  description?: string;
  enabled?: boolean;
  rolloutPercentage?: number;
  tags?: string[];
  isActive?: boolean;
}

export interface CreateTenantOverrideDto {
  flagId: string;
  tenantId: string;
  enabled: boolean;
  reason?: string;
  expiresAt?: Date;
}

export interface UpdateTenantOverrideDto {
  enabled?: boolean;
  reason?: string;
  expiresAt?: Date | null;
}

export interface EvaluateFlagDto {
  flagCode: string;
  tenantId: string;
}

export interface EvaluateFlagsDto {
  flagCodes: string[];
  tenantId: string;
}

export interface FlagEvaluationResult {
  code: string;
  enabled: boolean;
  source: 'override' | 'global' | 'rollout' | 'default';
}
