export interface AdminNotificationBarkRecipient {
  id: string
  name: string
  deviceKey: string
  deviceKeyMasked: string
  enabled: boolean
}

export interface AdminNotificationWpushRecipient {
  id: string
  name: string
  apiKey: string
  apiKeyMasked: string
  enabled: boolean
}

export interface AdminNotificationConfig {
  enabled: boolean
  channels: {
    bark: {
      enabled: boolean
      serverUrl: string
      recipients: AdminNotificationBarkRecipient[]
    }
    wpush: {
      enabled: boolean
      recipients: AdminNotificationWpushRecipient[]
    }
  }
}

export interface AdminNotificationSendResult {
  channel: string
  recipientId: string
  recipientName: string
  recipientKeyMasked: string
  ok: boolean
  status: number
  errorMessage: string
  response: unknown
}

export interface AdminNotificationTestResult {
  enabled: boolean
  channel: string
  successCount: number
  failedCount: number
  skippedCount: number
  results: AdminNotificationSendResult[]
}
