// Gemeinsame Typen & Konstanten für den Admin-Bereich.
// Zentral, damit die einzelnen Tab-Komponenten konsistent bleiben.

export interface IconCategory {
  id: string
  name: string
  description: string | null
  sortOrder: number
  _count?: { icons: number }
}

export interface IconAsset {
  id: string
  name: string
  fileKey: string
  mimeType: string
  isSystem: boolean
  isActive: boolean
  iconType: string
  tags: string[]
  category: IconCategory
}

export interface UserRecord {
  id: string
  email: string
  name: string
  role: 'SERVER_ADMIN' | 'TENANT_ADMIN' | 'OPERATOR' | 'VIEWER'
  emailVerified?: boolean
  isActive?: boolean
  lastLoginAt?: string | null
  createdAt: string
  updatedAt: string
  memberships?: { tenant: { id: string; name: string; slug: string } }[]
  _count?: { projects: number }
}

export interface TenantRecord {
  id: string
  name: string
  slug: string
  description: string | null
  isActive: boolean
  createdAt: string
  _count?: { memberships: number; projects: number }
}

export const ICON_TYPES = [
  { value: 'STANDARD', label: 'Standard' },
  { value: 'RETTUNG', label: 'Rettung' },
  { value: 'GEFAHRSTOFF', label: 'Gefahrstoff' },
  { value: 'FEUER', label: 'Feuer' },
  { value: 'WASSER', label: 'Wasser' },
  { value: 'FAHRZEUG', label: 'Fahrzeug' },
]

export const ROLES = [
  { value: 'SERVER_ADMIN', label: 'Server Admin', desc: 'Systemweiter Vollzugriff, Mandanten verwalten' },
  { value: 'TENANT_ADMIN', label: 'Admin', desc: 'Mandant verwalten, Benutzer anlegen' },
  { value: 'OPERATOR', label: 'Bediener', desc: 'Einsätze erstellen und bearbeiten' },
  { value: 'VIEWER', label: 'Betrachter', desc: 'Nur Ansicht, kein Bearbeiten' },
]
