import type { Component } from 'vue'

export type AdminSettingsTone = 'good' | 'warning' | 'danger' | 'neutral'

export interface AdminOperationalSettingsForm {
  demoLoginEnabled: boolean
  demoLoginIdentifier: string
  demoLoginTwitchUserId: string
  demoLoginDisplayName: string
  twitchClientId: string
  twitchRedirectUri: string
  twitchScope: string
  sessionIdleTimeoutHours: number
  maintenanceModeEnabled: boolean
  maintenanceTitle: string
  maintenanceMessage: string
}

export interface AdminSettingsCheckItem {
  label: string
  value: boolean
  note: string
  icon: Component
  to: string | null
}

export interface AdminSettingsGateItem {
  label: string
  state: boolean
  note: string
  to: string
}

export interface AdminSettingsStatusSummary {
  label: string
  value: string
  note: string
  tone: AdminSettingsTone
}
