Sub Level List
ViewSet for sub-levels.
GET /api/sub-levels/?format=api&page=3
{ "count": 96, "next": "http://roskov.driad.fr/api/sub-levels/?format=api&page=4", "previous": "http://roskov.driad.fr/api/sub-levels/?format=api&page=2", "results": [ { "id": 41, "level": 9, "level_display": "Nourriture", "sub_level": 3, "title": "Vocabulaire des viandes et poissons", "description": "Viandes et poissons", "order": 3, "word_pairs": [ { "id": 609, "french_word": "agneau", "russian_word": "баранина", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Lamb", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.617202Z", "updated_at": "2026-01-17T18:41:50.617226Z", "is_active": true }, { "id": 607, "french_word": "bœuf", "russian_word": "говядина", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Beef", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.604305Z", "updated_at": "2026-01-17T18:41:50.604324Z", "is_active": true }, { "id": 612, "french_word": "crevette", "russian_word": "креветка", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Shrimp", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.636744Z", "updated_at": "2026-01-17T18:41:50.636760Z", "is_active": true }, { "id": 605, "french_word": "poisson", "russian_word": "рыба", "category": "animal", "category_display": "Animal", "level": 2, "level_display": "Nourriture", "comment": "Fish", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" }, { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.593192Z", "updated_at": "2026-01-17T18:41:50.996958Z", "is_active": true }, { "id": 608, "french_word": "porc", "russian_word": "свинина", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Pork", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.609705Z", "updated_at": "2026-01-17T18:41:50.609727Z", "is_active": true }, { "id": 606, "french_word": "poulet", "russian_word": "курица", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Chicken", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.599014Z", "updated_at": "2026-01-17T18:41:50.599032Z", "is_active": true }, { "id": 610, "french_word": "saumon", "russian_word": "лосось", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Salmon", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.624760Z", "updated_at": "2026-01-17T18:41:50.624781Z", "is_active": true }, { "id": 611, "french_word": "thon", "russian_word": "тунец", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Tuna", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.630002Z", "updated_at": "2026-01-17T18:41:50.630022Z", "is_active": true }, { "id": 604, "french_word": "viande", "russian_word": "мясо", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Meat", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.587495Z", "updated_at": "2026-01-17T18:41:50.587516Z", "is_active": true } ], "steps": [ { "id": 160, "sub_level": 41, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des viandes et poissons", "description": "Viandes et poissons\n\nApprenez le vocabulaire de vocabulaire des viandes et poissons en russe.", "is_required": true, "config": { "content": "Viandes et poissons\n\nApprenez le vocabulaire de vocabulaire des viandes et poissons en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:50.812813Z", "updated_at": "2026-01-17T18:41:50.812825Z" }, { "id": 161, "sub_level": 41, "order": 2, "step_type": "game_flashcard", "step_type_display": "Game - Flashcard", "title": "Exercice 1 - Flashcard", "description": "Exercice 1 - Flashcard", "is_required": false, "config": { "game_mode": "flashcard", "instructions": "Pratiquez le vocabulaire de vocabulaire des viandes et poissons avec le mode flashcard.", "min_score": 70, "level": 2, "sub_level": 3 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:50.816665Z", "updated_at": "2026-01-17T18:41:50.816675Z" }, { "id": 162, "sub_level": 41, "order": 3, "step_type": "game_matching", "step_type_display": "Game - Matching", "title": "Exercice 2 - Matching", "description": "Exercice 2 - Matching", "is_required": false, "config": { "game_mode": "matching", "instructions": "Pratiquez le vocabulaire de vocabulaire des viandes et poissons avec le mode matching.", "min_score": 70, "level": 2, "sub_level": 3 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:50.821066Z", "updated_at": "2026-01-17T18:41:50.821079Z" }, { "id": 163, "sub_level": 41, "order": 4, "step_type": "game_multiple_choice", "step_type_display": "Game - Multiple Choice", "title": "Exercice 3 - Multiple Choice", "description": "Exercice 3 - Multiple Choice", "is_required": false, "config": { "game_mode": "multiple_choice", "instructions": "Pratiquez le vocabulaire de vocabulaire des viandes et poissons avec le mode multiple_choice.", "min_score": 70, "level": 2, "sub_level": 3 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:50.824533Z", "updated_at": "2026-01-17T18:41:50.824544Z" } ], "videos": [], "learning_cards": [ { "id": 160, "sub_level": 41, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des viandes et poissons", "description": "Viandes et poissons\n\nApprenez le vocabulaire de vocabulaire des viandes et poissons en russe.", "is_required": true, "config": { "content": "Viandes et poissons\n\nApprenez le vocabulaire de vocabulaire des viandes et poissons en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:50.812813Z", "updated_at": "2026-01-17T18:41:50.812825Z" } ], "exercises": [], "total_words": 9, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 9, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:50.804455Z", "updated_at": "2026-01-17T18:41:50.804468Z" }, { "id": 42, "level": 9, "level_display": "Nourriture", "sub_level": 4, "title": "Vocabulaire des plats préparés et boissons", "description": "Plats et boissons", "order": 4, "word_pairs": [ { "id": 630, "french_word": "biscuit", "russian_word": "печенье", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Cookie", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.734239Z", "updated_at": "2026-01-17T18:41:50.734252Z", "is_active": true }, { "id": 621, "french_word": "bière", "russian_word": "пиво", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Beer", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.685744Z", "updated_at": "2026-01-17T18:41:50.685787Z", "is_active": true }, { "id": 629, "french_word": "bonbon", "russian_word": "конфета", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Candy", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.729359Z", "updated_at": "2026-01-17T18:41:50.729372Z", "is_active": true }, { "id": 618, "french_word": "café", "russian_word": "кофе", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Coffee", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.667363Z", "updated_at": "2026-01-17T18:41:50.667374Z", "is_active": true }, { "id": 617, "french_word": "chocolat", "russian_word": "шоколад", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Chocolate", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.662334Z", "updated_at": "2026-01-17T18:41:50.662345Z", "is_active": true }, { "id": 625, "french_word": "dessert", "russian_word": "десерт", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Dessert", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.709527Z", "updated_at": "2026-01-17T18:41:50.709539Z", "is_active": true }, { "id": 632, "french_word": "déjeuner", "russian_word": "обед", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Lunch", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.744309Z", "updated_at": "2026-01-17T18:41:50.744325Z", "is_active": true }, { "id": 633, "french_word": "dîner", "russian_word": "ужин", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Dinner", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.749549Z", "updated_at": "2026-01-17T18:41:50.749564Z", "is_active": true }, { "id": 624, "french_word": "eau minérale", "russian_word": "минеральная вода", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Mineral water", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.704587Z", "updated_at": "2026-01-17T18:41:50.704605Z", "is_active": true }, { "id": 628, "french_word": "glace", "russian_word": "мороженое", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Ice cream", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.724394Z", "updated_at": "2026-01-17T18:41:50.724408Z", "is_active": true }, { "id": 634, "french_word": "goûter", "russian_word": "полдник", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Snack", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.754522Z", "updated_at": "2026-01-17T18:41:50.754538Z", "is_active": true }, { "id": 626, "french_word": "gâteau", "russian_word": "торт", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Cake", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.714501Z", "updated_at": "2026-01-17T18:41:50.714518Z", "is_active": true }, { "id": 622, "french_word": "jus", "russian_word": "сок", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Juice", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.692483Z", "updated_at": "2026-01-17T18:41:50.692517Z", "is_active": true }, { "id": 623, "french_word": "limonade", "russian_word": "лимонад", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Lemonade", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.698983Z", "updated_at": "2026-01-17T18:41:50.699013Z", "is_active": true }, { "id": 558, "french_word": "nourriture", "russian_word": "еда", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Food", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.326534Z", "updated_at": "2026-01-17T18:41:50.326558Z", "is_active": true }, { "id": 631, "french_word": "petit-déjeuner", "russian_word": "завтрак", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Breakfast", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.739301Z", "updated_at": "2026-01-17T18:41:50.739317Z", "is_active": true }, { "id": 560, "french_word": "plat", "russian_word": "блюдо", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Dish", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.339808Z", "updated_at": "2026-01-17T18:41:50.339835Z", "is_active": true }, { "id": 559, "french_word": "repas", "russian_word": "еда", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Meal", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.333190Z", "updated_at": "2026-01-17T18:41:50.333217Z", "is_active": true }, { "id": 616, "french_word": "salade", "russian_word": "салат", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Salad", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.657304Z", "updated_at": "2026-01-17T18:41:50.657321Z", "is_active": true }, { "id": 615, "french_word": "soupe", "russian_word": "суп", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Soup", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.652211Z", "updated_at": "2026-01-17T18:41:50.652225Z", "is_active": true }, { "id": 627, "french_word": "tarte", "russian_word": "пирог", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Pie", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.719489Z", "updated_at": "2026-01-17T18:41:50.719503Z", "is_active": true }, { "id": 619, "french_word": "thé", "russian_word": "чай", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Tea", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.672973Z", "updated_at": "2026-01-17T18:41:50.673000Z", "is_active": true }, { "id": 620, "french_word": "vin", "russian_word": "вино", "category": "food", "category_display": "Food", "level": 2, "level_display": "Nourriture", "comment": "Wine", "tags": [ { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.678940Z", "updated_at": "2026-01-17T18:41:50.678977Z", "is_active": true } ], "steps": [ { "id": 164, "sub_level": 42, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des plats préparés et boissons", "description": "Plats et boissons\n\nApprenez le vocabulaire de vocabulaire des plats préparés et boissons en russe.", "is_required": true, "config": { "content": "Plats et boissons\n\nApprenez le vocabulaire de vocabulaire des plats préparés et boissons en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:50.836645Z", "updated_at": "2026-01-17T18:41:50.836658Z" }, { "id": 165, "sub_level": 42, "order": 2, "step_type": "game_flashcard", "step_type_display": "Game - Flashcard", "title": "Exercice 1 - Flashcard", "description": "Exercice 1 - Flashcard", "is_required": false, "config": { "game_mode": "flashcard", "instructions": "Pratiquez le vocabulaire de vocabulaire des plats préparés et boissons avec le mode flashcard.", "min_score": 70, "level": 2, "sub_level": 4 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:50.840189Z", "updated_at": "2026-01-17T18:41:50.840201Z" }, { "id": 166, "sub_level": 42, "order": 3, "step_type": "game_matching", "step_type_display": "Game - Matching", "title": "Exercice 2 - Matching", "description": "Exercice 2 - Matching", "is_required": false, "config": { "game_mode": "matching", "instructions": "Pratiquez le vocabulaire de vocabulaire des plats préparés et boissons avec le mode matching.", "min_score": 70, "level": 2, "sub_level": 4 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:50.843383Z", "updated_at": "2026-01-17T18:41:50.843394Z" }, { "id": 167, "sub_level": 42, "order": 4, "step_type": "game_multiple_choice", "step_type_display": "Game - Multiple Choice", "title": "Exercice 3 - Multiple Choice", "description": "Exercice 3 - Multiple Choice", "is_required": false, "config": { "game_mode": "multiple_choice", "instructions": "Pratiquez le vocabulaire de vocabulaire des plats préparés et boissons avec le mode multiple_choice.", "min_score": 70, "level": 2, "sub_level": 4 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:50.846569Z", "updated_at": "2026-01-17T18:41:50.846580Z" } ], "videos": [], "learning_cards": [ { "id": 164, "sub_level": 42, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des plats préparés et boissons", "description": "Plats et boissons\n\nApprenez le vocabulaire de vocabulaire des plats préparés et boissons en russe.", "is_required": true, "config": { "content": "Plats et boissons\n\nApprenez le vocabulaire de vocabulaire des plats préparés et boissons en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:50.836645Z", "updated_at": "2026-01-17T18:41:50.836658Z" } ], "exercises": [], "total_words": 23, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 23, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:50.827192Z", "updated_at": "2026-01-17T18:41:50.827203Z" }, { "id": 43, "level": 10, "level_display": "Animaux", "sub_level": 1, "title": "Vocabulaire des animaux domestiques", "description": "Animaux domestiques", "order": 1, "word_pairs": [ { "id": 640, "french_word": "canari", "russian_word": "канарейка", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Canary", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:50.887670Z", "updated_at": "2026-01-17T18:41:50.887683Z", "is_active": true }, { "id": 441, "french_word": "chat", "russian_word": "кот", "category": "animal", "category_display": "Animal", "level": 7, "level_display": "Declensions & Cases", "comment": "Cat", "tags": [ { "id": 7, "name": "nominative", "category": "case", "category_display": "Case (Declension)", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.144909Z", "updated_at": "2026-01-17T18:41:46.144920Z" }, { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" }, { "id": 5, "name": "singular", "category": "number", "category_display": "Number", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.139686Z", "updated_at": "2026-01-17T18:41:46.139698Z" } ], "created_at": "2026-01-17T18:41:48.751457Z", "updated_at": "2026-01-17T18:41:50.861009Z", "is_active": true }, { "id": 635, "french_word": "chien", "russian_word": "собака", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Dog", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:50.855594Z", "updated_at": "2026-01-17T18:41:50.855605Z", "is_active": true }, { "id": 637, "french_word": "cochon d'Inde", "russian_word": "морская свинка", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Guinea pig", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:50.871715Z", "updated_at": "2026-01-17T18:41:50.871729Z", "is_active": true }, { "id": 636, "french_word": "hamster", "russian_word": "хомяк", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Hamster", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:50.866334Z", "updated_at": "2026-01-17T18:41:50.866344Z", "is_active": true }, { "id": 646, "french_word": "lapin", "russian_word": "кролик", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Rabbit", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:50.919419Z", "updated_at": "2026-01-17T18:41:50.919443Z", "is_active": true }, { "id": 639, "french_word": "perroquet", "russian_word": "попугай", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Parrot", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:50.882188Z", "updated_at": "2026-01-17T18:41:50.882199Z", "is_active": true }, { "id": 638, "french_word": "souris", "russian_word": "мышь", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Mouse", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:50.876966Z", "updated_at": "2026-01-17T18:41:50.876978Z", "is_active": true } ], "steps": [ { "id": 168, "sub_level": 43, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des animaux domestiques", "description": "Animaux domestiques\n\nApprenez le vocabulaire de vocabulaire des animaux domestiques en russe.", "is_required": true, "config": { "content": "Animaux domestiques\n\nApprenez le vocabulaire de vocabulaire des animaux domestiques en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.218941Z", "updated_at": "2026-01-17T18:41:51.218955Z" }, { "id": 169, "sub_level": 43, "order": 2, "step_type": "game_flashcard", "step_type_display": "Game - Flashcard", "title": "Exercice 1 - Flashcard", "description": "Exercice 1 - Flashcard", "is_required": false, "config": { "game_mode": "flashcard", "instructions": "Pratiquez le vocabulaire de vocabulaire des animaux domestiques avec le mode flashcard.", "min_score": 70, "level": 3, "sub_level": 1 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.222590Z", "updated_at": "2026-01-17T18:41:51.222603Z" }, { "id": 170, "sub_level": 43, "order": 3, "step_type": "game_matching", "step_type_display": "Game - Matching", "title": "Exercice 2 - Matching", "description": "Exercice 2 - Matching", "is_required": false, "config": { "game_mode": "matching", "instructions": "Pratiquez le vocabulaire de vocabulaire des animaux domestiques avec le mode matching.", "min_score": 70, "level": 3, "sub_level": 1 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.225753Z", "updated_at": "2026-01-17T18:41:51.225765Z" }, { "id": 171, "sub_level": 43, "order": 4, "step_type": "game_multiple_choice", "step_type_display": "Game - Multiple Choice", "title": "Exercice 3 - Multiple Choice", "description": "Exercice 3 - Multiple Choice", "is_required": false, "config": { "game_mode": "multiple_choice", "instructions": "Pratiquez le vocabulaire de vocabulaire des animaux domestiques avec le mode multiple_choice.", "min_score": 70, "level": 3, "sub_level": 1 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.229664Z", "updated_at": "2026-01-17T18:41:51.229677Z" } ], "videos": [], "learning_cards": [ { "id": 168, "sub_level": 43, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des animaux domestiques", "description": "Animaux domestiques\n\nApprenez le vocabulaire de vocabulaire des animaux domestiques en russe.", "is_required": true, "config": { "content": "Animaux domestiques\n\nApprenez le vocabulaire de vocabulaire des animaux domestiques en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.218941Z", "updated_at": "2026-01-17T18:41:51.218955Z" } ], "exercises": [], "total_words": 8, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 8, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:51.211176Z", "updated_at": "2026-01-17T18:41:51.211190Z" }, { "id": 44, "level": 10, "level_display": "Animaux", "sub_level": 2, "title": "Vocabulaire des animaux de la ferme", "description": "Animaux de la ferme", "order": 2, "word_pairs": [ { "id": 642, "french_word": "cheval", "russian_word": "лошадь", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Horse", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:50.899823Z", "updated_at": "2026-01-17T18:41:50.899839Z", "is_active": true }, { "id": 645, "french_word": "cochon", "russian_word": "свинья", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Pig", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:50.914584Z", "updated_at": "2026-01-17T18:41:50.914596Z", "is_active": true }, { "id": 644, "french_word": "mouton", "russian_word": "овца", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Sheep", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:50.909751Z", "updated_at": "2026-01-17T18:41:50.909762Z", "is_active": true }, { "id": 643, "french_word": "vache", "russian_word": "корова", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Cow", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:50.904887Z", "updated_at": "2026-01-17T18:41:50.904901Z", "is_active": true } ], "steps": [ { "id": 172, "sub_level": 44, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des animaux de la ferme", "description": "Animaux de la ferme\n\nApprenez le vocabulaire de vocabulaire des animaux de la ferme en russe.", "is_required": true, "config": { "content": "Animaux de la ferme\n\nApprenez le vocabulaire de vocabulaire des animaux de la ferme en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.240070Z", "updated_at": "2026-01-17T18:41:51.240081Z" }, { "id": 173, "sub_level": 44, "order": 2, "step_type": "game_flashcard", "step_type_display": "Game - Flashcard", "title": "Exercice 1 - Flashcard", "description": "Exercice 1 - Flashcard", "is_required": false, "config": { "game_mode": "flashcard", "instructions": "Pratiquez le vocabulaire de vocabulaire des animaux de la ferme avec le mode flashcard.", "min_score": 70, "level": 3, "sub_level": 2 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.243696Z", "updated_at": "2026-01-17T18:41:51.243707Z" }, { "id": 174, "sub_level": 44, "order": 3, "step_type": "game_matching", "step_type_display": "Game - Matching", "title": "Exercice 2 - Matching", "description": "Exercice 2 - Matching", "is_required": false, "config": { "game_mode": "matching", "instructions": "Pratiquez le vocabulaire de vocabulaire des animaux de la ferme avec le mode matching.", "min_score": 70, "level": 3, "sub_level": 2 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.247510Z", "updated_at": "2026-01-17T18:41:51.247521Z" }, { "id": 175, "sub_level": 44, "order": 4, "step_type": "game_multiple_choice", "step_type_display": "Game - Multiple Choice", "title": "Exercice 3 - Multiple Choice", "description": "Exercice 3 - Multiple Choice", "is_required": false, "config": { "game_mode": "multiple_choice", "instructions": "Pratiquez le vocabulaire de vocabulaire des animaux de la ferme avec le mode multiple_choice.", "min_score": 70, "level": 3, "sub_level": 2 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.250874Z", "updated_at": "2026-01-17T18:41:51.250884Z" } ], "videos": [], "learning_cards": [ { "id": 172, "sub_level": 44, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des animaux de la ferme", "description": "Animaux de la ferme\n\nApprenez le vocabulaire de vocabulaire des animaux de la ferme en russe.", "is_required": true, "config": { "content": "Animaux de la ferme\n\nApprenez le vocabulaire de vocabulaire des animaux de la ferme en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.240070Z", "updated_at": "2026-01-17T18:41:51.240081Z" } ], "exercises": [], "total_words": 4, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 4, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:51.232446Z", "updated_at": "2026-01-17T18:41:51.232462Z" }, { "id": 45, "level": 10, "level_display": "Animaux", "sub_level": 3, "title": "Vocabulaire des animaux sauvages de la forêt", "description": "Animaux sauvages - forêt", "order": 3, "word_pairs": [ { "id": 650, "french_word": "lion", "russian_word": "лев", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Lion", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:50.939231Z", "updated_at": "2026-01-17T18:41:50.939250Z", "is_active": true }, { "id": 647, "french_word": "loup", "russian_word": "волк", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Wolf", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:50.924469Z", "updated_at": "2026-01-17T18:41:50.924480Z", "is_active": true }, { "id": 648, "french_word": "ours", "russian_word": "медведь", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Bear", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:50.929302Z", "updated_at": "2026-01-17T18:41:50.929313Z", "is_active": true }, { "id": 652, "french_word": "singe", "russian_word": "обезьяна", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Monkey", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:50.949266Z", "updated_at": "2026-01-17T18:41:50.949282Z", "is_active": true }, { "id": 649, "french_word": "tigre", "russian_word": "тигр", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Tiger", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:50.934084Z", "updated_at": "2026-01-17T18:41:50.934095Z", "is_active": true }, { "id": 651, "french_word": "éléphant", "russian_word": "слон", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Elephant", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:50.944272Z", "updated_at": "2026-01-17T18:41:50.944287Z", "is_active": true } ], "steps": [ { "id": 176, "sub_level": 45, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des animaux sauvages de la forêt", "description": "Animaux sauvages - forêt\n\nApprenez le vocabulaire de vocabulaire des animaux sauvages de la forêt en russe.", "is_required": true, "config": { "content": "Animaux sauvages - forêt\n\nApprenez le vocabulaire de vocabulaire des animaux sauvages de la forêt en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.261260Z", "updated_at": "2026-01-17T18:41:51.261271Z" }, { "id": 177, "sub_level": 45, "order": 2, "step_type": "game_flashcard", "step_type_display": "Game - Flashcard", "title": "Exercice 1 - Flashcard", "description": "Exercice 1 - Flashcard", "is_required": false, "config": { "game_mode": "flashcard", "instructions": "Pratiquez le vocabulaire de vocabulaire des animaux sauvages de la forêt avec le mode flashcard.", "min_score": 70, "level": 3, "sub_level": 3 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.264828Z", "updated_at": "2026-01-17T18:41:51.264838Z" }, { "id": 178, "sub_level": 45, "order": 3, "step_type": "game_matching", "step_type_display": "Game - Matching", "title": "Exercice 2 - Matching", "description": "Exercice 2 - Matching", "is_required": false, "config": { "game_mode": "matching", "instructions": "Pratiquez le vocabulaire de vocabulaire des animaux sauvages de la forêt avec le mode matching.", "min_score": 70, "level": 3, "sub_level": 3 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.268050Z", "updated_at": "2026-01-17T18:41:51.268060Z" }, { "id": 179, "sub_level": 45, "order": 4, "step_type": "game_multiple_choice", "step_type_display": "Game - Multiple Choice", "title": "Exercice 3 - Multiple Choice", "description": "Exercice 3 - Multiple Choice", "is_required": false, "config": { "game_mode": "multiple_choice", "instructions": "Pratiquez le vocabulaire de vocabulaire des animaux sauvages de la forêt avec le mode multiple_choice.", "min_score": 70, "level": 3, "sub_level": 3 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.271301Z", "updated_at": "2026-01-17T18:41:51.271315Z" } ], "videos": [], "learning_cards": [ { "id": 176, "sub_level": 45, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des animaux sauvages de la forêt", "description": "Animaux sauvages - forêt\n\nApprenez le vocabulaire de vocabulaire des animaux sauvages de la forêt en russe.", "is_required": true, "config": { "content": "Animaux sauvages - forêt\n\nApprenez le vocabulaire de vocabulaire des animaux sauvages de la forêt en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.261260Z", "updated_at": "2026-01-17T18:41:51.261271Z" } ], "exercises": [], "total_words": 6, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 6, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:51.253563Z", "updated_at": "2026-01-17T18:41:51.253580Z" }, { "id": 46, "level": 10, "level_display": "Animaux", "sub_level": 4, "title": "Vocabulaire des animaux de la savane", "description": "Animaux sauvages - savane", "order": 4, "word_pairs": [ { "id": 658, "french_word": "antilope", "russian_word": "антилопа", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Antelope", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:50.980381Z", "updated_at": "2026-01-17T18:41:50.980397Z", "is_active": true }, { "id": 657, "french_word": "gazelle", "russian_word": "газель", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Gazelle", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:50.975110Z", "updated_at": "2026-01-17T18:41:50.975127Z", "is_active": true }, { "id": 654, "french_word": "girafe", "russian_word": "жираф", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Giraffe", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:50.959252Z", "updated_at": "2026-01-17T18:41:50.959267Z", "is_active": true }, { "id": 659, "french_word": "guépard", "russian_word": "гепард", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Cheetah", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:50.985740Z", "updated_at": "2026-01-17T18:41:50.985753Z", "is_active": true }, { "id": 655, "french_word": "hippopotame", "russian_word": "бегемот", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Hippopotamus", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:50.964164Z", "updated_at": "2026-01-17T18:41:50.964180Z", "is_active": true }, { "id": 660, "french_word": "hyène", "russian_word": "гиена", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Hyena", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:50.990981Z", "updated_at": "2026-01-17T18:41:50.990992Z", "is_active": true }, { "id": 656, "french_word": "rhinocéros", "russian_word": "носорог", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Rhinoceros", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:50.969384Z", "updated_at": "2026-01-17T18:41:50.969400Z", "is_active": true }, { "id": 653, "french_word": "zèbre", "russian_word": "зебра", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Zebra", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:50.954249Z", "updated_at": "2026-01-17T18:41:50.954265Z", "is_active": true } ], "steps": [ { "id": 180, "sub_level": 46, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des animaux de la savane", "description": "Animaux sauvages - savane\n\nApprenez le vocabulaire de vocabulaire des animaux de la savane en russe.", "is_required": true, "config": { "content": "Animaux sauvages - savane\n\nApprenez le vocabulaire de vocabulaire des animaux de la savane en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.281760Z", "updated_at": "2026-01-17T18:41:51.281771Z" }, { "id": 181, "sub_level": 46, "order": 2, "step_type": "game_flashcard", "step_type_display": "Game - Flashcard", "title": "Exercice 1 - Flashcard", "description": "Exercice 1 - Flashcard", "is_required": false, "config": { "game_mode": "flashcard", "instructions": "Pratiquez le vocabulaire de vocabulaire des animaux de la savane avec le mode flashcard.", "min_score": 70, "level": 3, "sub_level": 4 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.285228Z", "updated_at": "2026-01-17T18:41:51.285239Z" }, { "id": 182, "sub_level": 46, "order": 3, "step_type": "game_matching", "step_type_display": "Game - Matching", "title": "Exercice 2 - Matching", "description": "Exercice 2 - Matching", "is_required": false, "config": { "game_mode": "matching", "instructions": "Pratiquez le vocabulaire de vocabulaire des animaux de la savane avec le mode matching.", "min_score": 70, "level": 3, "sub_level": 4 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.288612Z", "updated_at": "2026-01-17T18:41:51.288630Z" }, { "id": 183, "sub_level": 46, "order": 4, "step_type": "game_multiple_choice", "step_type_display": "Game - Multiple Choice", "title": "Exercice 3 - Multiple Choice", "description": "Exercice 3 - Multiple Choice", "is_required": false, "config": { "game_mode": "multiple_choice", "instructions": "Pratiquez le vocabulaire de vocabulaire des animaux de la savane avec le mode multiple_choice.", "min_score": 70, "level": 3, "sub_level": 4 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.291963Z", "updated_at": "2026-01-17T18:41:51.291974Z" } ], "videos": [], "learning_cards": [ { "id": 180, "sub_level": 46, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des animaux de la savane", "description": "Animaux sauvages - savane\n\nApprenez le vocabulaire de vocabulaire des animaux de la savane en russe.", "is_required": true, "config": { "content": "Animaux sauvages - savane\n\nApprenez le vocabulaire de vocabulaire des animaux de la savane en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.281760Z", "updated_at": "2026-01-17T18:41:51.281771Z" } ], "exercises": [], "total_words": 8, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 8, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:51.274045Z", "updated_at": "2026-01-17T18:41:51.274058Z" }, { "id": 47, "level": 10, "level_display": "Animaux", "sub_level": 5, "title": "Vocabulaire des oiseaux", "description": "Oiseaux", "order": 5, "word_pairs": [ { "id": 688, "french_word": "albatros", "russian_word": "альбатрос", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Albatross", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.136177Z", "updated_at": "2026-01-17T18:41:51.136193Z", "is_active": true }, { "id": 682, "french_word": "autruche", "russian_word": "страус", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Ostrich", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.105271Z", "updated_at": "2026-01-17T18:41:51.105281Z", "is_active": true }, { "id": 685, "french_word": "cigogne", "russian_word": "аист", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Stork", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.120376Z", "updated_at": "2026-01-17T18:41:51.120393Z", "is_active": true }, { "id": 671, "french_word": "corbeau", "russian_word": "ворон", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Raven", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.051807Z", "updated_at": "2026-01-17T18:41:51.051819Z", "is_active": true }, { "id": 672, "french_word": "corneille", "russian_word": "ворона", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Crow", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.056453Z", "updated_at": "2026-01-17T18:41:51.056464Z", "is_active": true }, { "id": 679, "french_word": "cygne", "russian_word": "лебедь", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Swan", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.090149Z", "updated_at": "2026-01-17T18:41:51.090161Z", "is_active": true }, { "id": 684, "french_word": "faisan", "russian_word": "фазан", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Pheasant", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.115199Z", "updated_at": "2026-01-17T18:41:51.115209Z", "is_active": true }, { "id": 680, "french_word": "flamant rose", "russian_word": "фламинго", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Flamingo", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.095031Z", "updated_at": "2026-01-17T18:41:51.095044Z", "is_active": true }, { "id": 670, "french_word": "hibou", "russian_word": "сова", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Owl", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.047168Z", "updated_at": "2026-01-17T18:41:51.047179Z", "is_active": true }, { "id": 675, "french_word": "hirondelle", "russian_word": "ласточка", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Swallow", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.070783Z", "updated_at": "2026-01-17T18:41:51.070793Z", "is_active": true }, { "id": 686, "french_word": "héron", "russian_word": "цапля", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Heron", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.125573Z", "updated_at": "2026-01-17T18:41:51.125590Z", "is_active": true }, { "id": 677, "french_word": "merle", "russian_word": "дрозд", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Blackbird", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.080302Z", "updated_at": "2026-01-17T18:41:51.080312Z", "is_active": true }, { "id": 674, "french_word": "moineau", "russian_word": "воробей", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Sparrow", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.066074Z", "updated_at": "2026-01-17T18:41:51.066087Z", "is_active": true }, { "id": 687, "french_word": "mouette", "russian_word": "чайка", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Seagull", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.130887Z", "updated_at": "2026-01-17T18:41:51.130904Z", "is_active": true }, { "id": 641, "french_word": "oiseau", "russian_word": "птица", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Bird", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:50.894952Z", "updated_at": "2026-01-17T18:41:50.894971Z", "is_active": true }, { "id": 683, "french_word": "paon", "russian_word": "павлин", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Peacock", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.110273Z", "updated_at": "2026-01-17T18:41:51.110283Z", "is_active": true }, { "id": 673, "french_word": "pie", "russian_word": "сорока", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Magpie", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.061190Z", "updated_at": "2026-01-17T18:41:51.061200Z", "is_active": true }, { "id": 678, "french_word": "pigeon", "russian_word": "голубь", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Pigeon", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.085298Z", "updated_at": "2026-01-17T18:41:51.085308Z", "is_active": true }, { "id": 681, "french_word": "pingouin", "russian_word": "пингвин", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Penguin", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.100374Z", "updated_at": "2026-01-17T18:41:51.100384Z", "is_active": true }, { "id": 676, "french_word": "rouge-gorge", "russian_word": "малиновка", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Robin", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.075480Z", "updated_at": "2026-01-17T18:41:51.075495Z", "is_active": true } ], "steps": [ { "id": 184, "sub_level": 47, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des oiseaux", "description": "Oiseaux\n\nApprenez le vocabulaire de vocabulaire des oiseaux en russe.", "is_required": true, "config": { "content": "Oiseaux\n\nApprenez le vocabulaire de vocabulaire des oiseaux en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.302951Z", "updated_at": "2026-01-17T18:41:51.302962Z" }, { "id": 185, "sub_level": 47, "order": 2, "step_type": "game_flashcard", "step_type_display": "Game - Flashcard", "title": "Exercice 1 - Flashcard", "description": "Exercice 1 - Flashcard", "is_required": false, "config": { "game_mode": "flashcard", "instructions": "Pratiquez le vocabulaire de vocabulaire des oiseaux avec le mode flashcard.", "min_score": 70, "level": 3, "sub_level": 5 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.306444Z", "updated_at": "2026-01-17T18:41:51.306455Z" }, { "id": 186, "sub_level": 47, "order": 3, "step_type": "game_matching", "step_type_display": "Game - Matching", "title": "Exercice 2 - Matching", "description": "Exercice 2 - Matching", "is_required": false, "config": { "game_mode": "matching", "instructions": "Pratiquez le vocabulaire de vocabulaire des oiseaux avec le mode matching.", "min_score": 70, "level": 3, "sub_level": 5 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.310037Z", "updated_at": "2026-01-17T18:41:51.310047Z" }, { "id": 187, "sub_level": 47, "order": 4, "step_type": "game_multiple_choice", "step_type_display": "Game - Multiple Choice", "title": "Exercice 3 - Multiple Choice", "description": "Exercice 3 - Multiple Choice", "is_required": false, "config": { "game_mode": "multiple_choice", "instructions": "Pratiquez le vocabulaire de vocabulaire des oiseaux avec le mode multiple_choice.", "min_score": 70, "level": 3, "sub_level": 5 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.313059Z", "updated_at": "2026-01-17T18:41:51.313069Z" } ], "videos": [], "learning_cards": [ { "id": 184, "sub_level": 47, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des oiseaux", "description": "Oiseaux\n\nApprenez le vocabulaire de vocabulaire des oiseaux en russe.", "is_required": true, "config": { "content": "Oiseaux\n\nApprenez le vocabulaire de vocabulaire des oiseaux en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.302951Z", "updated_at": "2026-01-17T18:41:51.302962Z" } ], "exercises": [], "total_words": 20, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 20, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:51.294593Z", "updated_at": "2026-01-17T18:41:51.294608Z" }, { "id": 48, "level": 10, "level_display": "Animaux", "sub_level": 6, "title": "Vocabulaire des animaux aquatiques", "description": "Animaux aquatiques", "order": 6, "word_pairs": [ { "id": 662, "french_word": "baleine", "russian_word": "кит", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Whale", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.007352Z", "updated_at": "2026-01-17T18:41:51.007365Z", "is_active": true }, { "id": 668, "french_word": "crabe", "russian_word": "краб", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Crab", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.037634Z", "updated_at": "2026-01-17T18:41:51.037648Z", "is_active": true }, { "id": 663, "french_word": "dauphin", "russian_word": "дельфин", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Dolphin", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.012448Z", "updated_at": "2026-01-17T18:41:51.012459Z", "is_active": true }, { "id": 669, "french_word": "homard", "russian_word": "омар", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Lobster", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.042465Z", "updated_at": "2026-01-17T18:41:51.042476Z", "is_active": true }, { "id": 667, "french_word": "méduse", "russian_word": "медуза", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Jellyfish", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.033021Z", "updated_at": "2026-01-17T18:41:51.033034Z", "is_active": true }, { "id": 665, "french_word": "otarie", "russian_word": "морской лев", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Sea lion", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.022585Z", "updated_at": "2026-01-17T18:41:51.022595Z", "is_active": true }, { "id": 664, "french_word": "phoque", "russian_word": "тюлень", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Seal", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.017462Z", "updated_at": "2026-01-17T18:41:51.017473Z", "is_active": true }, { "id": 666, "french_word": "pieuvre", "russian_word": "осьминог", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Octopus", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.027639Z", "updated_at": "2026-01-17T18:41:51.027649Z", "is_active": true }, { "id": 605, "french_word": "poisson", "russian_word": "рыба", "category": "animal", "category_display": "Animal", "level": 2, "level_display": "Nourriture", "comment": "Fish", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" }, { "id": 18, "name": "food", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.323097Z", "updated_at": "2026-01-17T18:41:50.323114Z" } ], "created_at": "2026-01-17T18:41:50.593192Z", "updated_at": "2026-01-17T18:41:50.996958Z", "is_active": true }, { "id": 661, "french_word": "requin", "russian_word": "акула", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Shark", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.002191Z", "updated_at": "2026-01-17T18:41:51.002205Z", "is_active": true } ], "steps": [ { "id": 188, "sub_level": 48, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des animaux aquatiques", "description": "Animaux aquatiques\n\nApprenez le vocabulaire de vocabulaire des animaux aquatiques en russe.", "is_required": true, "config": { "content": "Animaux aquatiques\n\nApprenez le vocabulaire de vocabulaire des animaux aquatiques en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.323141Z", "updated_at": "2026-01-17T18:41:51.323152Z" }, { "id": 189, "sub_level": 48, "order": 2, "step_type": "game_flashcard", "step_type_display": "Game - Flashcard", "title": "Exercice 1 - Flashcard", "description": "Exercice 1 - Flashcard", "is_required": false, "config": { "game_mode": "flashcard", "instructions": "Pratiquez le vocabulaire de vocabulaire des animaux aquatiques avec le mode flashcard.", "min_score": 70, "level": 3, "sub_level": 6 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.326493Z", "updated_at": "2026-01-17T18:41:51.326503Z" }, { "id": 190, "sub_level": 48, "order": 3, "step_type": "game_matching", "step_type_display": "Game - Matching", "title": "Exercice 2 - Matching", "description": "Exercice 2 - Matching", "is_required": false, "config": { "game_mode": "matching", "instructions": "Pratiquez le vocabulaire de vocabulaire des animaux aquatiques avec le mode matching.", "min_score": 70, "level": 3, "sub_level": 6 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.329663Z", "updated_at": "2026-01-17T18:41:51.329673Z" }, { "id": 191, "sub_level": 48, "order": 4, "step_type": "game_multiple_choice", "step_type_display": "Game - Multiple Choice", "title": "Exercice 3 - Multiple Choice", "description": "Exercice 3 - Multiple Choice", "is_required": false, "config": { "game_mode": "multiple_choice", "instructions": "Pratiquez le vocabulaire de vocabulaire des animaux aquatiques avec le mode multiple_choice.", "min_score": 70, "level": 3, "sub_level": 6 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.332819Z", "updated_at": "2026-01-17T18:41:51.332829Z" } ], "videos": [], "learning_cards": [ { "id": 188, "sub_level": 48, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des animaux aquatiques", "description": "Animaux aquatiques\n\nApprenez le vocabulaire de vocabulaire des animaux aquatiques en russe.", "is_required": true, "config": { "content": "Animaux aquatiques\n\nApprenez le vocabulaire de vocabulaire des animaux aquatiques en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.323141Z", "updated_at": "2026-01-17T18:41:51.323152Z" } ], "exercises": [], "total_words": 10, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 10, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:51.315604Z", "updated_at": "2026-01-17T18:41:51.315614Z" }, { "id": 49, "level": 10, "level_display": "Animaux", "sub_level": 7, "title": "Vocabulaire des reptiles et amphibiens", "description": "Reptiles et amphibiens", "order": 7, "word_pairs": [ { "id": 698, "french_word": "alligator", "russian_word": "аллигатор", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Alligator", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.190442Z", "updated_at": "2026-01-17T18:41:51.190458Z", "is_active": true }, { "id": 696, "french_word": "caméléon", "russian_word": "хамелеон", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Chameleon", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.179447Z", "updated_at": "2026-01-17T18:41:51.179462Z", "is_active": true }, { "id": 690, "french_word": "cobra", "russian_word": "кобра", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Cobra", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.146915Z", "updated_at": "2026-01-17T18:41:51.146931Z", "is_active": true }, { "id": 701, "french_word": "crapaud", "russian_word": "жаба", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Toad", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.205517Z", "updated_at": "2026-01-17T18:41:51.205533Z", "is_active": true }, { "id": 697, "french_word": "crocodile", "russian_word": "крокодил", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Crocodile", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.184939Z", "updated_at": "2026-01-17T18:41:51.184952Z", "is_active": true }, { "id": 694, "french_word": "gecko", "russian_word": "геккон", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Gecko", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.168374Z", "updated_at": "2026-01-17T18:41:51.168390Z", "is_active": true }, { "id": 700, "french_word": "grenouille", "russian_word": "лягушка", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Frog", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.200664Z", "updated_at": "2026-01-17T18:41:51.200676Z", "is_active": true }, { "id": 695, "french_word": "iguane", "russian_word": "игуана", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Iguana", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.174011Z", "updated_at": "2026-01-17T18:41:51.174026Z", "is_active": true }, { "id": 693, "french_word": "lézard", "russian_word": "ящерица", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Lizard", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.162986Z", "updated_at": "2026-01-17T18:41:51.163002Z", "is_active": true }, { "id": 691, "french_word": "python", "russian_word": "питон", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Python", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.152264Z", "updated_at": "2026-01-17T18:41:51.152281Z", "is_active": true }, { "id": 689, "french_word": "serpent", "russian_word": "змея", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Snake", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.141587Z", "updated_at": "2026-01-17T18:41:51.141602Z", "is_active": true }, { "id": 699, "french_word": "tortue", "russian_word": "черепаха", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Turtle/Tortoise", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.195755Z", "updated_at": "2026-01-17T18:41:51.195771Z", "is_active": true }, { "id": 692, "french_word": "vipère", "russian_word": "гадюка", "category": "animal", "category_display": "Animal", "level": 3, "level_display": "Animaux", "comment": "Viper", "tags": [ { "id": 19, "name": "animal", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:50.852846Z", "updated_at": "2026-01-17T18:41:50.852856Z" } ], "created_at": "2026-01-17T18:41:51.157561Z", "updated_at": "2026-01-17T18:41:51.157576Z", "is_active": true } ], "steps": [ { "id": 192, "sub_level": 49, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des reptiles et amphibiens", "description": "Reptiles et amphibiens\n\nApprenez le vocabulaire de vocabulaire des reptiles et amphibiens en russe.", "is_required": true, "config": { "content": "Reptiles et amphibiens\n\nApprenez le vocabulaire de vocabulaire des reptiles et amphibiens en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.343030Z", "updated_at": "2026-01-17T18:41:51.343041Z" }, { "id": 193, "sub_level": 49, "order": 2, "step_type": "game_flashcard", "step_type_display": "Game - Flashcard", "title": "Exercice 1 - Flashcard", "description": "Exercice 1 - Flashcard", "is_required": false, "config": { "game_mode": "flashcard", "instructions": "Pratiquez le vocabulaire de vocabulaire des reptiles et amphibiens avec le mode flashcard.", "min_score": 70, "level": 3, "sub_level": 7 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.346595Z", "updated_at": "2026-01-17T18:41:51.346605Z" }, { "id": 194, "sub_level": 49, "order": 3, "step_type": "game_matching", "step_type_display": "Game - Matching", "title": "Exercice 2 - Matching", "description": "Exercice 2 - Matching", "is_required": false, "config": { "game_mode": "matching", "instructions": "Pratiquez le vocabulaire de vocabulaire des reptiles et amphibiens avec le mode matching.", "min_score": 70, "level": 3, "sub_level": 7 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.349780Z", "updated_at": "2026-01-17T18:41:51.349790Z" }, { "id": 195, "sub_level": 49, "order": 4, "step_type": "game_multiple_choice", "step_type_display": "Game - Multiple Choice", "title": "Exercice 3 - Multiple Choice", "description": "Exercice 3 - Multiple Choice", "is_required": false, "config": { "game_mode": "multiple_choice", "instructions": "Pratiquez le vocabulaire de vocabulaire des reptiles et amphibiens avec le mode multiple_choice.", "min_score": 70, "level": 3, "sub_level": 7 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.352827Z", "updated_at": "2026-01-17T18:41:51.352838Z" } ], "videos": [], "learning_cards": [ { "id": 192, "sub_level": 49, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des reptiles et amphibiens", "description": "Reptiles et amphibiens\n\nApprenez le vocabulaire de vocabulaire des reptiles et amphibiens en russe.", "is_required": true, "config": { "content": "Reptiles et amphibiens\n\nApprenez le vocabulaire de vocabulaire des reptiles et amphibiens en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.343030Z", "updated_at": "2026-01-17T18:41:51.343041Z" } ], "exercises": [], "total_words": 13, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 13, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:51.335378Z", "updated_at": "2026-01-17T18:41:51.335388Z" }, { "id": 50, "level": 11, "level_display": "Couleurs", "sub_level": 1, "title": "Vocabulaire des couleurs de base", "description": "Couleurs de base", "order": 1, "word_pairs": [ { "id": 140, "french_word": "blanc", "russian_word": "белый", "category": "color", "category_display": "Color", "level": 4, "level_display": "Basic Adjectives", "comment": "White", "tags": [ { "id": 7, "name": "nominative", "category": "case", "category_display": "Case (Declension)", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.144909Z", "updated_at": "2026-01-17T18:41:46.144920Z" }, { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" }, { "id": 9, "name": "long-form", "category": "form", "category_display": "Form", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.575658Z", "updated_at": "2026-01-17T18:41:46.575675Z" }, { "id": 2, "name": "masculine", "category": "gender", "category_display": "Gender", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.131757Z", "updated_at": "2026-01-17T18:41:46.131774Z" }, { "id": 5, "name": "singular", "category": "number", "category_display": "Number", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.139686Z", "updated_at": "2026-01-17T18:41:46.139698Z" } ], "created_at": "2026-01-17T18:41:46.704851Z", "updated_at": "2026-01-17T18:41:51.407968Z", "is_active": true }, { "id": 136, "french_word": "bleu", "russian_word": "синий", "category": "color", "category_display": "Color", "level": 4, "level_display": "Basic Adjectives", "comment": "Blue", "tags": [ { "id": 7, "name": "nominative", "category": "case", "category_display": "Case (Declension)", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.144909Z", "updated_at": "2026-01-17T18:41:46.144920Z" }, { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" }, { "id": 9, "name": "long-form", "category": "form", "category_display": "Form", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.575658Z", "updated_at": "2026-01-17T18:41:46.575675Z" }, { "id": 2, "name": "masculine", "category": "gender", "category_display": "Gender", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.131757Z", "updated_at": "2026-01-17T18:41:46.131774Z" }, { "id": 5, "name": "singular", "category": "number", "category_display": "Number", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.139686Z", "updated_at": "2026-01-17T18:41:46.139698Z" } ], "created_at": "2026-01-17T18:41:46.683964Z", "updated_at": "2026-01-17T18:41:51.366951Z", "is_active": true }, { "id": 222, "french_word": "gris", "russian_word": "серый", "category": "color", "category_display": "Color", "level": 4, "level_display": "Basic Adjectives", "comment": "Gray", "tags": [ { "id": 7, "name": "nominative", "category": "case", "category_display": "Case (Declension)", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.144909Z", "updated_at": "2026-01-17T18:41:46.144920Z" }, { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" }, { "id": 9, "name": "long-form", "category": "form", "category_display": "Form", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.575658Z", "updated_at": "2026-01-17T18:41:46.575675Z" }, { "id": 2, "name": "masculine", "category": "gender", "category_display": "Gender", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.131757Z", "updated_at": "2026-01-17T18:41:46.131774Z" }, { "id": 5, "name": "singular", "category": "number", "category_display": "Number", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.139686Z", "updated_at": "2026-01-17T18:41:46.139698Z" } ], "created_at": "2026-01-17T18:41:47.126206Z", "updated_at": "2026-01-17T18:41:51.412991Z", "is_active": true }, { "id": 144, "french_word": "jaune", "russian_word": "жёлтый", "category": "color", "category_display": "Color", "level": 4, "level_display": "Basic Adjectives", "comment": "Yellow", "tags": [ { "id": 7, "name": "nominative", "category": "case", "category_display": "Case (Declension)", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.144909Z", "updated_at": "2026-01-17T18:41:46.144920Z" }, { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" }, { "id": 9, "name": "long-form", "category": "form", "category_display": "Form", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.575658Z", "updated_at": "2026-01-17T18:41:46.575675Z" }, { "id": 2, "name": "masculine", "category": "gender", "category_display": "Gender", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.131757Z", "updated_at": "2026-01-17T18:41:46.131774Z" }, { "id": 5, "name": "singular", "category": "number", "category_display": "Number", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.139686Z", "updated_at": "2026-01-17T18:41:46.139698Z" } ], "created_at": "2026-01-17T18:41:46.725129Z", "updated_at": "2026-01-17T18:41:51.377975Z", "is_active": true }, { "id": 224, "french_word": "marron", "russian_word": "коричневый", "category": "color", "category_display": "Color", "level": 4, "level_display": "Basic Adjectives", "comment": "Brown", "tags": [ { "id": 7, "name": "nominative", "category": "case", "category_display": "Case (Declension)", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.144909Z", "updated_at": "2026-01-17T18:41:46.144920Z" }, { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" }, { "id": 9, "name": "long-form", "category": "form", "category_display": "Form", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.575658Z", "updated_at": "2026-01-17T18:41:46.575675Z" }, { "id": 2, "name": "masculine", "category": "gender", "category_display": "Gender", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.131757Z", "updated_at": "2026-01-17T18:41:46.131774Z" }, { "id": 5, "name": "singular", "category": "number", "category_display": "Number", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.139686Z", "updated_at": "2026-01-17T18:41:46.139698Z" } ], "created_at": "2026-01-17T18:41:47.135951Z", "updated_at": "2026-01-17T18:41:51.398234Z", "is_active": true }, { "id": 142, "french_word": "noir", "russian_word": "чёрный", "category": "color", "category_display": "Color", "level": 4, "level_display": "Basic Adjectives", "comment": "Black", "tags": [ { "id": 7, "name": "nominative", "category": "case", "category_display": "Case (Declension)", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.144909Z", "updated_at": "2026-01-17T18:41:46.144920Z" }, { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" }, { "id": 9, "name": "long-form", "category": "form", "category_display": "Form", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.575658Z", "updated_at": "2026-01-17T18:41:46.575675Z" }, { "id": 2, "name": "masculine", "category": "gender", "category_display": "Gender", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.131757Z", "updated_at": "2026-01-17T18:41:46.131774Z" }, { "id": 5, "name": "singular", "category": "number", "category_display": "Number", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.139686Z", "updated_at": "2026-01-17T18:41:46.139698Z" } ], "created_at": "2026-01-17T18:41:46.714934Z", "updated_at": "2026-01-17T18:41:51.403138Z", "is_active": true }, { "id": 228, "french_word": "orange", "russian_word": "оранжевый", "category": "color", "category_display": "Color", "level": 4, "level_display": "Basic Adjectives", "comment": "Orange", "tags": [ { "id": 7, "name": "nominative", "category": "case", "category_display": "Case (Declension)", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.144909Z", "updated_at": "2026-01-17T18:41:46.144920Z" }, { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" }, { "id": 9, "name": "long-form", "category": "form", "category_display": "Form", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.575658Z", "updated_at": "2026-01-17T18:41:46.575675Z" }, { "id": 2, "name": "masculine", "category": "gender", "category_display": "Gender", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.131757Z", "updated_at": "2026-01-17T18:41:46.131774Z" }, { "id": 5, "name": "singular", "category": "number", "category_display": "Number", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.139686Z", "updated_at": "2026-01-17T18:41:46.139698Z" } ], "created_at": "2026-01-17T18:41:47.155944Z", "updated_at": "2026-01-17T18:41:51.383076Z", "is_active": true }, { "id": 702, "french_word": "rose", "russian_word": "розовый", "category": "color", "category_display": "Color", "level": 4, "level_display": "Couleurs", "comment": "Pink", "tags": [ { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" } ], "created_at": "2026-01-17T18:41:51.393386Z", "updated_at": "2026-01-17T18:41:51.393397Z", "is_active": true }, { "id": 134, "french_word": "rouge", "russian_word": "красный", "category": "color", "category_display": "Color", "level": 4, "level_display": "Basic Adjectives", "comment": "Red", "tags": [ { "id": 7, "name": "nominative", "category": "case", "category_display": "Case (Declension)", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.144909Z", "updated_at": "2026-01-17T18:41:46.144920Z" }, { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" }, { "id": 9, "name": "long-form", "category": "form", "category_display": "Form", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.575658Z", "updated_at": "2026-01-17T18:41:46.575675Z" }, { "id": 2, "name": "masculine", "category": "gender", "category_display": "Gender", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.131757Z", "updated_at": "2026-01-17T18:41:46.131774Z" }, { "id": 5, "name": "singular", "category": "number", "category_display": "Number", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.139686Z", "updated_at": "2026-01-17T18:41:46.139698Z" } ], "created_at": "2026-01-17T18:41:46.674127Z", "updated_at": "2026-01-17T18:41:51.361581Z", "is_active": true }, { "id": 138, "french_word": "vert", "russian_word": "зелёный", "category": "color", "category_display": "Color", "level": 4, "level_display": "Basic Adjectives", "comment": "Green", "tags": [ { "id": 7, "name": "nominative", "category": "case", "category_display": "Case (Declension)", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.144909Z", "updated_at": "2026-01-17T18:41:46.144920Z" }, { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" }, { "id": 9, "name": "long-form", "category": "form", "category_display": "Form", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.575658Z", "updated_at": "2026-01-17T18:41:46.575675Z" }, { "id": 2, "name": "masculine", "category": "gender", "category_display": "Gender", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.131757Z", "updated_at": "2026-01-17T18:41:46.131774Z" }, { "id": 5, "name": "singular", "category": "number", "category_display": "Number", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.139686Z", "updated_at": "2026-01-17T18:41:46.139698Z" } ], "created_at": "2026-01-17T18:41:46.694159Z", "updated_at": "2026-01-17T18:41:51.372676Z", "is_active": true }, { "id": 226, "french_word": "violet", "russian_word": "фиолетовый", "category": "color", "category_display": "Color", "level": 4, "level_display": "Basic Adjectives", "comment": "Purple", "tags": [ { "id": 7, "name": "nominative", "category": "case", "category_display": "Case (Declension)", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.144909Z", "updated_at": "2026-01-17T18:41:46.144920Z" }, { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" }, { "id": 9, "name": "long-form", "category": "form", "category_display": "Form", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.575658Z", "updated_at": "2026-01-17T18:41:46.575675Z" }, { "id": 2, "name": "masculine", "category": "gender", "category_display": "Gender", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.131757Z", "updated_at": "2026-01-17T18:41:46.131774Z" }, { "id": 5, "name": "singular", "category": "number", "category_display": "Number", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.139686Z", "updated_at": "2026-01-17T18:41:46.139698Z" } ], "created_at": "2026-01-17T18:41:47.146235Z", "updated_at": "2026-01-17T18:41:51.388420Z", "is_active": true } ], "steps": [ { "id": 196, "sub_level": 50, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des couleurs de base", "description": "Couleurs de base\n\nApprenez le vocabulaire de vocabulaire des couleurs de base en russe.", "is_required": true, "config": { "content": "Couleurs de base\n\nApprenez le vocabulaire de vocabulaire des couleurs de base en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.558947Z", "updated_at": "2026-01-17T18:41:51.558972Z" }, { "id": 197, "sub_level": 50, "order": 2, "step_type": "game_flashcard", "step_type_display": "Game - Flashcard", "title": "Exercice 1 - Flashcard", "description": "Exercice 1 - Flashcard", "is_required": false, "config": { "game_mode": "flashcard", "instructions": "Pratiquez le vocabulaire de vocabulaire des couleurs de base avec le mode flashcard.", "min_score": 70, "level": 4, "sub_level": 1 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.562817Z", "updated_at": "2026-01-17T18:41:51.562835Z" }, { "id": 198, "sub_level": 50, "order": 3, "step_type": "game_matching", "step_type_display": "Game - Matching", "title": "Exercice 2 - Matching", "description": "Exercice 2 - Matching", "is_required": false, "config": { "game_mode": "matching", "instructions": "Pratiquez le vocabulaire de vocabulaire des couleurs de base avec le mode matching.", "min_score": 70, "level": 4, "sub_level": 1 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.566885Z", "updated_at": "2026-01-17T18:41:51.566904Z" }, { "id": 199, "sub_level": 50, "order": 4, "step_type": "game_multiple_choice", "step_type_display": "Game - Multiple Choice", "title": "Exercice 3 - Multiple Choice", "description": "Exercice 3 - Multiple Choice", "is_required": false, "config": { "game_mode": "multiple_choice", "instructions": "Pratiquez le vocabulaire de vocabulaire des couleurs de base avec le mode multiple_choice.", "min_score": 70, "level": 4, "sub_level": 1 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.570250Z", "updated_at": "2026-01-17T18:41:51.570268Z" } ], "videos": [], "learning_cards": [ { "id": 196, "sub_level": 50, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des couleurs de base", "description": "Couleurs de base\n\nApprenez le vocabulaire de vocabulaire des couleurs de base en russe.", "is_required": true, "config": { "content": "Couleurs de base\n\nApprenez le vocabulaire de vocabulaire des couleurs de base en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.558947Z", "updated_at": "2026-01-17T18:41:51.558972Z" } ], "exercises": [], "total_words": 11, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 11, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:51.549877Z", "updated_at": "2026-01-17T18:41:51.549896Z" }, { "id": 51, "level": 11, "level_display": "Couleurs", "sub_level": 2, "title": "Vocabulaire des nuances et tons de couleurs", "description": "Nuances et tons", "order": 2, "word_pairs": [ { "id": 230, "french_word": "beige", "russian_word": "бежевый", "category": "color", "category_display": "Color", "level": 4, "level_display": "Basic Adjectives", "comment": "Beige", "tags": [ { "id": 7, "name": "nominative", "category": "case", "category_display": "Case (Declension)", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.144909Z", "updated_at": "2026-01-17T18:41:46.144920Z" }, { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" }, { "id": 9, "name": "long-form", "category": "form", "category_display": "Form", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.575658Z", "updated_at": "2026-01-17T18:41:46.575675Z" }, { "id": 2, "name": "masculine", "category": "gender", "category_display": "Gender", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.131757Z", "updated_at": "2026-01-17T18:41:46.131774Z" }, { "id": 5, "name": "singular", "category": "number", "category_display": "Number", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.139686Z", "updated_at": "2026-01-17T18:41:46.139698Z" } ], "created_at": "2026-01-17T18:41:47.166058Z", "updated_at": "2026-01-17T18:41:51.417937Z", "is_active": true }, { "id": 270, "french_word": "clair", "russian_word": "светлый", "category": "color", "category_display": "Color", "level": 4, "level_display": "Basic Adjectives", "comment": "Light", "tags": [ { "id": 7, "name": "nominative", "category": "case", "category_display": "Case (Declension)", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.144909Z", "updated_at": "2026-01-17T18:41:46.144920Z" }, { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" }, { "id": 9, "name": "long-form", "category": "form", "category_display": "Form", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.575658Z", "updated_at": "2026-01-17T18:41:46.575675Z" }, { "id": 2, "name": "masculine", "category": "gender", "category_display": "Gender", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.131757Z", "updated_at": "2026-01-17T18:41:46.131774Z" }, { "id": 5, "name": "singular", "category": "number", "category_display": "Number", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:46.139686Z", "updated_at": "2026-01-17T18:41:46.139698Z" } ], "created_at": "2026-01-17T18:41:47.371469Z", "updated_at": "2026-01-17T18:41:51.428057Z", "is_active": true }, { "id": 703, "french_word": "crème", "russian_word": "кремовый", "category": "color", "category_display": "Color", "level": 4, "level_display": "Couleurs", "comment": "Cream", "tags": [ { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" } ], "created_at": "2026-01-17T18:41:51.422948Z", "updated_at": "2026-01-17T18:41:51.422961Z", "is_active": true }, { "id": 704, "french_word": "foncé", "russian_word": "тёмный", "category": "color", "category_display": "Color", "level": 4, "level_display": "Couleurs", "comment": "Dark", "tags": [ { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" } ], "created_at": "2026-01-17T18:41:51.433679Z", "updated_at": "2026-01-17T18:41:51.433690Z", "is_active": true }, { "id": 705, "french_word": "pâle", "russian_word": "бледный", "category": "color", "category_display": "Color", "level": 4, "level_display": "Couleurs", "comment": "Pale", "tags": [ { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" } ], "created_at": "2026-01-17T18:41:51.438594Z", "updated_at": "2026-01-17T18:41:51.438605Z", "is_active": true }, { "id": 707, "french_word": "terne", "russian_word": "тусклый", "category": "color", "category_display": "Color", "level": 4, "level_display": "Couleurs", "comment": "Dull", "tags": [ { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" } ], "created_at": "2026-01-17T18:41:51.448919Z", "updated_at": "2026-01-17T18:41:51.448935Z", "is_active": true }, { "id": 706, "french_word": "vif", "russian_word": "яркий", "category": "color", "category_display": "Color", "level": 4, "level_display": "Couleurs", "comment": "Bright", "tags": [ { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" } ], "created_at": "2026-01-17T18:41:51.443908Z", "updated_at": "2026-01-17T18:41:51.443924Z", "is_active": true } ], "steps": [ { "id": 200, "sub_level": 51, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des nuances et tons de couleurs", "description": "Nuances et tons\n\nApprenez le vocabulaire de vocabulaire des nuances et tons de couleurs en russe.", "is_required": true, "config": { "content": "Nuances et tons\n\nApprenez le vocabulaire de vocabulaire des nuances et tons de couleurs en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.581461Z", "updated_at": "2026-01-17T18:41:51.581484Z" }, { "id": 201, "sub_level": 51, "order": 2, "step_type": "game_flashcard", "step_type_display": "Game - Flashcard", "title": "Exercice 1 - Flashcard", "description": "Exercice 1 - Flashcard", "is_required": false, "config": { "game_mode": "flashcard", "instructions": "Pratiquez le vocabulaire de vocabulaire des nuances et tons de couleurs avec le mode flashcard.", "min_score": 70, "level": 4, "sub_level": 2 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.586548Z", "updated_at": "2026-01-17T18:41:51.586570Z" }, { "id": 202, "sub_level": 51, "order": 3, "step_type": "game_matching", "step_type_display": "Game - Matching", "title": "Exercice 2 - Matching", "description": "Exercice 2 - Matching", "is_required": false, "config": { "game_mode": "matching", "instructions": "Pratiquez le vocabulaire de vocabulaire des nuances et tons de couleurs avec le mode matching.", "min_score": 70, "level": 4, "sub_level": 2 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.590108Z", "updated_at": "2026-01-17T18:41:51.590127Z" }, { "id": 203, "sub_level": 51, "order": 4, "step_type": "game_multiple_choice", "step_type_display": "Game - Multiple Choice", "title": "Exercice 3 - Multiple Choice", "description": "Exercice 3 - Multiple Choice", "is_required": false, "config": { "game_mode": "multiple_choice", "instructions": "Pratiquez le vocabulaire de vocabulaire des nuances et tons de couleurs avec le mode multiple_choice.", "min_score": 70, "level": 4, "sub_level": 2 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.593683Z", "updated_at": "2026-01-17T18:41:51.593701Z" } ], "videos": [], "learning_cards": [ { "id": 200, "sub_level": 51, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des nuances et tons de couleurs", "description": "Nuances et tons\n\nApprenez le vocabulaire de vocabulaire des nuances et tons de couleurs en russe.", "is_required": true, "config": { "content": "Nuances et tons\n\nApprenez le vocabulaire de vocabulaire des nuances et tons de couleurs en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.581461Z", "updated_at": "2026-01-17T18:41:51.581484Z" } ], "exercises": [], "total_words": 7, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 7, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:51.573094Z", "updated_at": "2026-01-17T18:41:51.573110Z" }, { "id": 52, "level": 11, "level_display": "Couleurs", "sub_level": 3, "title": "Vocabulaire des couleurs de métaux et matériaux", "description": "Métaux et matériaux", "order": 3, "word_pairs": [ { "id": 709, "french_word": "argent", "russian_word": "серебряный", "category": "color", "category_display": "Color", "level": 4, "level_display": "Couleurs", "comment": "Silver", "tags": [ { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" } ], "created_at": "2026-01-17T18:41:51.458801Z", "updated_at": "2026-01-17T18:41:51.458812Z", "is_active": true }, { "id": 716, "french_word": "brique", "russian_word": "кирпичный", "category": "color", "category_display": "Color", "level": 4, "level_display": "Couleurs", "comment": "Brick", "tags": [ { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" } ], "created_at": "2026-01-17T18:41:51.494561Z", "updated_at": "2026-01-17T18:41:51.494571Z", "is_active": true }, { "id": 710, "french_word": "bronze", "russian_word": "бронзовый", "category": "color", "category_display": "Color", "level": 4, "level_display": "Couleurs", "comment": "Bronze", "tags": [ { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" } ], "created_at": "2026-01-17T18:41:51.463760Z", "updated_at": "2026-01-17T18:41:51.463771Z", "is_active": true }, { "id": 711, "french_word": "cuivre", "russian_word": "медный", "category": "color", "category_display": "Color", "level": 4, "level_display": "Couleurs", "comment": "Copper", "tags": [ { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" } ], "created_at": "2026-01-17T18:41:51.468916Z", "updated_at": "2026-01-17T18:41:51.468929Z", "is_active": true }, { "id": 713, "french_word": "laiton", "russian_word": "латунный", "category": "color", "category_display": "Color", "level": 4, "level_display": "Couleurs", "comment": "Brass", "tags": [ { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" } ], "created_at": "2026-01-17T18:41:51.479686Z", "updated_at": "2026-01-17T18:41:51.479698Z", "is_active": true }, { "id": 714, "french_word": "ocre", "russian_word": "охристый", "category": "color", "category_display": "Color", "level": 4, "level_display": "Couleurs", "comment": "Ocher", "tags": [ { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" } ], "created_at": "2026-01-17T18:41:51.484619Z", "updated_at": "2026-01-17T18:41:51.484629Z", "is_active": true }, { "id": 708, "french_word": "or", "russian_word": "золотой", "category": "color", "category_display": "Color", "level": 4, "level_display": "Couleurs", "comment": "Gold", "tags": [ { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" } ], "created_at": "2026-01-17T18:41:51.453866Z", "updated_at": "2026-01-17T18:41:51.453878Z", "is_active": true }, { "id": 712, "french_word": "platine", "russian_word": "платиновый", "category": "color", "category_display": "Color", "level": 4, "level_display": "Couleurs", "comment": "Platinum", "tags": [ { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" } ], "created_at": "2026-01-17T18:41:51.474432Z", "updated_at": "2026-01-17T18:41:51.474443Z", "is_active": true }, { "id": 715, "french_word": "rouille", "russian_word": "ржавый", "category": "color", "category_display": "Color", "level": 4, "level_display": "Couleurs", "comment": "Rust", "tags": [ { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" } ], "created_at": "2026-01-17T18:41:51.489574Z", "updated_at": "2026-01-17T18:41:51.489584Z", "is_active": true } ], "steps": [ { "id": 204, "sub_level": 52, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des couleurs de métaux et matériaux", "description": "Métaux et matériaux\n\nApprenez le vocabulaire de vocabulaire des couleurs de métaux et matériaux en russe.", "is_required": true, "config": { "content": "Métaux et matériaux\n\nApprenez le vocabulaire de vocabulaire des couleurs de métaux et matériaux en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.605700Z", "updated_at": "2026-01-17T18:41:51.605724Z" }, { "id": 205, "sub_level": 52, "order": 2, "step_type": "game_flashcard", "step_type_display": "Game - Flashcard", "title": "Exercice 1 - Flashcard", "description": "Exercice 1 - Flashcard", "is_required": false, "config": { "game_mode": "flashcard", "instructions": "Pratiquez le vocabulaire de vocabulaire des couleurs de métaux et matériaux avec le mode flashcard.", "min_score": 70, "level": 4, "sub_level": 3 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.609826Z", "updated_at": "2026-01-17T18:41:51.609845Z" }, { "id": 206, "sub_level": 52, "order": 3, "step_type": "game_matching", "step_type_display": "Game - Matching", "title": "Exercice 2 - Matching", "description": "Exercice 2 - Matching", "is_required": false, "config": { "game_mode": "matching", "instructions": "Pratiquez le vocabulaire de vocabulaire des couleurs de métaux et matériaux avec le mode matching.", "min_score": 70, "level": 4, "sub_level": 3 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.613299Z", "updated_at": "2026-01-17T18:41:51.613317Z" }, { "id": 207, "sub_level": 52, "order": 4, "step_type": "game_multiple_choice", "step_type_display": "Game - Multiple Choice", "title": "Exercice 3 - Multiple Choice", "description": "Exercice 3 - Multiple Choice", "is_required": false, "config": { "game_mode": "multiple_choice", "instructions": "Pratiquez le vocabulaire de vocabulaire des couleurs de métaux et matériaux avec le mode multiple_choice.", "min_score": 70, "level": 4, "sub_level": 3 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.617990Z", "updated_at": "2026-01-17T18:41:51.618008Z" } ], "videos": [], "learning_cards": [ { "id": 204, "sub_level": 52, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des couleurs de métaux et matériaux", "description": "Métaux et matériaux\n\nApprenez le vocabulaire de vocabulaire des couleurs de métaux et matériaux en russe.", "is_required": true, "config": { "content": "Métaux et matériaux\n\nApprenez le vocabulaire de vocabulaire des couleurs de métaux et matériaux en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.605700Z", "updated_at": "2026-01-17T18:41:51.605724Z" } ], "exercises": [], "total_words": 9, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 9, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:51.596535Z", "updated_at": "2026-01-17T18:41:51.596551Z" }, { "id": 53, "level": 11, "level_display": "Couleurs", "sub_level": 4, "title": "Vocabulaire des couleurs spéciales", "description": "Couleurs spéciales", "order": 4, "word_pairs": [ { "id": 724, "french_word": "bordeaux", "russian_word": "бордовый", "category": "color", "category_display": "Color", "level": 4, "level_display": "Couleurs", "comment": "Burgundy", "tags": [ { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" } ], "created_at": "2026-01-17T18:41:51.544100Z", "updated_at": "2026-01-17T18:41:51.544125Z", "is_active": true }, { "id": 720, "french_word": "chamois", "russian_word": "шамois", "category": "color", "category_display": "Color", "level": 4, "level_display": "Couleurs", "comment": "Chamois", "tags": [ { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" } ], "created_at": "2026-01-17T18:41:51.515577Z", "updated_at": "2026-01-17T18:41:51.515588Z", "is_active": true }, { "id": 717, "french_word": "corail", "russian_word": "коралловый", "category": "color", "category_display": "Color", "level": 4, "level_display": "Couleurs", "comment": "Coral", "tags": [ { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" } ], "created_at": "2026-01-17T18:41:51.500292Z", "updated_at": "2026-01-17T18:41:51.500302Z", "is_active": true }, { "id": 718, "french_word": "ivoire", "russian_word": "слоновая кость", "category": "color", "category_display": "Color", "level": 4, "level_display": "Couleurs", "comment": "Ivory", "tags": [ { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" } ], "created_at": "2026-01-17T18:41:51.505469Z", "updated_at": "2026-01-17T18:41:51.505480Z", "is_active": true }, { "id": 722, "french_word": "kaki", "russian_word": "хаки", "category": "color", "category_display": "Color", "level": 4, "level_display": "Couleurs", "comment": "Khaki", "tags": [ { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" } ], "created_at": "2026-01-17T18:41:51.525834Z", "updated_at": "2026-01-17T18:41:51.525846Z", "is_active": true }, { "id": 723, "french_word": "olive", "russian_word": "оливковый", "category": "color", "category_display": "Color", "level": 4, "level_display": "Couleurs", "comment": "Olive", "tags": [ { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" } ], "created_at": "2026-01-17T18:41:51.533370Z", "updated_at": "2026-01-17T18:41:51.533395Z", "is_active": true }, { "id": 721, "french_word": "taupe", "russian_word": "кротовый", "category": "color", "category_display": "Color", "level": 4, "level_display": "Couleurs", "comment": "Taupe", "tags": [ { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" } ], "created_at": "2026-01-17T18:41:51.520672Z", "updated_at": "2026-01-17T18:41:51.520682Z", "is_active": true }, { "id": 719, "french_word": "écru", "russian_word": "небелёный", "category": "color", "category_display": "Color", "level": 4, "level_display": "Couleurs", "comment": "Ecru", "tags": [ { "id": 20, "name": "color", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.359005Z", "updated_at": "2026-01-17T18:41:51.359021Z" } ], "created_at": "2026-01-17T18:41:51.510481Z", "updated_at": "2026-01-17T18:41:51.510491Z", "is_active": true } ], "steps": [ { "id": 208, "sub_level": 53, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des couleurs spéciales", "description": "Couleurs spéciales\n\nApprenez le vocabulaire de vocabulaire des couleurs spéciales en russe.", "is_required": true, "config": { "content": "Couleurs spéciales\n\nApprenez le vocabulaire de vocabulaire des couleurs spéciales en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.630873Z", "updated_at": "2026-01-17T18:41:51.630898Z" }, { "id": 209, "sub_level": 53, "order": 2, "step_type": "game_flashcard", "step_type_display": "Game - Flashcard", "title": "Exercice 1 - Flashcard", "description": "Exercice 1 - Flashcard", "is_required": false, "config": { "game_mode": "flashcard", "instructions": "Pratiquez le vocabulaire de vocabulaire des couleurs spéciales avec le mode flashcard.", "min_score": 70, "level": 4, "sub_level": 4 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.635093Z", "updated_at": "2026-01-17T18:41:51.635112Z" }, { "id": 210, "sub_level": 53, "order": 3, "step_type": "game_matching", "step_type_display": "Game - Matching", "title": "Exercice 2 - Matching", "description": "Exercice 2 - Matching", "is_required": false, "config": { "game_mode": "matching", "instructions": "Pratiquez le vocabulaire de vocabulaire des couleurs spéciales avec le mode matching.", "min_score": 70, "level": 4, "sub_level": 4 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.639185Z", "updated_at": "2026-01-17T18:41:51.639211Z" }, { "id": 211, "sub_level": 53, "order": 4, "step_type": "game_multiple_choice", "step_type_display": "Game - Multiple Choice", "title": "Exercice 3 - Multiple Choice", "description": "Exercice 3 - Multiple Choice", "is_required": false, "config": { "game_mode": "multiple_choice", "instructions": "Pratiquez le vocabulaire de vocabulaire des couleurs spéciales avec le mode multiple_choice.", "min_score": 70, "level": 4, "sub_level": 4 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.643898Z", "updated_at": "2026-01-17T18:41:51.643921Z" } ], "videos": [], "learning_cards": [ { "id": 208, "sub_level": 53, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des couleurs spéciales", "description": "Couleurs spéciales\n\nApprenez le vocabulaire de vocabulaire des couleurs spéciales en russe.", "is_required": true, "config": { "content": "Couleurs spéciales\n\nApprenez le vocabulaire de vocabulaire des couleurs spéciales en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.630873Z", "updated_at": "2026-01-17T18:41:51.630898Z" } ], "exercises": [], "total_words": 8, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 8, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:51.620887Z", "updated_at": "2026-01-17T18:41:51.620903Z" }, { "id": 54, "level": 12, "level_display": "Corps", "sub_level": 1, "title": "Vocabulaire de la tête et du visage", "description": "Tête et visage", "order": 1, "word_pairs": [ { "id": 729, "french_word": "bouche", "russian_word": "рот", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Mouth", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.675055Z", "updated_at": "2026-01-17T18:41:51.675073Z", "is_active": true }, { "id": 770, "french_word": "cheveu", "russian_word": "волос", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Hair", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.898468Z", "updated_at": "2026-01-17T18:41:51.898479Z", "is_active": true }, { "id": 771, "french_word": "cheveux", "russian_word": "волосы", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Hair", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.903276Z", "updated_at": "2026-01-17T18:41:51.903287Z", "is_active": true }, { "id": 735, "french_word": "cil", "russian_word": "ресница", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Eyelash", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.712183Z", "updated_at": "2026-01-17T18:41:51.712197Z", "is_active": true }, { "id": 736, "french_word": "cils", "russian_word": "ресницы", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Eyelashes", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.717432Z", "updated_at": "2026-01-17T18:41:51.717446Z", "is_active": true }, { "id": 745, "french_word": "cou", "russian_word": "шея", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Neck", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.771349Z", "updated_at": "2026-01-17T18:41:51.771366Z", "is_active": true }, { "id": 741, "french_word": "dent", "russian_word": "зуб", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Tooth", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.745484Z", "updated_at": "2026-01-17T18:41:51.745516Z", "is_active": true }, { "id": 742, "french_word": "dents", "russian_word": "зубы", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Teeth", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.756025Z", "updated_at": "2026-01-17T18:41:51.756052Z", "is_active": true }, { "id": 732, "french_word": "front", "russian_word": "лоб", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Forehead", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.696458Z", "updated_at": "2026-01-17T18:41:51.696479Z", "is_active": true }, { "id": 744, "french_word": "gorge", "russian_word": "горло", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Throat", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.766330Z", "updated_at": "2026-01-17T18:41:51.766346Z", "is_active": true }, { "id": 737, "french_word": "joue", "russian_word": "щека", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Cheek", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.722545Z", "updated_at": "2026-01-17T18:41:51.722559Z", "is_active": true }, { "id": 743, "french_word": "langue", "russian_word": "язык", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Tongue", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.761327Z", "updated_at": "2026-01-17T18:41:51.761344Z", "is_active": true }, { "id": 739, "french_word": "lèvre", "russian_word": "губа", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Lip", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.733797Z", "updated_at": "2026-01-17T18:41:51.733829Z", "is_active": true }, { "id": 740, "french_word": "lèvres", "russian_word": "губы", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Lips", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.739975Z", "updated_at": "2026-01-17T18:41:51.740002Z", "is_active": true }, { "id": 738, "french_word": "menton", "russian_word": "подбородок", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Chin", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.728273Z", "updated_at": "2026-01-17T18:41:51.728299Z", "is_active": true }, { "id": 728, "french_word": "nez", "russian_word": "нос", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Nose", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.669531Z", "updated_at": "2026-01-17T18:41:51.669549Z", "is_active": true }, { "id": 730, "french_word": "oreille", "russian_word": "ухо", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Ear", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.684318Z", "updated_at": "2026-01-17T18:41:51.684342Z", "is_active": true }, { "id": 731, "french_word": "oreilles", "russian_word": "уши", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Ears", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.689773Z", "updated_at": "2026-01-17T18:41:51.689795Z", "is_active": true }, { "id": 733, "french_word": "sourcil", "russian_word": "бровь", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Eyebrow", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.701878Z", "updated_at": "2026-01-17T18:41:51.701894Z", "is_active": true }, { "id": 734, "french_word": "sourcils", "russian_word": "брови", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Eyebrows", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.707080Z", "updated_at": "2026-01-17T18:41:51.707097Z", "is_active": true }, { "id": 725, "french_word": "tête", "russian_word": "голова", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Head", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.653315Z", "updated_at": "2026-01-17T18:41:51.653329Z", "is_active": true }, { "id": 726, "french_word": "visage", "russian_word": "лицо", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Face", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.658763Z", "updated_at": "2026-01-17T18:41:51.658779Z", "is_active": true }, { "id": 727, "french_word": "œil", "russian_word": "глаз", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Eye", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.663975Z", "updated_at": "2026-01-17T18:41:51.663991Z", "is_active": true } ], "steps": [ { "id": 212, "sub_level": 54, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire de la tête et du visage", "description": "Tête et visage\n\nApprenez le vocabulaire de vocabulaire de la tête et du visage en russe.", "is_required": true, "config": { "content": "Tête et visage\n\nApprenez le vocabulaire de vocabulaire de la tête et du visage en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.995624Z", "updated_at": "2026-01-17T18:41:51.995635Z" }, { "id": 213, "sub_level": 54, "order": 2, "step_type": "game_flashcard", "step_type_display": "Game - Flashcard", "title": "Exercice 1 - Flashcard", "description": "Exercice 1 - Flashcard", "is_required": false, "config": { "game_mode": "flashcard", "instructions": "Pratiquez le vocabulaire de vocabulaire de la tête et du visage avec le mode flashcard.", "min_score": 70, "level": 5, "sub_level": 1 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.998986Z", "updated_at": "2026-01-17T18:41:51.998996Z" }, { "id": 214, "sub_level": 54, "order": 3, "step_type": "game_matching", "step_type_display": "Game - Matching", "title": "Exercice 2 - Matching", "description": "Exercice 2 - Matching", "is_required": false, "config": { "game_mode": "matching", "instructions": "Pratiquez le vocabulaire de vocabulaire de la tête et du visage avec le mode matching.", "min_score": 70, "level": 5, "sub_level": 1 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.002196Z", "updated_at": "2026-01-17T18:41:52.002207Z" }, { "id": 215, "sub_level": 54, "order": 4, "step_type": "game_multiple_choice", "step_type_display": "Game - Multiple Choice", "title": "Exercice 3 - Multiple Choice", "description": "Exercice 3 - Multiple Choice", "is_required": false, "config": { "game_mode": "multiple_choice", "instructions": "Pratiquez le vocabulaire de vocabulaire de la tête et du visage avec le mode multiple_choice.", "min_score": 70, "level": 5, "sub_level": 1 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.005257Z", "updated_at": "2026-01-17T18:41:52.005267Z" } ], "videos": [], "learning_cards": [ { "id": 212, "sub_level": 54, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire de la tête et du visage", "description": "Tête et visage\n\nApprenez le vocabulaire de vocabulaire de la tête et du visage en russe.", "is_required": true, "config": { "content": "Tête et visage\n\nApprenez le vocabulaire de vocabulaire de la tête et du visage en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:51.995624Z", "updated_at": "2026-01-17T18:41:51.995635Z" } ], "exercises": [], "total_words": 23, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 23, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:51.987733Z", "updated_at": "2026-01-17T18:41:51.987744Z" }, { "id": 55, "level": 12, "level_display": "Corps", "sub_level": 2, "title": "Vocabulaire des mains et des bras", "description": "Mains et bras", "order": 2, "word_pairs": [ { "id": 757, "french_word": "avant-bras", "russian_word": "предплечье", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Forearm", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.831718Z", "updated_at": "2026-01-17T18:41:51.831728Z", "is_active": true }, { "id": 747, "french_word": "bras", "russian_word": "рука", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Arm", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.781306Z", "updated_at": "2026-01-17T18:41:51.781320Z", "is_active": true }, { "id": 750, "french_word": "coude", "russian_word": "локоть", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Elbow", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.796007Z", "updated_at": "2026-01-17T18:41:51.796024Z", "is_active": true }, { "id": 751, "french_word": "coudes", "russian_word": "локти", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Elbows", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.801024Z", "updated_at": "2026-01-17T18:41:51.801035Z", "is_active": true }, { "id": 774, "french_word": "doigt", "russian_word": "палец", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Finger", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.917601Z", "updated_at": "2026-01-17T18:41:51.917612Z", "is_active": true }, { "id": 775, "french_word": "doigts", "russian_word": "пальцы", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Fingers", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.922641Z", "updated_at": "2026-01-17T18:41:51.922655Z", "is_active": true }, { "id": 777, "french_word": "index", "russian_word": "указательный палец", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Index finger", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.932459Z", "updated_at": "2026-01-17T18:41:51.932472Z", "is_active": true }, { "id": 746, "french_word": "main", "russian_word": "рука", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Hand", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.776278Z", "updated_at": "2026-01-17T18:41:51.776291Z", "is_active": true }, { "id": 778, "french_word": "ongle", "russian_word": "ноготь", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Nail", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.937227Z", "updated_at": "2026-01-17T18:41:51.937239Z", "is_active": true }, { "id": 779, "french_word": "ongles", "russian_word": "ногти", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Nails", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.942135Z", "updated_at": "2026-01-17T18:41:51.942148Z", "is_active": true }, { "id": 754, "french_word": "paume", "russian_word": "ладонь", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Palm", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.816093Z", "updated_at": "2026-01-17T18:41:51.816103Z", "is_active": true }, { "id": 752, "french_word": "poignet", "russian_word": "запястье", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Wrist", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.806352Z", "updated_at": "2026-01-17T18:41:51.806363Z", "is_active": true }, { "id": 753, "french_word": "poignets", "russian_word": "запястья", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Wrists", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.811237Z", "updated_at": "2026-01-17T18:41:51.811247Z", "is_active": true }, { "id": 755, "french_word": "poing", "russian_word": "кулак", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Fist", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.821109Z", "updated_at": "2026-01-17T18:41:51.821122Z", "is_active": true }, { "id": 756, "french_word": "poings", "russian_word": "кулаки", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Fists", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.826069Z", "updated_at": "2026-01-17T18:41:51.826079Z", "is_active": true }, { "id": 776, "french_word": "pouce", "russian_word": "большой палец", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Thumb", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.927459Z", "updated_at": "2026-01-17T18:41:51.927474Z", "is_active": true }, { "id": 748, "french_word": "épaule", "russian_word": "плечо", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Shoulder", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.786093Z", "updated_at": "2026-01-17T18:41:51.786103Z", "is_active": true }, { "id": 749, "french_word": "épaules", "russian_word": "плечи", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Shoulders", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.790965Z", "updated_at": "2026-01-17T18:41:51.790977Z", "is_active": true } ], "steps": [ { "id": 216, "sub_level": 55, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des mains et des bras", "description": "Mains et bras\n\nApprenez le vocabulaire de vocabulaire des mains et des bras en russe.", "is_required": true, "config": { "content": "Mains et bras\n\nApprenez le vocabulaire de vocabulaire des mains et des bras en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.015536Z", "updated_at": "2026-01-17T18:41:52.015547Z" }, { "id": 217, "sub_level": 55, "order": 2, "step_type": "game_flashcard", "step_type_display": "Game - Flashcard", "title": "Exercice 1 - Flashcard", "description": "Exercice 1 - Flashcard", "is_required": false, "config": { "game_mode": "flashcard", "instructions": "Pratiquez le vocabulaire de vocabulaire des mains et des bras avec le mode flashcard.", "min_score": 70, "level": 5, "sub_level": 2 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.018968Z", "updated_at": "2026-01-17T18:41:52.018978Z" }, { "id": 218, "sub_level": 55, "order": 3, "step_type": "game_matching", "step_type_display": "Game - Matching", "title": "Exercice 2 - Matching", "description": "Exercice 2 - Matching", "is_required": false, "config": { "game_mode": "matching", "instructions": "Pratiquez le vocabulaire de vocabulaire des mains et des bras avec le mode matching.", "min_score": 70, "level": 5, "sub_level": 2 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.021957Z", "updated_at": "2026-01-17T18:41:52.021968Z" }, { "id": 219, "sub_level": 55, "order": 4, "step_type": "game_multiple_choice", "step_type_display": "Game - Multiple Choice", "title": "Exercice 3 - Multiple Choice", "description": "Exercice 3 - Multiple Choice", "is_required": false, "config": { "game_mode": "multiple_choice", "instructions": "Pratiquez le vocabulaire de vocabulaire des mains et des bras avec le mode multiple_choice.", "min_score": 70, "level": 5, "sub_level": 2 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.025152Z", "updated_at": "2026-01-17T18:41:52.025164Z" } ], "videos": [], "learning_cards": [ { "id": 216, "sub_level": 55, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des mains et des bras", "description": "Mains et bras\n\nApprenez le vocabulaire de vocabulaire des mains et des bras en russe.", "is_required": true, "config": { "content": "Mains et bras\n\nApprenez le vocabulaire de vocabulaire des mains et des bras en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.015536Z", "updated_at": "2026-01-17T18:41:52.015547Z" } ], "exercises": [], "total_words": 18, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 18, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:52.007940Z", "updated_at": "2026-01-17T18:41:52.007954Z" }, { "id": 56, "level": 12, "level_display": "Corps", "sub_level": 3, "title": "Vocabulaire des jambes et des pieds", "description": "Jambes et pieds", "order": 3, "word_pairs": [ { "id": 787, "french_word": "cheville", "russian_word": "лодыжка", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Ankle", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.982000Z", "updated_at": "2026-01-17T18:41:51.982015Z", "is_active": true }, { "id": 782, "french_word": "cuisse", "russian_word": "бедро", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Thigh", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.956344Z", "updated_at": "2026-01-17T18:41:51.956354Z", "is_active": true }, { "id": 783, "french_word": "cuisses", "russian_word": "бёдра", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Thighs", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.961286Z", "updated_at": "2026-01-17T18:41:51.961295Z", "is_active": true }, { "id": 784, "french_word": "genou", "russian_word": "колено", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Knee", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.966773Z", "updated_at": "2026-01-17T18:41:51.966785Z", "is_active": true }, { "id": 785, "french_word": "genoux", "russian_word": "колени", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Knees", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.971620Z", "updated_at": "2026-01-17T18:41:51.971635Z", "is_active": true }, { "id": 780, "french_word": "hanche", "russian_word": "бедро", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Hip", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.946822Z", "updated_at": "2026-01-17T18:41:51.946834Z", "is_active": true }, { "id": 781, "french_word": "hanches", "russian_word": "бёдра", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Hips", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.951482Z", "updated_at": "2026-01-17T18:41:51.951495Z", "is_active": true }, { "id": 758, "french_word": "jambe", "russian_word": "нога", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Leg", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.836818Z", "updated_at": "2026-01-17T18:41:51.836829Z", "is_active": true }, { "id": 786, "french_word": "mollet", "russian_word": "икра", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Calf", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.977111Z", "updated_at": "2026-01-17T18:41:51.977121Z", "is_active": true }, { "id": 759, "french_word": "pied", "russian_word": "нога", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Foot", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.841886Z", "updated_at": "2026-01-17T18:41:51.841899Z", "is_active": true } ], "steps": [ { "id": 220, "sub_level": 56, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des jambes et des pieds", "description": "Jambes et pieds\n\nApprenez le vocabulaire de vocabulaire des jambes et des pieds en russe.", "is_required": true, "config": { "content": "Jambes et pieds\n\nApprenez le vocabulaire de vocabulaire des jambes et des pieds en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.035788Z", "updated_at": "2026-01-17T18:41:52.035800Z" }, { "id": 221, "sub_level": 56, "order": 2, "step_type": "game_flashcard", "step_type_display": "Game - Flashcard", "title": "Exercice 1 - Flashcard", "description": "Exercice 1 - Flashcard", "is_required": false, "config": { "game_mode": "flashcard", "instructions": "Pratiquez le vocabulaire de vocabulaire des jambes et des pieds avec le mode flashcard.", "min_score": 70, "level": 5, "sub_level": 3 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.039759Z", "updated_at": "2026-01-17T18:41:52.039770Z" }, { "id": 222, "sub_level": 56, "order": 3, "step_type": "game_matching", "step_type_display": "Game - Matching", "title": "Exercice 2 - Matching", "description": "Exercice 2 - Matching", "is_required": false, "config": { "game_mode": "matching", "instructions": "Pratiquez le vocabulaire de vocabulaire des jambes et des pieds avec le mode matching.", "min_score": 70, "level": 5, "sub_level": 3 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.042868Z", "updated_at": "2026-01-17T18:41:52.042879Z" }, { "id": 223, "sub_level": 56, "order": 4, "step_type": "game_multiple_choice", "step_type_display": "Game - Multiple Choice", "title": "Exercice 3 - Multiple Choice", "description": "Exercice 3 - Multiple Choice", "is_required": false, "config": { "game_mode": "multiple_choice", "instructions": "Pratiquez le vocabulaire de vocabulaire des jambes et des pieds avec le mode multiple_choice.", "min_score": 70, "level": 5, "sub_level": 3 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.046255Z", "updated_at": "2026-01-17T18:41:52.046269Z" } ], "videos": [], "learning_cards": [ { "id": 220, "sub_level": 56, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des jambes et des pieds", "description": "Jambes et pieds\n\nApprenez le vocabulaire de vocabulaire des jambes et des pieds en russe.", "is_required": true, "config": { "content": "Jambes et pieds\n\nApprenez le vocabulaire de vocabulaire des jambes et des pieds en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.035788Z", "updated_at": "2026-01-17T18:41:52.035800Z" } ], "exercises": [], "total_words": 10, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 10, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:52.027957Z", "updated_at": "2026-01-17T18:41:52.027971Z" }, { "id": 57, "level": 12, "level_display": "Corps", "sub_level": 4, "title": "Vocabulaire des organes internes", "description": "Organes internes", "order": 4, "word_pairs": [ { "id": 761, "french_word": "cerveau", "russian_word": "мозг", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Brain", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.852192Z", "updated_at": "2026-01-17T18:41:51.852203Z", "is_active": true }, { "id": 760, "french_word": "cœur", "russian_word": "сердце", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Heart", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.846892Z", "updated_at": "2026-01-17T18:41:51.846903Z", "is_active": true }, { "id": 762, "french_word": "foie", "russian_word": "печень", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Liver", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.857408Z", "updated_at": "2026-01-17T18:41:51.857419Z", "is_active": true }, { "id": 764, "french_word": "intestin", "russian_word": "кишка", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Intestine", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.867695Z", "updated_at": "2026-01-17T18:41:51.867705Z", "is_active": true }, { "id": 772, "french_word": "poumon", "russian_word": "лёгкое", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Lung", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.908054Z", "updated_at": "2026-01-17T18:41:51.908067Z", "is_active": true }, { "id": 773, "french_word": "poumons", "russian_word": "лёгкие", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Lungs", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.912751Z", "updated_at": "2026-01-17T18:41:51.912762Z", "is_active": true }, { "id": 763, "french_word": "rein", "russian_word": "почка", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Kidney", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.862519Z", "updated_at": "2026-01-17T18:41:51.862530Z", "is_active": true } ], "steps": [ { "id": 224, "sub_level": 57, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des organes internes", "description": "Organes internes\n\nApprenez le vocabulaire de vocabulaire des organes internes en russe.", "is_required": true, "config": { "content": "Organes internes\n\nApprenez le vocabulaire de vocabulaire des organes internes en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.056893Z", "updated_at": "2026-01-17T18:41:52.056905Z" }, { "id": 225, "sub_level": 57, "order": 2, "step_type": "game_flashcard", "step_type_display": "Game - Flashcard", "title": "Exercice 1 - Flashcard", "description": "Exercice 1 - Flashcard", "is_required": false, "config": { "game_mode": "flashcard", "instructions": "Pratiquez le vocabulaire de vocabulaire des organes internes avec le mode flashcard.", "min_score": 70, "level": 5, "sub_level": 4 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.060324Z", "updated_at": "2026-01-17T18:41:52.060335Z" }, { "id": 226, "sub_level": 57, "order": 3, "step_type": "game_matching", "step_type_display": "Game - Matching", "title": "Exercice 2 - Matching", "description": "Exercice 2 - Matching", "is_required": false, "config": { "game_mode": "matching", "instructions": "Pratiquez le vocabulaire de vocabulaire des organes internes avec le mode matching.", "min_score": 70, "level": 5, "sub_level": 4 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.063585Z", "updated_at": "2026-01-17T18:41:52.063596Z" }, { "id": 227, "sub_level": 57, "order": 4, "step_type": "game_multiple_choice", "step_type_display": "Game - Multiple Choice", "title": "Exercice 3 - Multiple Choice", "description": "Exercice 3 - Multiple Choice", "is_required": false, "config": { "game_mode": "multiple_choice", "instructions": "Pratiquez le vocabulaire de vocabulaire des organes internes avec le mode multiple_choice.", "min_score": 70, "level": 5, "sub_level": 4 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.066613Z", "updated_at": "2026-01-17T18:41:52.066623Z" } ], "videos": [], "learning_cards": [ { "id": 224, "sub_level": 57, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des organes internes", "description": "Organes internes\n\nApprenez le vocabulaire de vocabulaire des organes internes en russe.", "is_required": true, "config": { "content": "Organes internes\n\nApprenez le vocabulaire de vocabulaire des organes internes en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.056893Z", "updated_at": "2026-01-17T18:41:52.056905Z" } ], "exercises": [], "total_words": 7, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 7, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:52.049032Z", "updated_at": "2026-01-17T18:41:52.049044Z" }, { "id": 58, "level": 12, "level_display": "Corps", "sub_level": 5, "title": "Vocabulaire du système corporel", "description": "Système corporel", "order": 5, "word_pairs": [ { "id": 770, "french_word": "cheveu", "russian_word": "волос", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Hair", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.898468Z", "updated_at": "2026-01-17T18:41:51.898479Z", "is_active": true }, { "id": 771, "french_word": "cheveux", "russian_word": "волосы", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Hair", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.903276Z", "updated_at": "2026-01-17T18:41:51.903287Z", "is_active": true }, { "id": 766, "french_word": "muscle", "russian_word": "мышца", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Muscle", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.878024Z", "updated_at": "2026-01-17T18:41:51.878034Z", "is_active": true }, { "id": 767, "french_word": "muscles", "russian_word": "мышцы", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Muscles", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.883185Z", "updated_at": "2026-01-17T18:41:51.883198Z", "is_active": true }, { "id": 765, "french_word": "os", "russian_word": "кость", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Bone", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.872883Z", "updated_at": "2026-01-17T18:41:51.872896Z", "is_active": true }, { "id": 769, "french_word": "peau", "russian_word": "кожа", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Skin", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.893509Z", "updated_at": "2026-01-17T18:41:51.893519Z", "is_active": true }, { "id": 768, "french_word": "sang", "russian_word": "кровь", "category": "body", "category_display": "Body Parts", "level": 5, "level_display": "Corps", "comment": "Blood", "tags": [ { "id": 21, "name": "body", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:51.650601Z", "updated_at": "2026-01-17T18:41:51.650614Z" } ], "created_at": "2026-01-17T18:41:51.888558Z", "updated_at": "2026-01-17T18:41:51.888568Z", "is_active": true } ], "steps": [ { "id": 228, "sub_level": 58, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire du système corporel", "description": "Système corporel\n\nApprenez le vocabulaire de vocabulaire du système corporel en russe.", "is_required": true, "config": { "content": "Système corporel\n\nApprenez le vocabulaire de vocabulaire du système corporel en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.076102Z", "updated_at": "2026-01-17T18:41:52.076113Z" }, { "id": 229, "sub_level": 58, "order": 2, "step_type": "game_flashcard", "step_type_display": "Game - Flashcard", "title": "Exercice 1 - Flashcard", "description": "Exercice 1 - Flashcard", "is_required": false, "config": { "game_mode": "flashcard", "instructions": "Pratiquez le vocabulaire de vocabulaire du système corporel avec le mode flashcard.", "min_score": 70, "level": 5, "sub_level": 5 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.079318Z", "updated_at": "2026-01-17T18:41:52.079328Z" }, { "id": 230, "sub_level": 58, "order": 3, "step_type": "game_matching", "step_type_display": "Game - Matching", "title": "Exercice 2 - Matching", "description": "Exercice 2 - Matching", "is_required": false, "config": { "game_mode": "matching", "instructions": "Pratiquez le vocabulaire de vocabulaire du système corporel avec le mode matching.", "min_score": 70, "level": 5, "sub_level": 5 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.082462Z", "updated_at": "2026-01-17T18:41:52.082473Z" }, { "id": 231, "sub_level": 58, "order": 4, "step_type": "game_multiple_choice", "step_type_display": "Game - Multiple Choice", "title": "Exercice 3 - Multiple Choice", "description": "Exercice 3 - Multiple Choice", "is_required": false, "config": { "game_mode": "multiple_choice", "instructions": "Pratiquez le vocabulaire de vocabulaire du système corporel avec le mode multiple_choice.", "min_score": 70, "level": 5, "sub_level": 5 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.085563Z", "updated_at": "2026-01-17T18:41:52.085573Z" } ], "videos": [], "learning_cards": [ { "id": 228, "sub_level": 58, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire du système corporel", "description": "Système corporel\n\nApprenez le vocabulaire de vocabulaire du système corporel en russe.", "is_required": true, "config": { "content": "Système corporel\n\nApprenez le vocabulaire de vocabulaire du système corporel en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.076102Z", "updated_at": "2026-01-17T18:41:52.076113Z" } ], "exercises": [], "total_words": 7, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 7, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:52.069102Z", "updated_at": "2026-01-17T18:41:52.069118Z" }, { "id": 59, "level": 13, "level_display": "Temps et Météo", "sub_level": 1, "title": "Vocabulaire des unités de temps", "description": "Unités de temps", "order": 1, "word_pairs": [ { "id": 793, "french_word": "année", "russian_word": "год", "category": "time", "category_display": "Time", "level": 6, "level_display": "Temps et Météo", "comment": "Year", "tags": [ { "id": 22, "name": "time", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:52.091296Z", "updated_at": "2026-01-17T18:41:52.091306Z" } ], "created_at": "2026-01-17T18:41:52.119996Z", "updated_at": "2026-01-17T18:41:52.120010Z", "is_active": true }, { "id": 800, "french_word": "après-midi", "russian_word": "день", "category": "time", "category_display": "Time", "level": 6, "level_display": "Temps et Météo", "comment": "Afternoon", "tags": [ { "id": 22, "name": "time", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:52.091296Z", "updated_at": "2026-01-17T18:41:52.091306Z" } ], "created_at": "2026-01-17T18:41:52.153727Z", "updated_at": "2026-01-17T18:41:52.153739Z", "is_active": true }, { "id": 805, "french_word": "aube", "russian_word": "рассвет", "category": "time", "category_display": "Time", "level": 6, "level_display": "Temps et Météo", "comment": "Dawn", "tags": [ { "id": 22, "name": "time", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:52.091296Z", "updated_at": "2026-01-17T18:41:52.091306Z" } ], "created_at": "2026-01-17T18:41:52.178917Z", "updated_at": "2026-01-17T18:41:52.178928Z", "is_active": true }, { "id": 806, "french_word": "crépuscule", "russian_word": "сумерки", "category": "time", "category_display": "Time", "level": 6, "level_display": "Temps et Météo", "comment": "Twilight", "tags": [ { "id": 22, "name": "time", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:52.091296Z", "updated_at": "2026-01-17T18:41:52.091306Z" } ], "created_at": "2026-01-17T18:41:52.184036Z", "updated_at": "2026-01-17T18:41:52.184047Z", "is_active": true }, { "id": 789, "french_word": "heure", "russian_word": "час", "category": "time", "category_display": "Time", "level": 6, "level_display": "Temps et Météo", "comment": "Hour", "tags": [ { "id": 22, "name": "time", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:52.091296Z", "updated_at": "2026-01-17T18:41:52.091306Z" } ], "created_at": "2026-01-17T18:41:52.100971Z", "updated_at": "2026-01-17T18:41:52.100985Z", "is_active": true }, { "id": 790, "french_word": "jour", "russian_word": "день", "category": "time", "category_display": "Time", "level": 6, "level_display": "Temps et Météo", "comment": "Day", "tags": [ { "id": 22, "name": "time", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:52.091296Z", "updated_at": "2026-01-17T18:41:52.091306Z" } ], "created_at": "2026-01-17T18:41:52.105840Z", "updated_at": "2026-01-17T18:41:52.105851Z", "is_active": true }, { "id": 798, "french_word": "matin", "russian_word": "утро", "category": "time", "category_display": "Time", "level": 6, "level_display": "Temps et Météo", "comment": "Morning", "tags": [ { "id": 22, "name": "time", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:52.091296Z", "updated_at": "2026-01-17T18:41:52.091306Z" } ], "created_at": "2026-01-17T18:41:52.143999Z", "updated_at": "2026-01-17T18:41:52.144011Z", "is_active": true }, { "id": 799, "french_word": "midi", "russian_word": "полдень", "category": "time", "category_display": "Time", "level": 6, "level_display": "Temps et Météo", "comment": "Noon", "tags": [ { "id": 22, "name": "time", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:52.091296Z", "updated_at": "2026-01-17T18:41:52.091306Z" } ], "created_at": "2026-01-17T18:41:52.148868Z", "updated_at": "2026-01-17T18:41:52.148881Z", "is_active": true }, { "id": 804, "french_word": "minuit", "russian_word": "полночь", "category": "time", "category_display": "Time", "level": 6, "level_display": "Temps et Météo", "comment": "Midnight", "tags": [ { "id": 22, "name": "time", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:52.091296Z", "updated_at": "2026-01-17T18:41:52.091306Z" } ], "created_at": "2026-01-17T18:41:52.173884Z", "updated_at": "2026-01-17T18:41:52.173895Z", "is_active": true }, { "id": 794, "french_word": "minute", "russian_word": "минута", "category": "time", "category_display": "Time", "level": 6, "level_display": "Temps et Météo", "comment": "Minute", "tags": [ { "id": 22, "name": "time", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:52.091296Z", "updated_at": "2026-01-17T18:41:52.091306Z" } ], "created_at": "2026-01-17T18:41:52.124754Z", "updated_at": "2026-01-17T18:41:52.124768Z", "is_active": true }, { "id": 795, "french_word": "minutes", "russian_word": "минуты", "category": "time", "category_display": "Time", "level": 6, "level_display": "Temps et Météo", "comment": "Minutes", "tags": [ { "id": 22, "name": "time", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:52.091296Z", "updated_at": "2026-01-17T18:41:52.091306Z" } ], "created_at": "2026-01-17T18:41:52.129432Z", "updated_at": "2026-01-17T18:41:52.129443Z", "is_active": true }, { "id": 792, "french_word": "mois", "russian_word": "месяц", "category": "time", "category_display": "Time", "level": 6, "level_display": "Temps et Météo", "comment": "Month", "tags": [ { "id": 22, "name": "time", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:52.091296Z", "updated_at": "2026-01-17T18:41:52.091306Z" } ], "created_at": "2026-01-17T18:41:52.115255Z", "updated_at": "2026-01-17T18:41:52.115266Z", "is_active": true }, { "id": 803, "french_word": "nuit", "russian_word": "ночь", "category": "time", "category_display": "Time", "level": 6, "level_display": "Temps et Météo", "comment": "Night", "tags": [ { "id": 22, "name": "time", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:52.091296Z", "updated_at": "2026-01-17T18:41:52.091306Z" } ], "created_at": "2026-01-17T18:41:52.168568Z", "updated_at": "2026-01-17T18:41:52.168579Z", "is_active": true }, { "id": 796, "french_word": "seconde", "russian_word": "секунда", "category": "time", "category_display": "Time", "level": 6, "level_display": "Temps et Météo", "comment": "Second", "tags": [ { "id": 22, "name": "time", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:52.091296Z", "updated_at": "2026-01-17T18:41:52.091306Z" } ], "created_at": "2026-01-17T18:41:52.134180Z", "updated_at": "2026-01-17T18:41:52.134191Z", "is_active": true }, { "id": 797, "french_word": "secondes", "russian_word": "секунды", "category": "time", "category_display": "Time", "level": 6, "level_display": "Temps et Météo", "comment": "Seconds", "tags": [ { "id": 22, "name": "time", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:52.091296Z", "updated_at": "2026-01-17T18:41:52.091306Z" } ], "created_at": "2026-01-17T18:41:52.139011Z", "updated_at": "2026-01-17T18:41:52.139023Z", "is_active": true }, { "id": 791, "french_word": "semaine", "russian_word": "неделя", "category": "time", "category_display": "Time", "level": 6, "level_display": "Temps et Météo", "comment": "Week", "tags": [ { "id": 22, "name": "time", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:52.091296Z", "updated_at": "2026-01-17T18:41:52.091306Z" } ], "created_at": "2026-01-17T18:41:52.110519Z", "updated_at": "2026-01-17T18:41:52.110531Z", "is_active": true }, { "id": 801, "french_word": "soir", "russian_word": "вечер", "category": "time", "category_display": "Time", "level": 6, "level_display": "Temps et Météo", "comment": "Evening", "tags": [ { "id": 22, "name": "time", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:52.091296Z", "updated_at": "2026-01-17T18:41:52.091306Z" } ], "created_at": "2026-01-17T18:41:52.158619Z", "updated_at": "2026-01-17T18:41:52.158630Z", "is_active": true }, { "id": 802, "french_word": "soirée", "russian_word": "вечер", "category": "time", "category_display": "Time", "level": 6, "level_display": "Temps et Météo", "comment": "Evening", "tags": [ { "id": 22, "name": "time", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:52.091296Z", "updated_at": "2026-01-17T18:41:52.091306Z" } ], "created_at": "2026-01-17T18:41:52.163535Z", "updated_at": "2026-01-17T18:41:52.163546Z", "is_active": true }, { "id": 788, "french_word": "temps", "russian_word": "время", "category": "time", "category_display": "Time", "level": 6, "level_display": "Temps et Météo", "comment": "Time", "tags": [ { "id": 22, "name": "time", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:52.091296Z", "updated_at": "2026-01-17T18:41:52.091306Z" } ], "created_at": "2026-01-17T18:41:52.096212Z", "updated_at": "2026-01-17T18:41:52.096225Z", "is_active": true } ], "steps": [ { "id": 232, "sub_level": 59, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des unités de temps", "description": "Unités de temps\n\nApprenez le vocabulaire de vocabulaire des unités de temps en russe.", "is_required": true, "config": { "content": "Unités de temps\n\nApprenez le vocabulaire de vocabulaire des unités de temps en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.378264Z", "updated_at": "2026-01-17T18:41:52.378275Z" }, { "id": 233, "sub_level": 59, "order": 2, "step_type": "game_flashcard", "step_type_display": "Game - Flashcard", "title": "Exercice 1 - Flashcard", "description": "Exercice 1 - Flashcard", "is_required": false, "config": { "game_mode": "flashcard", "instructions": "Pratiquez le vocabulaire de vocabulaire des unités de temps avec le mode flashcard.", "min_score": 70, "level": 6, "sub_level": 1 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.382057Z", "updated_at": "2026-01-17T18:41:52.382068Z" }, { "id": 234, "sub_level": 59, "order": 3, "step_type": "game_matching", "step_type_display": "Game - Matching", "title": "Exercice 2 - Matching", "description": "Exercice 2 - Matching", "is_required": false, "config": { "game_mode": "matching", "instructions": "Pratiquez le vocabulaire de vocabulaire des unités de temps avec le mode matching.", "min_score": 70, "level": 6, "sub_level": 1 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.384967Z", "updated_at": "2026-01-17T18:41:52.384977Z" }, { "id": 235, "sub_level": 59, "order": 4, "step_type": "game_multiple_choice", "step_type_display": "Game - Multiple Choice", "title": "Exercice 3 - Multiple Choice", "description": "Exercice 3 - Multiple Choice", "is_required": false, "config": { "game_mode": "multiple_choice", "instructions": "Pratiquez le vocabulaire de vocabulaire des unités de temps avec le mode multiple_choice.", "min_score": 70, "level": 6, "sub_level": 1 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.388031Z", "updated_at": "2026-01-17T18:41:52.388042Z" } ], "videos": [], "learning_cards": [ { "id": 232, "sub_level": 59, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des unités de temps", "description": "Unités de temps\n\nApprenez le vocabulaire de vocabulaire des unités de temps en russe.", "is_required": true, "config": { "content": "Unités de temps\n\nApprenez le vocabulaire de vocabulaire des unités de temps en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.378264Z", "updated_at": "2026-01-17T18:41:52.378275Z" } ], "exercises": [], "total_words": 19, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 19, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:52.370733Z", "updated_at": "2026-01-17T18:41:52.370743Z" }, { "id": 60, "level": 13, "level_display": "Temps et Météo", "sub_level": 2, "title": "Vocabulaire des jours de la semaine", "description": "Jours de la semaine", "order": 2, "word_pairs": [ { "id": 813, "french_word": "dimanche", "russian_word": "воскресенье", "category": "time", "category_display": "Time", "level": 6, "level_display": "Temps et Météo", "comment": "Sunday", "tags": [ { "id": 22, "name": "time", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:52.091296Z", "updated_at": "2026-01-17T18:41:52.091306Z" } ], "created_at": "2026-01-17T18:41:52.219548Z", "updated_at": "2026-01-17T18:41:52.219559Z", "is_active": true }, { "id": 810, "french_word": "jeudi", "russian_word": "четверг", "category": "time", "category_display": "Time", "level": 6, "level_display": "Temps et Météo", "comment": "Thursday", "tags": [ { "id": 22, "name": "time", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:52.091296Z", "updated_at": "2026-01-17T18:41:52.091306Z" } ], "created_at": "2026-01-17T18:41:52.204159Z", "updated_at": "2026-01-17T18:41:52.204172Z", "is_active": true }, { "id": 807, "french_word": "lundi", "russian_word": "понедельник", "category": "time", "category_display": "Time", "level": 6, "level_display": "Temps et Météo", "comment": "Monday", "tags": [ { "id": 22, "name": "time", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:52.091296Z", "updated_at": "2026-01-17T18:41:52.091306Z" } ], "created_at": "2026-01-17T18:41:52.189071Z", "updated_at": "2026-01-17T18:41:52.189084Z", "is_active": true }, { "id": 808, "french_word": "mardi", "russian_word": "вторник", "category": "time", "category_display": "Time", "level": 6, "level_display": "Temps et Météo", "comment": "Tuesday", "tags": [ { "id": 22, "name": "time", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:52.091296Z", "updated_at": "2026-01-17T18:41:52.091306Z" } ], "created_at": "2026-01-17T18:41:52.194094Z", "updated_at": "2026-01-17T18:41:52.194107Z", "is_active": true }, { "id": 809, "french_word": "mercredi", "russian_word": "среда", "category": "time", "category_display": "Time", "level": 6, "level_display": "Temps et Météo", "comment": "Wednesday", "tags": [ { "id": 22, "name": "time", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:52.091296Z", "updated_at": "2026-01-17T18:41:52.091306Z" } ], "created_at": "2026-01-17T18:41:52.199175Z", "updated_at": "2026-01-17T18:41:52.199185Z", "is_active": true }, { "id": 812, "french_word": "samedi", "russian_word": "суббота", "category": "time", "category_display": "Time", "level": 6, "level_display": "Temps et Météo", "comment": "Saturday", "tags": [ { "id": 22, "name": "time", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:52.091296Z", "updated_at": "2026-01-17T18:41:52.091306Z" } ], "created_at": "2026-01-17T18:41:52.214415Z", "updated_at": "2026-01-17T18:41:52.214435Z", "is_active": true }, { "id": 811, "french_word": "vendredi", "russian_word": "пятница", "category": "time", "category_display": "Time", "level": 6, "level_display": "Temps et Météo", "comment": "Friday", "tags": [ { "id": 22, "name": "time", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:52.091296Z", "updated_at": "2026-01-17T18:41:52.091306Z" } ], "created_at": "2026-01-17T18:41:52.209225Z", "updated_at": "2026-01-17T18:41:52.209235Z", "is_active": true } ], "steps": [ { "id": 236, "sub_level": 60, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des jours de la semaine", "description": "Jours de la semaine\n\nApprenez le vocabulaire de vocabulaire des jours de la semaine en russe.", "is_required": true, "config": { "content": "Jours de la semaine\n\nApprenez le vocabulaire de vocabulaire des jours de la semaine en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.397613Z", "updated_at": "2026-01-17T18:41:52.397623Z" }, { "id": 237, "sub_level": 60, "order": 2, "step_type": "game_flashcard", "step_type_display": "Game - Flashcard", "title": "Exercice 1 - Flashcard", "description": "Exercice 1 - Flashcard", "is_required": false, "config": { "game_mode": "flashcard", "instructions": "Pratiquez le vocabulaire de vocabulaire des jours de la semaine avec le mode flashcard.", "min_score": 70, "level": 6, "sub_level": 2 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.400972Z", "updated_at": "2026-01-17T18:41:52.400982Z" }, { "id": 238, "sub_level": 60, "order": 3, "step_type": "game_matching", "step_type_display": "Game - Matching", "title": "Exercice 2 - Matching", "description": "Exercice 2 - Matching", "is_required": false, "config": { "game_mode": "matching", "instructions": "Pratiquez le vocabulaire de vocabulaire des jours de la semaine avec le mode matching.", "min_score": 70, "level": 6, "sub_level": 2 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.404301Z", "updated_at": "2026-01-17T18:41:52.404312Z" }, { "id": 239, "sub_level": 60, "order": 4, "step_type": "game_multiple_choice", "step_type_display": "Game - Multiple Choice", "title": "Exercice 3 - Multiple Choice", "description": "Exercice 3 - Multiple Choice", "is_required": false, "config": { "game_mode": "multiple_choice", "instructions": "Pratiquez le vocabulaire de vocabulaire des jours de la semaine avec le mode multiple_choice.", "min_score": 70, "level": 6, "sub_level": 2 }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.407519Z", "updated_at": "2026-01-17T18:41:52.407529Z" } ], "videos": [], "learning_cards": [ { "id": 236, "sub_level": 60, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Vocabulaire des jours de la semaine", "description": "Jours de la semaine\n\nApprenez le vocabulaire de vocabulaire des jours de la semaine en russe.", "is_required": true, "config": { "content": "Jours de la semaine\n\nApprenez le vocabulaire de vocabulaire des jours de la semaine en russe.", "concept_type": "vocabulary" }, "is_active": true, "is_completed": false, "progress": { "is_completed": false, "completed_at": null, "score": null, "attempts": 0, "best_score": null }, "created_at": "2026-01-17T18:41:52.397613Z", "updated_at": "2026-01-17T18:41:52.397623Z" } ], "exercises": [], "total_words": 7, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 7, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:52.390540Z", "updated_at": "2026-01-17T18:41:52.390552Z" } ] }