export interface TargetEntry {
  label: string
  notes?: string
}

export interface TargetList {
  id: string
  team_id: string
  created_by?: string
  name: string
  description?: string
  targets: TargetEntry[]
  created_at: string
  updated_at: string
}

export interface TargetListCreate {
  name: string
  description?: string
  targets: TargetEntry[]
}

export interface MaintenanceSchedule {
  id: string
  tree_id: string
  created_by?: string
  cron_expression: string
  timezone: string
  target_list_id?: string
  is_active: boolean
  next_run_at?: string
  last_run_at?: string
  created_at: string
  updated_at: string
}

export interface MaintenanceScheduleCreate {
  tree_id: string
  cron_expression: string
  timezone: string
  target_list_id?: string
}

export interface MaintenanceScheduleUpdate {
  cron_expression?: string
  timezone?: string
  target_list_id?: string
  is_active?: boolean
}

export interface BatchLaunchRequest {
  tree_id: string
  targets: TargetEntry[]
}

export interface BatchLaunchResponse {
  batch_id: string
  count: number
  sessions: Array<{
    id: string
    batch_id: string
    target_label: string
    tree_id: string
  }>
}
