'DB'])); pg_query($db, "SET search_path TO admin,public"); $action = $_GET['action'] ?? 'dashboard'; switch($action) { case 'dashboard': $channels = pg_fetch_all(pg_query($db, "SELECT * FROM youtube_channels ORDER BY monthly_revenue DESC")) ?: []; $videos = pg_fetch_all(pg_query($db, "SELECT v.*, c.channel_name FROM youtube_videos v JOIN youtube_channels c ON v.channel_id=c.id ORDER BY v.published_at DESC LIMIT 20")) ?: []; $totals = pg_fetch_assoc(pg_query($db, "SELECT COUNT(*) as channels, SUM(subscribers) as subs, SUM(total_views) as views, SUM(videos_count) as vids, SUM(monthly_revenue) as rev FROM youtube_channels WHERE status='active'")); $vid_totals = pg_fetch_assoc(pg_query($db, "SELECT COUNT(*) as total, SUM(views) as views, SUM(ad_revenue) as ad_rev, SUM(affiliate_revenue) as aff_rev FROM youtube_videos WHERE status='published'")); echo json_encode(['status'=>'success','channels'=>$channels,'videos'=>$videos,'totals'=>$totals,'video_totals'=>$vid_totals]); break; case 'channel': $id = (int)($_GET['id'] ?? 0); $ch = pg_fetch_assoc(pg_query($db, "SELECT * FROM youtube_channels WHERE id=$id")); $vids = pg_fetch_all(pg_query($db, "SELECT * FROM youtube_videos WHERE channel_id=$id ORDER BY published_at DESC")) ?: []; echo json_encode(['status'=>'success','channel'=>$ch,'videos'=>$vids]); break; case 'create_channel': $data = json_decode(file_get_contents('php://input'), true) ?: $_POST; $name = pg_escape_string($db, $data['channel_name'] ?? 'New Channel'); $niche = pg_escape_string($db, $data['niche'] ?? 'general'); $lang = pg_escape_string($db, $data['language'] ?? 'fr'); $r = pg_query($db, "INSERT INTO youtube_channels (channel_name, niche, language) VALUES ('$name','$niche','$lang') RETURNING id"); echo json_encode(['status'=>'success','id'=>pg_fetch_assoc($r)['id']]); break; case 'create_video': $data = json_decode(file_get_contents('php://input'), true) ?: $_POST; $ch = (int)($data['channel_id'] ?? 1); $title = pg_escape_string($db, $data['title'] ?? 'New Video'); $desc = pg_escape_string($db, $data['description'] ?? ''); $dur = (int)($data['duration_sec'] ?? 300); $r = pg_query($db, "INSERT INTO youtube_videos (channel_id, title, description, duration_sec, status) VALUES ($ch,'$title','$desc',$dur,'draft') RETURNING id"); echo json_encode(['status'=>'success','id'=>pg_fetch_assoc($r)['id']]); break; default: echo json_encode(['error'=>'Unknown action','actions'=>['dashboard','channel','create_channel','create_video']]); }