/**
 * Program data from API
 */
export interface Program {
  id: string;
  franchisee_id: string | null;
  slug: string;
  title: string;
  header_image: string | null;
  color: string;
  background_color: string;
  button_text: string;
  age_range: string;
  duration: string;
  is_enabled: boolean;
  is_global: boolean;
  order_no: number;
  created_at: string;
  updated_at: string;
  program_icon: string | null;
  language: string;
  is_overridden: boolean;
  parent_programs_id?: string | null;
  created_for?: string | null;
  age_text?: string | null;
  lesson_duration_text?: string | null;
  duration_text?: string | null;
  no_of_lessons?: string | number | null;
  skills_text?: string | null;
  creative_thinking_text?: string | null;
  more_info_text?: string | null;
}

/**
 * API response structure for programs endpoint
 */
export interface ProgramsResponse {
  status: boolean;
  message: string;
  data: Program[];
}

/**
 * Parsed age range
 */
export interface ParsedAgeRange {
  minAge: number;
  maxAge: number;
}

/**
 * Processed program data for component consumption
 */
export interface ProcessedProgram extends Program {
  minAge: number;
  maxAge: number;
}

/**
 * Programs data for ProgramsLazyWrapper
 */
export interface ProgramsData {
  programs: ProcessedProgram[];
}
