Aller au contenu

Catalogue

Rien ici n’exige un compte. Ce qui exige un droit d’accès, c’est la lecture, jamais la consultation. Seuls les produits publiés et vendables sont servis ; un produit en brouillon répond 404.

Les domaines actifs avec leurs sous-thématiques et leurs offres publiées, et les produits mis en avant.

{
"themes": [
{
"id": 1, "slug": "leadership-personnel", "title_ar": "القيادة الشخصية",
"subtitle_ar": null, "description_ar": "…", "color": "#14532d", "position": 1,
"sub_themes": [ { "id": 1, "slug": "motivation-de-soi", "title_ar": "التحفيز الذاتي", "description_ar": null, "position": 1 } ],
"products": [ { "id": 6, "slug": "parcours-leadership-personnel", "kind": "parcours", "title_ar": "…", "is_offer": true, "is_featured": true,
"price": { "amount": 120000, "base": 120000, "promo_active": false, "promo_ends_at": null, "currency": "MAD", "label": "1 200 DH" },
"saving_percent": 20 } ]
}
],
"featured": [ … ]
}

GET /catalogue/themes et GET /catalogue/themes/{slug}

Section intitulée « GET /catalogue/themes et GET /catalogue/themes/{slug} »

La liste des domaines actifs avec leurs sous-thématiques ; ou un domaine avec, en plus, ses offres publiées. Chaque domaine porte image_url (paysage 4:3, null sans image). Un domaine masqué répond 404.

La fiche complète, sous la clé data :

Champ Contenu
identité et prix comme dans les listes, plus description_ar, published_at, total_duration_s
cover la couverture : url (adresse publique, null sans image), ratio (portrait ou landscape) et aspect (2:3 ou 4:3) — le format se déduit du type, même sans image, pour réserver l’espace
contents les segments ordonnés : id, position, title_ar, type, duration_s, preview, locked, stream_url
children la composition, ordonnée
prerequisites ce que l’apprenant doit avoir avant : { "rule": "certified", "product": { … } }
upsell les offres qui contiennent ce produit, de la moins chère à la plus chère
cross_sell même sous-thématique, puis même domaine en repli

Aucune clé de stockage n’apparaît. Chaque segment porte stream_url, l’adresse à appeler pour obtenir un lien signé au moment de lire, et locked, vrai s’il exige un droit d’accès.

{
"data": {
"slug": "programme-motivation-de-soi", "kind": "programme", "title_ar": "برنامج «مفاتيح التحفيز الذاتي»",
"price": { "amount": 30000, "label": "300 DH", "currency": "MAD", "promo_active": false },
"total_duration_s": 4620,
"contents": [
{ "id": 1, "position": 1, "title_ar": "الفهرس والتعريف بمحتوى البرنامج", "type": "audio", "duration_s": 180,
"preview": true, "locked": false, "stream_url": "https://…/api/v1/contents/1/stream" },
{ "id": 3, "position": 3, "title_ar": "مقدمة البرنامج", "type": "audio", "duration_s": 420,
"preview": false, "locked": true, "stream_url": "https://…/api/v1/contents/3/stream" }
],
"children": [], "prerequisites": [],
"upsell": [ { "slug": "parcours-leadership-personnel", … }, { "slug": "pack-demarrage-leadership", … } ],
"cross_sell": [ … ]
}
}