export type Paginated = { count: number; next: string | null; previous: string | null; results: T[]; }; export type UserStatus = 'active' | 'inactive' | 'superadmin'; export type User = { id: number; user_name: string; status: UserStatus; created_at: string; updated_at: string; }; export type Site = { id: number; site_name: string; user: number; created_at: string; updated_at: string; }; export type FeedInButtonUrl = { label: string; url: string; }; export type Kandang = { id: number; kandang_name: string; feed_in_button_urls: FeedInButtonUrl[]; site: number; created_at: string; updated_at: string; }; export type Flock = { id: number; flock_name: string; kandang: number; created_at: string; updated_at: string; }; export type CycleStatus = 'active' | 'closed'; export type Cycle = { id: number; kandang: number; kandang_name: string; total_days: number; current_day: number; visible_through_date: string; start_date: string; end_date: string; chick_in_weight: number; doc_in_count: number; feed_initial_balance: number; feed_initial_balance_date?: string | null; status: CycleStatus; created_at: string; updated_at: string; }; export type KPI = { id: number; cycle: number; kandang: number; flock_id: number; date: string; age: number; mortality: number; mortality_total: number; feed: number; feed_total: number; harvest: number; harvest_total: number; harvest_weight: number; harvest_weight_total: number; chicken_life: number; chicken_life_percentage: number; iot_weight: number; average_harvest_day: number; average_harvest_weight: number; fcr: number; eef: number; cc: number; cw: number; fs: number; manual: number; created_at: string; updated_at: string; }; export type ManualInput = { id: number; cycle: number; kandang: number; flock_id: number; date: string; age_manual: number; mortality_manual: number; mortality_manual_total: number; feed_in_manual: number; feed_use_manual: number; feed_in_manual_total: number; feed_use_manual_total: number; feed_out_manual: number; feed_out_manual_total: number; harvest_manual: number; harvest_manual_total: number; harvest_weight_manual: number; harvest_weight_manual_total: number; manual_weight: number; average_harvest_day_manual: number; average_harvest_weight_manual: number; fcr_manual: number; eef_manual: number; created_at: string; updated_at: string; }; export type ChickenCounting = { id: number; cycle: number; kandang: number; flock_id: number; date: string; total_count: number; mortality_count: number; created_at: string; updated_at: string; }; export type ChickenWeight = { id: number; cycle: number; kandang: number; flock_id: number; date: string; age: number; doc_weight: number; average_weight: number; chicken_count: number; uniformity: number; average_daily_gain: number; created_at: string; updated_at: string; }; export type LatestAvg = { average_weight: number; date: string; age: number; uniformity: number; average_daily_gain: number; cycle: number; kandang: number; }; export type Karung = { id: number; cycle: number; kandang: number; flock_id: number; date: string; in_today: number; out_today: number; in_total: number; out_total: number; feed_use_today: number; feed_use_total: number; created_at: string; updated_at: string; }; export type PanelIoT = { id: number; flock: number; flock_id: number; kandang: number | null; date: string; timestamp: string | null; wind_speed: number; humidity: number; water_total: number; average_temperature: number; experience_temperature: number; created_at: string; updated_at: string; }; export type AIInsight = { id: number; cycle: number; kandang: number; flock_id: number; date: string; insight_text: string; alert: string; section: string; session: string; created_at: string; updated_at: string; }; export type KarungRequestResult = { karung: Karung; upstream: Record; }; export type CycleFilter = { cycle_id?: number; kandang_id?: number; site_id?: number; flock_id?: number; date?: string; status?: CycleStatus; }; export type SiteWrite = { site_name: string; user: number }; export type KandangWrite = { kandang_name: string; site: number; feed_in_button_urls?: FeedInButtonUrl[]; }; export type FlockWrite = { flock_name: string; kandang: number; }; export type CycleWrite = { kandang: number; total_days: number; current_day?: number; start_date: string; end_date: string; chick_in_weight: number; doc_in_count: number; feed_initial_balance?: number; feed_initial_balance_date?: string | null; status?: CycleStatus; }; export type InitialBalanceResult = { cycle: number; date: string; feed_initial_balance: number; feed_initial_balance_date: string | null; manual: number; manual_total: number; iot: number | null; accuracy: number | null; sync_error: string | null; }; export type CountingWrite = { cycle: number; date: string; total_count?: number; mortality_count?: number; }; export type ManualInputWrite = { cycle: number; date?: string; age_manual?: number; mortality_manual?: number; feed_in_manual?: number; feed_use_manual?: number; feed_out_manual?: number; harvest_manual?: number; harvest_weight_manual?: number; manual_weight?: number; };