export interface UserDto {
  id: string;
  name: string;
  email: string;
  role: string;
  banned: boolean;
  banReason: string | null;
  createdAt: string;
  updatedAt: string;
}

export interface UserListDto {
  users: UserDto[];
  total: number;
}

export interface CreateUserDto {
  name: string;
  email: string;
  password: string;
  role?: string;
}

export interface UpdateUserRoleDto {
  role: string;
}

export interface BanUserDto {
  reason?: string;
}

export interface HealthStatusDto {
  status: 'ok' | 'degraded' | 'error';
  database: ServiceStatusDto;
  cache: ServiceStatusDto;
  agentPool: AgentPoolStatusDto;
  providers: ProviderStatusDto[];
  checkedAt: string;
}

export interface ServiceStatusDto {
  status: 'ok' | 'error';
  latencyMs?: number;
  error?: string;
}

export interface AgentPoolStatusDto {
  activeSessions: number;
}

export interface ProviderStatusDto {
  id: string;
  name: string;
  available: boolean;
  modelCount: number;
}
