export interface AdminSeasonForm {
  year: number
  name: string
  currentPhase: string
  isCurrent: boolean
  isCommunityOnly: boolean
  nominationStartsAt: string
  nominationEndsAt: string
  votingStartsAt: string
  votingEndsAt: string
  reviewStartsAt: string
  reviewEndsAt: string
  showDate: string
  showStartsAt: string
}

export interface AdminSeasonCreateForm extends AdminSeasonForm {
  copyStructureFromSeasonId: number | null
}

export interface AdminSeasonReadinessItem {
  label: string
  note: string
  complete: boolean
  blocking: boolean
  to: string
}

export interface AdminSeasonGatewayEntryLink {
  label: string
  to: string
}

export interface AdminSeasonGatewayCheckItem {
  label: string
  detail: string
  status: 'ok' | 'warn' | 'block'
  to: string
  entries?: AdminSeasonGatewayEntryLink[]
}

export interface AdminSeasonPhaseGateway {
  action: 'activate' | 'complete'
  phase: string
  title: string
  subtitle: string
  blockers: AdminSeasonGatewayCheckItem[]
  warnings: AdminSeasonGatewayCheckItem[]
  confirmsLabel: string
}

export interface AdminSeasonCopyOption {
  label: string
  value: number | null
}
