Sub Level List
ViewSet for sub-levels.
GET /api/sub-levels/?format=api&page=5
{ "count": 96, "next": null, "previous": "http://roskov.driad.fr/api/sub-levels/?format=api&page=4", "results": [ { "id": 81, "level": 17, "level_display": "Adverbes", "sub_level": 3, "title": "Adverbes exprimant la quantité", "description": "Adverbes de quantité", "order": 3, "word_pairs": [ { "id": 382, "french_word": "assez", "russian_word": "достаточно", "category": "adverb", "category_display": "Adverb", "level": 5, "level_display": "Small Phrases", "comment": "Enough", "tags": [ { "id": 27, "name": "adverb", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.615110Z", "updated_at": "2026-01-17T18:41:53.615125Z" } ], "created_at": "2026-01-17T18:41:48.238455Z", "updated_at": "2026-01-17T18:41:53.784611Z", "is_active": true }, { "id": 52, "french_word": "beaucoup", "russian_word": "много", "category": "adverb", "category_display": "Adverb", "level": 2, "level_display": "Basic Words", "comment": "Much/Many", "tags": [ { "id": 27, "name": "adverb", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.615110Z", "updated_at": "2026-01-17T18:41:53.615125Z" } ], "created_at": "2026-01-17T18:41:46.014668Z", "updated_at": "2026-01-17T18:41:53.769119Z", "is_active": true }, { "id": 1014, "french_word": "complètement", "russian_word": "полностью", "category": "adverb", "category_display": "Adverb", "level": 10, "level_display": "Adverbes", "comment": "Completely", "tags": [ { "id": 27, "name": "adverb", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.615110Z", "updated_at": "2026-01-17T18:41:53.615125Z" } ], "created_at": "2026-01-17T18:41:53.810222Z", "updated_at": "2026-01-17T18:41:53.810235Z", "is_active": true }, { "id": 53, "french_word": "peu", "russian_word": "мало", "category": "adverb", "category_display": "Adverb", "level": 2, "level_display": "Basic Words", "comment": "Little/Few", "tags": [ { "id": 27, "name": "adverb", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.615110Z", "updated_at": "2026-01-17T18:41:53.615125Z" } ], "created_at": "2026-01-17T18:41:46.017462Z", "updated_at": "2026-01-17T18:41:53.775001Z", "is_active": true }, { "id": 1012, "french_word": "plutôt", "russian_word": "скорее", "category": "adverb", "category_display": "Adverb", "level": 10, "level_display": "Adverbes", "comment": "Rather", "tags": [ { "id": 27, "name": "adverb", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.615110Z", "updated_at": "2026-01-17T18:41:53.615125Z" } ], "created_at": "2026-01-17T18:41:53.800462Z", "updated_at": "2026-01-17T18:41:53.800475Z", "is_active": true }, { "id": 1013, "french_word": "presque", "russian_word": "почти", "category": "adverb", "category_display": "Adverb", "level": 10, "level_display": "Adverbes", "comment": "Almost", "tags": [ { "id": 27, "name": "adverb", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.615110Z", "updated_at": "2026-01-17T18:41:53.615125Z" } ], "created_at": "2026-01-17T18:41:53.805344Z", "updated_at": "2026-01-17T18:41:53.805357Z", "is_active": true }, { "id": 383, "french_word": "trop", "russian_word": "слишком", "category": "adverb", "category_display": "Adverb", "level": 5, "level_display": "Small Phrases", "comment": "Too much", "tags": [ { "id": 27, "name": "adverb", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.615110Z", "updated_at": "2026-01-17T18:41:53.615125Z" } ], "created_at": "2026-01-17T18:41:48.241200Z", "updated_at": "2026-01-17T18:41:53.790154Z", "is_active": true }, { "id": 1011, "french_word": "très", "russian_word": "очень", "category": "adverb", "category_display": "Adverb", "level": 10, "level_display": "Adverbes", "comment": "Very", "tags": [ { "id": 27, "name": "adverb", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.615110Z", "updated_at": "2026-01-17T18:41:53.615125Z" } ], "created_at": "2026-01-17T18:41:53.795300Z", "updated_at": "2026-01-17T18:41:53.795314Z", "is_active": true } ], "steps": [ { "id": 320, "sub_level": 81, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Adverbes exprimant la quantité", "description": "Adverbes de quantité\n\nApprenez les adverbes en russe.", "is_required": true, "config": { "content": "Adverbes de quantité\n\nApprenez les adverbes 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:53.912174Z", "updated_at": "2026-01-17T18:41:53.912186Z" }, { "id": 321, "sub_level": 81, "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 les adverbes avec le mode flashcard.", "min_score": 70, "level": 10, "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:53.915866Z", "updated_at": "2026-01-17T18:41:53.915877Z" }, { "id": 322, "sub_level": 81, "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 les adverbes avec le mode matching.", "min_score": 70, "level": 10, "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:53.919283Z", "updated_at": "2026-01-17T18:41:53.919293Z" }, { "id": 323, "sub_level": 81, "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 les adverbes avec le mode multiple_choice.", "min_score": 70, "level": 10, "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:53.922726Z", "updated_at": "2026-01-17T18:41:53.922736Z" } ], "videos": [], "learning_cards": [ { "id": 320, "sub_level": 81, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Adverbes exprimant la quantité", "description": "Adverbes de quantité\n\nApprenez les adverbes en russe.", "is_required": true, "config": { "content": "Adverbes de quantité\n\nApprenez les adverbes 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:53.912174Z", "updated_at": "2026-01-17T18:41:53.912186Z" } ], "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:53.905087Z", "updated_at": "2026-01-17T18:41:53.905097Z" }, { "id": 82, "level": 17, "level_display": "Adverbes", "sub_level": 4, "title": "Adverbes exprimant la manière", "description": "Adverbes de manière", "order": 4, "word_pairs": [ { "id": 995, "french_word": "bien", "russian_word": "хорошо", "category": "adverb", "category_display": "Adverb", "level": 10, "level_display": "Adverbes", "comment": "Well", "tags": [ { "id": 27, "name": "adverb", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.615110Z", "updated_at": "2026-01-17T18:41:53.615125Z" } ], "created_at": "2026-01-17T18:41:53.647091Z", "updated_at": "2026-01-17T18:41:53.647116Z", "is_active": true }, { "id": 998, "french_word": "lentement", "russian_word": "медленно", "category": "adverb", "category_display": "Adverb", "level": 10, "level_display": "Adverbes", "comment": "Slowly", "tags": [ { "id": 27, "name": "adverb", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.615110Z", "updated_at": "2026-01-17T18:41:53.615125Z" } ], "created_at": "2026-01-17T18:41:53.663248Z", "updated_at": "2026-01-17T18:41:53.663270Z", "is_active": true }, { "id": 996, "french_word": "mal", "russian_word": "плохо", "category": "adverb", "category_display": "Adverb", "level": 10, "level_display": "Adverbes", "comment": "Badly", "tags": [ { "id": 27, "name": "adverb", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.615110Z", "updated_at": "2026-01-17T18:41:53.615125Z" } ], "created_at": "2026-01-17T18:41:53.652588Z", "updated_at": "2026-01-17T18:41:53.652607Z", "is_active": true }, { "id": 997, "french_word": "vite", "russian_word": "быстро", "category": "adverb", "category_display": "Adverb", "level": 10, "level_display": "Adverbes", "comment": "Quickly", "tags": [ { "id": 27, "name": "adverb", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.615110Z", "updated_at": "2026-01-17T18:41:53.615125Z" } ], "created_at": "2026-01-17T18:41:53.657908Z", "updated_at": "2026-01-17T18:41:53.657930Z", "is_active": true }, { "id": 1015, "french_word": "vraiment", "russian_word": "действительно", "category": "adverb", "category_display": "Adverb", "level": 10, "level_display": "Adverbes", "comment": "Really", "tags": [ { "id": 27, "name": "adverb", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.615110Z", "updated_at": "2026-01-17T18:41:53.615125Z" } ], "created_at": "2026-01-17T18:41:53.815160Z", "updated_at": "2026-01-17T18:41:53.815175Z", "is_active": true } ], "steps": [ { "id": 324, "sub_level": 82, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Adverbes exprimant la manière", "description": "Adverbes de manière\n\nApprenez les adverbes en russe.", "is_required": true, "config": { "content": "Adverbes de manière\n\nApprenez les adverbes 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:53.933773Z", "updated_at": "2026-01-17T18:41:53.933787Z" }, { "id": 325, "sub_level": 82, "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 les adverbes avec le mode flashcard.", "min_score": 70, "level": 10, "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:53.937572Z", "updated_at": "2026-01-17T18:41:53.937585Z" }, { "id": 326, "sub_level": 82, "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 les adverbes avec le mode matching.", "min_score": 70, "level": 10, "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:53.940898Z", "updated_at": "2026-01-17T18:41:53.940911Z" }, { "id": 327, "sub_level": 82, "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 les adverbes avec le mode multiple_choice.", "min_score": 70, "level": 10, "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:53.944362Z", "updated_at": "2026-01-17T18:41:53.944374Z" } ], "videos": [], "learning_cards": [ { "id": 324, "sub_level": 82, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Adverbes exprimant la manière", "description": "Adverbes de manière\n\nApprenez les adverbes en russe.", "is_required": true, "config": { "content": "Adverbes de manière\n\nApprenez les adverbes 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:53.933773Z", "updated_at": "2026-01-17T18:41:53.933787Z" } ], "exercises": [], "total_words": 5, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 5, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:53.925559Z", "updated_at": "2026-01-17T18:41:53.925575Z" }, { "id": 83, "level": 17, "level_display": "Adverbes", "sub_level": 5, "title": "Adverbes exprimant la fréquence", "description": "Adverbes de fréquence", "order": 5, "word_pairs": [ { "id": 1002, "french_word": "jamais", "russian_word": "никогда", "category": "adverb", "category_display": "Adverb", "level": 10, "level_display": "Adverbes", "comment": "Never", "tags": [ { "id": 27, "name": "adverb", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.615110Z", "updated_at": "2026-01-17T18:41:53.615125Z" } ], "created_at": "2026-01-17T18:41:53.685412Z", "updated_at": "2026-01-17T18:41:53.685441Z", "is_active": true }, { "id": 1003, "french_word": "parfois", "russian_word": "иногда", "category": "adverb", "category_display": "Adverb", "level": 10, "level_display": "Adverbes", "comment": "Sometimes", "tags": [ { "id": 27, "name": "adverb", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.615110Z", "updated_at": "2026-01-17T18:41:53.615125Z" } ], "created_at": "2026-01-17T18:41:53.692684Z", "updated_at": "2026-01-17T18:41:53.692710Z", "is_active": true }, { "id": 1000, "french_word": "rarement", "russian_word": "редко", "category": "adverb", "category_display": "Adverb", "level": 10, "level_display": "Adverbes", "comment": "Rarely", "tags": [ { "id": 27, "name": "adverb", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.615110Z", "updated_at": "2026-01-17T18:41:53.615125Z" } ], "created_at": "2026-01-17T18:41:53.674432Z", "updated_at": "2026-01-17T18:41:53.674454Z", "is_active": true }, { "id": 999, "french_word": "souvent", "russian_word": "часто", "category": "adverb", "category_display": "Adverb", "level": 10, "level_display": "Adverbes", "comment": "Often", "tags": [ { "id": 27, "name": "adverb", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.615110Z", "updated_at": "2026-01-17T18:41:53.615125Z" } ], "created_at": "2026-01-17T18:41:53.668861Z", "updated_at": "2026-01-17T18:41:53.668885Z", "is_active": true }, { "id": 1001, "french_word": "toujours", "russian_word": "всегда", "category": "adverb", "category_display": "Adverb", "level": 10, "level_display": "Adverbes", "comment": "Always", "tags": [ { "id": 27, "name": "adverb", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.615110Z", "updated_at": "2026-01-17T18:41:53.615125Z" } ], "created_at": "2026-01-17T18:41:53.679883Z", "updated_at": "2026-01-17T18:41:53.679904Z", "is_active": true } ], "steps": [ { "id": 328, "sub_level": 83, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Adverbes exprimant la fréquence", "description": "Adverbes de fréquence\n\nApprenez les adverbes en russe.", "is_required": true, "config": { "content": "Adverbes de fréquence\n\nApprenez les adverbes 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:53.954119Z", "updated_at": "2026-01-17T18:41:53.954134Z" }, { "id": 329, "sub_level": 83, "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 les adverbes avec le mode flashcard.", "min_score": 70, "level": 10, "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:53.957693Z", "updated_at": "2026-01-17T18:41:53.957706Z" }, { "id": 330, "sub_level": 83, "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 les adverbes avec le mode matching.", "min_score": 70, "level": 10, "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:53.960990Z", "updated_at": "2026-01-17T18:41:53.961001Z" }, { "id": 331, "sub_level": 83, "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 les adverbes avec le mode multiple_choice.", "min_score": 70, "level": 10, "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:53.964232Z", "updated_at": "2026-01-17T18:41:53.964243Z" } ], "videos": [], "learning_cards": [ { "id": 328, "sub_level": 83, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Adverbes exprimant la fréquence", "description": "Adverbes de fréquence\n\nApprenez les adverbes en russe.", "is_required": true, "config": { "content": "Adverbes de fréquence\n\nApprenez les adverbes 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:53.954119Z", "updated_at": "2026-01-17T18:41:53.954134Z" } ], "exercises": [], "total_words": 5, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 5, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:53.947127Z", "updated_at": "2026-01-17T18:41:53.947140Z" }, { "id": 84, "level": 17, "level_display": "Adverbes", "sub_level": 6, "title": "Autres adverbes utiles", "description": "Adverbes supplémentaires", "order": 6, "word_pairs": [ { "id": 1017, "french_word": "aussi", "russian_word": "тоже", "category": "adverb", "category_display": "Adverb", "level": 10, "level_display": "Adverbes", "comment": "Also", "tags": [ { "id": 27, "name": "adverb", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.615110Z", "updated_at": "2026-01-17T18:41:53.615125Z" } ], "created_at": "2026-01-17T18:41:53.826582Z", "updated_at": "2026-01-17T18:41:53.826614Z", "is_active": true }, { "id": 1022, "french_word": "certainement", "russian_word": "конечно", "category": "adverb", "category_display": "Adverb", "level": 10, "level_display": "Adverbes", "comment": "Certainly", "tags": [ { "id": 27, "name": "adverb", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.615110Z", "updated_at": "2026-01-17T18:41:53.615125Z" } ], "created_at": "2026-01-17T18:41:53.856611Z", "updated_at": "2026-01-17T18:41:53.856624Z", "is_active": true }, { "id": 1018, "french_word": "même", "russian_word": "даже", "category": "adverb", "category_display": "Adverb", "level": 10, "level_display": "Adverbes", "comment": "Even", "tags": [ { "id": 27, "name": "adverb", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.615110Z", "updated_at": "2026-01-17T18:41:53.615125Z" } ], "created_at": "2026-01-17T18:41:53.832852Z", "updated_at": "2026-01-17T18:41:53.832886Z", "is_active": true }, { "id": 1020, "french_word": "peut-être", "russian_word": "возможно", "category": "adverb", "category_display": "Adverb", "level": 10, "level_display": "Adverbes", "comment": "Perhaps/Maybe", "tags": [ { "id": 27, "name": "adverb", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.615110Z", "updated_at": "2026-01-17T18:41:53.615125Z" } ], "created_at": "2026-01-17T18:41:53.845502Z", "updated_at": "2026-01-17T18:41:53.845531Z", "is_active": true }, { "id": 1021, "french_word": "probablement", "russian_word": "вероятно", "category": "adverb", "category_display": "Adverb", "level": 10, "level_display": "Adverbes", "comment": "Probably", "tags": [ { "id": 27, "name": "adverb", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.615110Z", "updated_at": "2026-01-17T18:41:53.615125Z" } ], "created_at": "2026-01-17T18:41:53.851049Z", "updated_at": "2026-01-17T18:41:53.851073Z", "is_active": true }, { "id": 1016, "french_word": "seulement", "russian_word": "только", "category": "adverb", "category_display": "Adverb", "level": 10, "level_display": "Adverbes", "comment": "Only", "tags": [ { "id": 27, "name": "adverb", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.615110Z", "updated_at": "2026-01-17T18:41:53.615125Z" } ], "created_at": "2026-01-17T18:41:53.820650Z", "updated_at": "2026-01-17T18:41:53.820679Z", "is_active": true }, { "id": 1019, "french_word": "surtout", "russian_word": "особенно", "category": "adverb", "category_display": "Adverb", "level": 10, "level_display": "Adverbes", "comment": "Especially", "tags": [ { "id": 27, "name": "adverb", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.615110Z", "updated_at": "2026-01-17T18:41:53.615125Z" } ], "created_at": "2026-01-17T18:41:53.838753Z", "updated_at": "2026-01-17T18:41:53.838791Z", "is_active": true } ], "steps": [ { "id": 332, "sub_level": 84, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Autres adverbes utiles", "description": "Adverbes supplémentaires\n\nApprenez les adverbes en russe.", "is_required": true, "config": { "content": "Adverbes supplémentaires\n\nApprenez les adverbes 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:53.973967Z", "updated_at": "2026-01-17T18:41:53.973979Z" }, { "id": 333, "sub_level": 84, "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 les adverbes avec le mode flashcard.", "min_score": 70, "level": 10, "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:53.977521Z", "updated_at": "2026-01-17T18:41:53.977531Z" }, { "id": 334, "sub_level": 84, "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 les adverbes avec le mode matching.", "min_score": 70, "level": 10, "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:53.981273Z", "updated_at": "2026-01-17T18:41:53.981284Z" }, { "id": 335, "sub_level": 84, "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 les adverbes avec le mode multiple_choice.", "min_score": 70, "level": 10, "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:53.985098Z", "updated_at": "2026-01-17T18:41:53.985108Z" } ], "videos": [], "learning_cards": [ { "id": 332, "sub_level": 84, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Autres adverbes utiles", "description": "Adverbes supplémentaires\n\nApprenez les adverbes en russe.", "is_required": true, "config": { "content": "Adverbes supplémentaires\n\nApprenez les adverbes 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:53.973967Z", "updated_at": "2026-01-17T18:41:53.973979Z" } ], "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:53.966904Z", "updated_at": "2026-01-17T18:41:53.966917Z" }, { "id": 85, "level": 18, "level_display": "Conjonctions", "sub_level": 1, "title": "Conjonctions de coordination", "description": "Conjonctions de coordination", "order": 1, "word_pairs": [ { "id": 1029, "french_word": "car", "russian_word": "так как", "category": "conjunction", "category_display": "Conjunction", "level": 11, "level_display": "Conjonctions", "comment": "For/Because", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:54.029863Z", "updated_at": "2026-01-17T18:41:54.029879Z", "is_active": true }, { "id": 1028, "french_word": "donc", "russian_word": "поэтому", "category": "conjunction", "category_display": "Conjunction", "level": 11, "level_display": "Conjonctions", "comment": "Therefore", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:54.024613Z", "updated_at": "2026-01-17T18:41:54.024629Z", "is_active": true }, { "id": 1023, "french_word": "et", "russian_word": "и", "category": "conjunction", "category_display": "Conjunction", "level": 11, "level_display": "Conjonctions", "comment": "And", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:53.993924Z", "updated_at": "2026-01-17T18:41:53.993940Z", "is_active": true }, { "id": 1025, "french_word": "mais", "russian_word": "но", "category": "conjunction", "category_display": "Conjunction", "level": 11, "level_display": "Conjonctions", "comment": "But", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:54.003992Z", "updated_at": "2026-01-17T18:41:54.004006Z", "is_active": true }, { "id": 1024, "french_word": "ou", "russian_word": "или", "category": "conjunction", "category_display": "Conjunction", "level": 11, "level_display": "Conjonctions", "comment": "Or", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:53.998967Z", "updated_at": "2026-01-17T18:41:53.998981Z", "is_active": true } ], "steps": [ { "id": 336, "sub_level": 85, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Conjonctions de coordination", "description": "Conjonctions de coordination\n\nApprenez les conjonctions en russe.", "is_required": true, "config": { "content": "Conjonctions de coordination\n\nApprenez les conjonctions 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:54.143067Z", "updated_at": "2026-01-17T18:41:54.143078Z" }, { "id": 337, "sub_level": 85, "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 les conjonctions avec le mode flashcard.", "min_score": 70, "level": 11, "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:54.146534Z", "updated_at": "2026-01-17T18:41:54.146544Z" }, { "id": 338, "sub_level": 85, "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 les conjonctions avec le mode matching.", "min_score": 70, "level": 11, "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:54.149639Z", "updated_at": "2026-01-17T18:41:54.149649Z" }, { "id": 339, "sub_level": 85, "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 les conjonctions avec le mode multiple_choice.", "min_score": 70, "level": 11, "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:54.152698Z", "updated_at": "2026-01-17T18:41:54.152709Z" } ], "videos": [], "learning_cards": [ { "id": 336, "sub_level": 85, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Conjonctions de coordination", "description": "Conjonctions de coordination\n\nApprenez les conjonctions en russe.", "is_required": true, "config": { "content": "Conjonctions de coordination\n\nApprenez les conjonctions 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:54.143067Z", "updated_at": "2026-01-17T18:41:54.143078Z" } ], "exercises": [], "total_words": 5, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 5, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:54.135935Z", "updated_at": "2026-01-17T18:41:54.135951Z" }, { "id": 86, "level": 18, "level_display": "Conjonctions", "sub_level": 2, "title": "Conjonctions exprimant la cause", "description": "Conjonctions de cause", "order": 2, "word_pairs": [ { "id": 1029, "french_word": "car", "russian_word": "так как", "category": "conjunction", "category_display": "Conjunction", "level": 11, "level_display": "Conjonctions", "comment": "For/Because", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:54.029863Z", "updated_at": "2026-01-17T18:41:54.029879Z", "is_active": true }, { "id": 1026, "french_word": "parce que", "russian_word": "потому что", "category": "conjunction", "category_display": "Conjunction", "level": 11, "level_display": "Conjonctions", "comment": "Because", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:54.009070Z", "updated_at": "2026-01-17T18:41:54.009087Z", "is_active": true }, { "id": 1030, "french_word": "puisque", "russian_word": "поскольку", "category": "conjunction", "category_display": "Conjunction", "level": 11, "level_display": "Conjonctions", "comment": "Since", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:54.035047Z", "updated_at": "2026-01-17T18:41:54.035062Z", "is_active": true } ], "steps": [ { "id": 340, "sub_level": 86, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Conjonctions exprimant la cause", "description": "Conjonctions de cause\n\nApprenez les conjonctions en russe.", "is_required": true, "config": { "content": "Conjonctions de cause\n\nApprenez les conjonctions 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:54.162055Z", "updated_at": "2026-01-17T18:41:54.162066Z" }, { "id": 341, "sub_level": 86, "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 les conjonctions avec le mode flashcard.", "min_score": 70, "level": 11, "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:54.165363Z", "updated_at": "2026-01-17T18:41:54.165373Z" }, { "id": 342, "sub_level": 86, "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 les conjonctions avec le mode matching.", "min_score": 70, "level": 11, "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:54.168503Z", "updated_at": "2026-01-17T18:41:54.168513Z" }, { "id": 343, "sub_level": 86, "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 les conjonctions avec le mode multiple_choice.", "min_score": 70, "level": 11, "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:54.171590Z", "updated_at": "2026-01-17T18:41:54.171600Z" } ], "videos": [], "learning_cards": [ { "id": 340, "sub_level": 86, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Conjonctions exprimant la cause", "description": "Conjonctions de cause\n\nApprenez les conjonctions en russe.", "is_required": true, "config": { "content": "Conjonctions de cause\n\nApprenez les conjonctions 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:54.162055Z", "updated_at": "2026-01-17T18:41:54.162066Z" } ], "exercises": [], "total_words": 3, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 3, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:54.155213Z", "updated_at": "2026-01-17T18:41:54.155224Z" }, { "id": 87, "level": 18, "level_display": "Conjonctions", "sub_level": 3, "title": "Conjonctions exprimant le temps", "description": "Conjonctions temporelles", "order": 3, "word_pairs": [ { "id": 1031, "french_word": "alors", "russian_word": "тогда", "category": "conjunction", "category_display": "Conjunction", "level": 11, "level_display": "Conjonctions", "comment": "Then", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:54.040404Z", "updated_at": "2026-01-17T18:41:54.040420Z", "is_active": true }, { "id": 1045, "french_word": "après que", "russian_word": "после того как", "category": "conjunction", "category_display": "Conjunction", "level": 11, "level_display": "Conjonctions", "comment": "After", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:54.115725Z", "updated_at": "2026-01-17T18:41:54.115742Z", "is_active": true }, { "id": 1046, "french_word": "avant que", "russian_word": "до того как", "category": "conjunction", "category_display": "Conjunction", "level": 11, "level_display": "Conjonctions", "comment": "Before", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:54.120947Z", "updated_at": "2026-01-17T18:41:54.120958Z", "is_active": true }, { "id": 1044, "french_word": "dès que", "russian_word": "как только", "category": "conjunction", "category_display": "Conjunction", "level": 11, "level_display": "Conjonctions", "comment": "As soon as", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:54.110494Z", "updated_at": "2026-01-17T18:41:54.110509Z", "is_active": true }, { "id": 1032, "french_word": "ensuite", "russian_word": "затем", "category": "conjunction", "category_display": "Conjunction", "level": 11, "level_display": "Conjonctions", "comment": "Then/Next", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:54.045776Z", "updated_at": "2026-01-17T18:41:54.045793Z", "is_active": true }, { "id": 1042, "french_word": "jusqu'à ce que", "russian_word": "пока", "category": "conjunction", "category_display": "Conjunction", "level": 11, "level_display": "Conjonctions", "comment": "Until", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:54.100090Z", "updated_at": "2026-01-17T18:41:54.100106Z", "is_active": true }, { "id": 1043, "french_word": "pendant que", "russian_word": "пока", "category": "conjunction", "category_display": "Conjunction", "level": 11, "level_display": "Conjonctions", "comment": "While", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:54.105279Z", "updated_at": "2026-01-17T18:41:54.105295Z", "is_active": true }, { "id": 1033, "french_word": "puis", "russian_word": "потом", "category": "conjunction", "category_display": "Conjunction", "level": 11, "level_display": "Conjonctions", "comment": "Then", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:54.051521Z", "updated_at": "2026-01-17T18:41:54.051534Z", "is_active": true }, { "id": 45, "french_word": "quand", "russian_word": "когда", "category": "conjunction", "category_display": "Conjunction", "level": 2, "level_display": "Basic Words", "comment": "When", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:45.995997Z", "updated_at": "2026-01-17T18:41:54.014311Z", "is_active": true } ], "steps": [ { "id": 344, "sub_level": 87, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Conjonctions exprimant le temps", "description": "Conjonctions temporelles\n\nApprenez les conjonctions en russe.", "is_required": true, "config": { "content": "Conjonctions temporelles\n\nApprenez les conjonctions 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:54.181168Z", "updated_at": "2026-01-17T18:41:54.181178Z" }, { "id": 345, "sub_level": 87, "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 les conjonctions avec le mode flashcard.", "min_score": 70, "level": 11, "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:54.184565Z", "updated_at": "2026-01-17T18:41:54.184575Z" }, { "id": 346, "sub_level": 87, "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 les conjonctions avec le mode matching.", "min_score": 70, "level": 11, "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:54.187959Z", "updated_at": "2026-01-17T18:41:54.187970Z" }, { "id": 347, "sub_level": 87, "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 les conjonctions avec le mode multiple_choice.", "min_score": 70, "level": 11, "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:54.191258Z", "updated_at": "2026-01-17T18:41:54.191268Z" } ], "videos": [], "learning_cards": [ { "id": 344, "sub_level": 87, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Conjonctions exprimant le temps", "description": "Conjonctions temporelles\n\nApprenez les conjonctions en russe.", "is_required": true, "config": { "content": "Conjonctions temporelles\n\nApprenez les conjonctions 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:54.181168Z", "updated_at": "2026-01-17T18:41:54.181178Z" } ], "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:54.174106Z", "updated_at": "2026-01-17T18:41:54.174116Z" }, { "id": 88, "level": 18, "level_display": "Conjonctions", "sub_level": 4, "title": "Conjonctions exprimant la condition", "description": "Conjonctions de condition", "order": 4, "word_pairs": [ { "id": 1039, "french_word": "même si", "russian_word": "даже если", "category": "conjunction", "category_display": "Conjunction", "level": 11, "level_display": "Conjonctions", "comment": "Even if", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:54.083620Z", "updated_at": "2026-01-17T18:41:54.083636Z", "is_active": true }, { "id": 1027, "french_word": "si", "russian_word": "если", "category": "conjunction", "category_display": "Conjunction", "level": 11, "level_display": "Conjonctions", "comment": "If", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:54.019490Z", "updated_at": "2026-01-17T18:41:54.019506Z", "is_active": true }, { "id": 1048, "french_word": "à moins que", "russian_word": "если только не", "category": "conjunction", "category_display": "Conjunction", "level": 11, "level_display": "Conjonctions", "comment": "Unless", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:54.130455Z", "updated_at": "2026-01-17T18:41:54.130471Z", "is_active": true } ], "steps": [ { "id": 348, "sub_level": 88, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Conjonctions exprimant la condition", "description": "Conjonctions de condition\n\nApprenez les conjonctions en russe.", "is_required": true, "config": { "content": "Conjonctions de condition\n\nApprenez les conjonctions 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:54.201752Z", "updated_at": "2026-01-17T18:41:54.201764Z" }, { "id": 349, "sub_level": 88, "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 les conjonctions avec le mode flashcard.", "min_score": 70, "level": 11, "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:54.205332Z", "updated_at": "2026-01-17T18:41:54.205343Z" }, { "id": 350, "sub_level": 88, "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 les conjonctions avec le mode matching.", "min_score": 70, "level": 11, "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:54.208635Z", "updated_at": "2026-01-17T18:41:54.208645Z" }, { "id": 351, "sub_level": 88, "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 les conjonctions avec le mode multiple_choice.", "min_score": 70, "level": 11, "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:54.211972Z", "updated_at": "2026-01-17T18:41:54.211982Z" } ], "videos": [], "learning_cards": [ { "id": 348, "sub_level": 88, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Conjonctions exprimant la condition", "description": "Conjonctions de condition\n\nApprenez les conjonctions en russe.", "is_required": true, "config": { "content": "Conjonctions de condition\n\nApprenez les conjonctions 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:54.201752Z", "updated_at": "2026-01-17T18:41:54.201764Z" } ], "exercises": [], "total_words": 3, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 3, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:54.194527Z", "updated_at": "2026-01-17T18:41:54.194542Z" }, { "id": 89, "level": 18, "level_display": "Conjonctions", "sub_level": 5, "title": "Conjonctions exprimant l'opposition", "description": "Conjonctions d'opposition", "order": 5, "word_pairs": [ { "id": 1038, "french_word": "bien que", "russian_word": "хотя", "category": "conjunction", "category_display": "Conjunction", "level": 11, "level_display": "Conjonctions", "comment": "Although", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:54.078052Z", "updated_at": "2026-01-17T18:41:54.078069Z", "is_active": true }, { "id": 1034, "french_word": "cependant", "russian_word": "однако", "category": "conjunction", "category_display": "Conjunction", "level": 11, "level_display": "Conjonctions", "comment": "However", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:54.056778Z", "updated_at": "2026-01-17T18:41:54.056794Z", "is_active": true }, { "id": 1035, "french_word": "néanmoins", "russian_word": "тем не менее", "category": "conjunction", "category_display": "Conjunction", "level": 11, "level_display": "Conjonctions", "comment": "Nevertheless", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:54.062036Z", "updated_at": "2026-01-17T18:41:54.062052Z", "is_active": true }, { "id": 1036, "french_word": "pourtant", "russian_word": "всё же", "category": "conjunction", "category_display": "Conjunction", "level": 11, "level_display": "Conjonctions", "comment": "Yet", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:54.067386Z", "updated_at": "2026-01-17T18:41:54.067402Z", "is_active": true }, { "id": 1037, "french_word": "toutefois", "russian_word": "однако", "category": "conjunction", "category_display": "Conjunction", "level": 11, "level_display": "Conjonctions", "comment": "However", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:54.072738Z", "updated_at": "2026-01-17T18:41:54.072754Z", "is_active": true } ], "steps": [ { "id": 352, "sub_level": 89, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Conjonctions exprimant l'opposition", "description": "Conjonctions d'opposition\n\nApprenez les conjonctions en russe.", "is_required": true, "config": { "content": "Conjonctions d'opposition\n\nApprenez les conjonctions 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:54.221784Z", "updated_at": "2026-01-17T18:41:54.221795Z" }, { "id": 353, "sub_level": 89, "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 les conjonctions avec le mode flashcard.", "min_score": 70, "level": 11, "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:54.225355Z", "updated_at": "2026-01-17T18:41:54.225366Z" }, { "id": 354, "sub_level": 89, "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 les conjonctions avec le mode matching.", "min_score": 70, "level": 11, "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:54.228768Z", "updated_at": "2026-01-17T18:41:54.228779Z" }, { "id": 355, "sub_level": 89, "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 les conjonctions avec le mode multiple_choice.", "min_score": 70, "level": 11, "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:54.232080Z", "updated_at": "2026-01-17T18:41:54.232091Z" } ], "videos": [], "learning_cards": [ { "id": 352, "sub_level": 89, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Conjonctions exprimant l'opposition", "description": "Conjonctions d'opposition\n\nApprenez les conjonctions en russe.", "is_required": true, "config": { "content": "Conjonctions d'opposition\n\nApprenez les conjonctions 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:54.221784Z", "updated_at": "2026-01-17T18:41:54.221795Z" } ], "exercises": [], "total_words": 5, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 5, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:54.214685Z", "updated_at": "2026-01-17T18:41:54.214699Z" }, { "id": 90, "level": 18, "level_display": "Conjonctions", "sub_level": 6, "title": "Conjonctions exprimant le but", "description": "Conjonctions de but", "order": 6, "word_pairs": [ { "id": 1040, "french_word": "afin que", "russian_word": "чтобы", "category": "conjunction", "category_display": "Conjunction", "level": 11, "level_display": "Conjonctions", "comment": "So that", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:54.089451Z", "updated_at": "2026-01-17T18:41:54.089467Z", "is_active": true }, { "id": 1041, "french_word": "pour que", "russian_word": "чтобы", "category": "conjunction", "category_display": "Conjunction", "level": 11, "level_display": "Conjonctions", "comment": "So that", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:54.094848Z", "updated_at": "2026-01-17T18:41:54.094865Z", "is_active": true }, { "id": 1047, "french_word": "sans que", "russian_word": "без того чтобы", "category": "conjunction", "category_display": "Conjunction", "level": 11, "level_display": "Conjonctions", "comment": "Without", "tags": [ { "id": 28, "name": "conjunction", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:53.991245Z", "updated_at": "2026-01-17T18:41:53.991261Z" } ], "created_at": "2026-01-17T18:41:54.125707Z", "updated_at": "2026-01-17T18:41:54.125722Z", "is_active": true } ], "steps": [ { "id": 356, "sub_level": 90, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Conjonctions exprimant le but", "description": "Conjonctions de but\n\nApprenez les conjonctions en russe.", "is_required": true, "config": { "content": "Conjonctions de but\n\nApprenez les conjonctions 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:54.242234Z", "updated_at": "2026-01-17T18:41:54.242246Z" }, { "id": 357, "sub_level": 90, "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 les conjonctions avec le mode flashcard.", "min_score": 70, "level": 11, "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:54.245859Z", "updated_at": "2026-01-17T18:41:54.245870Z" }, { "id": 358, "sub_level": 90, "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 les conjonctions avec le mode matching.", "min_score": 70, "level": 11, "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:54.249274Z", "updated_at": "2026-01-17T18:41:54.249284Z" }, { "id": 359, "sub_level": 90, "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 les conjonctions avec le mode multiple_choice.", "min_score": 70, "level": 11, "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:54.252668Z", "updated_at": "2026-01-17T18:41:54.252678Z" } ], "videos": [], "learning_cards": [ { "id": 356, "sub_level": 90, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Conjonctions exprimant le but", "description": "Conjonctions de but\n\nApprenez les conjonctions en russe.", "is_required": true, "config": { "content": "Conjonctions de but\n\nApprenez les conjonctions 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:54.242234Z", "updated_at": "2026-01-17T18:41:54.242246Z" } ], "exercises": [], "total_words": 3, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 3, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:54.234902Z", "updated_at": "2026-01-17T18:41:54.234917Z" }, { "id": 91, "level": 19, "level_display": "Interjections", "sub_level": 1, "title": "Interjections de salutation", "description": "Salutations", "order": 1, "word_pairs": [ { "id": 37, "french_word": "au revoir", "russian_word": "до свидания", "category": "interjection", "category_display": "Interjection", "level": 2, "level_display": "Basic Words", "comment": "Goodbye", "tags": [ { "id": 29, "name": "interjection", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:54.259134Z", "updated_at": "2026-01-17T18:41:54.259150Z" } ], "created_at": "2026-01-17T18:41:45.974137Z", "updated_at": "2026-01-17T18:41:54.272608Z", "is_active": true }, { "id": 34, "french_word": "bonjour", "russian_word": "здравствуйте", "category": "interjection", "category_display": "Interjection", "level": 2, "level_display": "Basic Words", "comment": "Hello/Good day", "tags": [ { "id": 29, "name": "interjection", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:54.259134Z", "updated_at": "2026-01-17T18:41:54.259150Z" } ], "created_at": "2026-01-17T18:41:45.966456Z", "updated_at": "2026-01-17T18:41:54.267344Z", "is_active": true }, { "id": 1049, "french_word": "salut", "russian_word": "привет", "category": "interjection", "category_display": "Interjection", "level": 12, "level_display": "Interjections", "comment": "Hi/Hello (informal)", "tags": [ { "id": 29, "name": "interjection", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:54.259134Z", "updated_at": "2026-01-17T18:41:54.259150Z" } ], "created_at": "2026-01-17T18:41:54.261929Z", "updated_at": "2026-01-17T18:41:54.261945Z", "is_active": true } ], "steps": [ { "id": 360, "sub_level": 91, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Interjections de salutation", "description": "Salutations\n\nApprenez les interjections en russe.", "is_required": true, "config": { "content": "Salutations\n\nApprenez les interjections 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:54.395914Z", "updated_at": "2026-01-17T18:41:54.395926Z" }, { "id": 361, "sub_level": 91, "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 les interjections avec le mode flashcard.", "min_score": 70, "level": 12, "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:54.399224Z", "updated_at": "2026-01-17T18:41:54.399234Z" }, { "id": 362, "sub_level": 91, "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 les interjections avec le mode matching.", "min_score": 70, "level": 12, "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:54.402826Z", "updated_at": "2026-01-17T18:41:54.402836Z" }, { "id": 363, "sub_level": 91, "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 les interjections avec le mode multiple_choice.", "min_score": 70, "level": 12, "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:54.405928Z", "updated_at": "2026-01-17T18:41:54.405938Z" } ], "videos": [], "learning_cards": [ { "id": 360, "sub_level": 91, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Interjections de salutation", "description": "Salutations\n\nApprenez les interjections en russe.", "is_required": true, "config": { "content": "Salutations\n\nApprenez les interjections 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:54.395914Z", "updated_at": "2026-01-17T18:41:54.395926Z" } ], "exercises": [], "total_words": 3, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 3, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:54.388903Z", "updated_at": "2026-01-17T18:41:54.388915Z" }, { "id": 92, "level": 19, "level_display": "Interjections", "sub_level": 2, "title": "Interjections de réponse courante", "description": "Réponses courantes", "order": 2, "word_pairs": [ { "id": 338, "french_word": "de rien", "russian_word": "пожалуйста", "category": "interjection", "category_display": "Interjection", "level": 5, "level_display": "Small Phrases", "comment": "You're welcome", "tags": [ { "id": 29, "name": "interjection", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:54.259134Z", "updated_at": "2026-01-17T18:41:54.259150Z" } ], "created_at": "2026-01-17T18:41:48.105554Z", "updated_at": "2026-01-17T18:41:54.293527Z", "is_active": true }, { "id": 39, "french_word": "excusez-moi", "russian_word": "извините", "category": "interjection", "category_display": "Interjection", "level": 2, "level_display": "Basic Words", "comment": "Excuse me", "tags": [ { "id": 29, "name": "interjection", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:54.259134Z", "updated_at": "2026-01-17T18:41:54.259150Z" } ], "created_at": "2026-01-17T18:41:45.979369Z", "updated_at": "2026-01-17T18:41:54.303967Z", "is_active": true }, { "id": 36, "french_word": "merci", "russian_word": "спасибо", "category": "interjection", "category_display": "Interjection", "level": 2, "level_display": "Basic Words", "comment": "Thank you", "tags": [ { "id": 29, "name": "interjection", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:54.259134Z", "updated_at": "2026-01-17T18:41:54.259150Z" } ], "created_at": "2026-01-17T18:41:45.971527Z", "updated_at": "2026-01-17T18:41:54.288155Z", "is_active": true }, { "id": 347, "french_word": "non", "russian_word": "нет", "category": "interjection", "category_display": "Interjection", "level": 5, "level_display": "Small Phrases", "comment": "No", "tags": [ { "id": 29, "name": "interjection", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:54.259134Z", "updated_at": "2026-01-17T18:41:54.259150Z" } ], "created_at": "2026-01-17T18:41:48.133517Z", "updated_at": "2026-01-17T18:41:54.282927Z", "is_active": true }, { "id": 346, "french_word": "oui", "russian_word": "да", "category": "interjection", "category_display": "Interjection", "level": 5, "level_display": "Small Phrases", "comment": "Yes", "tags": [ { "id": 29, "name": "interjection", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:54.259134Z", "updated_at": "2026-01-17T18:41:54.259150Z" } ], "created_at": "2026-01-17T18:41:48.131005Z", "updated_at": "2026-01-17T18:41:54.277823Z", "is_active": true }, { "id": 339, "french_word": "pardon", "russian_word": "простите", "category": "interjection", "category_display": "Interjection", "level": 5, "level_display": "Small Phrases", "comment": "Sorry", "tags": [ { "id": 29, "name": "interjection", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:54.259134Z", "updated_at": "2026-01-17T18:41:54.259150Z" } ], "created_at": "2026-01-17T18:41:48.113195Z", "updated_at": "2026-01-17T18:41:54.309270Z", "is_active": true }, { "id": 38, "french_word": "s'il vous plaît", "russian_word": "пожалуйста", "category": "interjection", "category_display": "Interjection", "level": 2, "level_display": "Basic Words", "comment": "Please", "tags": [ { "id": 29, "name": "interjection", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:54.259134Z", "updated_at": "2026-01-17T18:41:54.259150Z" } ], "created_at": "2026-01-17T18:41:45.976728Z", "updated_at": "2026-01-17T18:41:54.298752Z", "is_active": true } ], "steps": [ { "id": 364, "sub_level": 92, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Interjections de réponse courante", "description": "Réponses courantes\n\nApprenez les interjections en russe.", "is_required": true, "config": { "content": "Réponses courantes\n\nApprenez les interjections 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:54.415819Z", "updated_at": "2026-01-17T18:41:54.415832Z" }, { "id": 365, "sub_level": 92, "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 les interjections avec le mode flashcard.", "min_score": 70, "level": 12, "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:54.419459Z", "updated_at": "2026-01-17T18:41:54.419471Z" }, { "id": 366, "sub_level": 92, "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 les interjections avec le mode matching.", "min_score": 70, "level": 12, "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:54.422795Z", "updated_at": "2026-01-17T18:41:54.422807Z" }, { "id": 367, "sub_level": 92, "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 les interjections avec le mode multiple_choice.", "min_score": 70, "level": 12, "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:54.426227Z", "updated_at": "2026-01-17T18:41:54.426239Z" } ], "videos": [], "learning_cards": [ { "id": 364, "sub_level": 92, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Interjections de réponse courante", "description": "Réponses courantes\n\nApprenez les interjections en russe.", "is_required": true, "config": { "content": "Réponses courantes\n\nApprenez les interjections 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:54.415819Z", "updated_at": "2026-01-17T18:41:54.415832Z" } ], "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:54.408481Z", "updated_at": "2026-01-17T18:41:54.408492Z" }, { "id": 93, "level": 19, "level_display": "Interjections", "sub_level": 3, "title": "Interjections de félicitation", "description": "Expressions de félicitation", "order": 3, "word_pairs": [ { "id": 1050, "french_word": "bonne chance", "russian_word": "удачи", "category": "interjection", "category_display": "Interjection", "level": 12, "level_display": "Interjections", "comment": "Good luck", "tags": [ { "id": 29, "name": "interjection", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:54.259134Z", "updated_at": "2026-01-17T18:41:54.259150Z" } ], "created_at": "2026-01-17T18:41:54.314088Z", "updated_at": "2026-01-17T18:41:54.314101Z", "is_active": true }, { "id": 1052, "french_word": "bravo", "russian_word": "браво", "category": "interjection", "category_display": "Interjection", "level": 12, "level_display": "Interjections", "comment": "Bravo", "tags": [ { "id": 29, "name": "interjection", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:54.259134Z", "updated_at": "2026-01-17T18:41:54.259150Z" } ], "created_at": "2026-01-17T18:41:54.323577Z", "updated_at": "2026-01-17T18:41:54.323587Z", "is_active": true }, { "id": 1051, "french_word": "félicitations", "russian_word": "поздравляю", "category": "interjection", "category_display": "Interjection", "level": 12, "level_display": "Interjections", "comment": "Congratulations", "tags": [ { "id": 29, "name": "interjection", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:54.259134Z", "updated_at": "2026-01-17T18:41:54.259150Z" } ], "created_at": "2026-01-17T18:41:54.319023Z", "updated_at": "2026-01-17T18:41:54.319036Z", "is_active": true }, { "id": 1064, "french_word": "génial", "russian_word": "отлично", "category": "interjection", "category_display": "Interjection", "level": 12, "level_display": "Interjections", "comment": "Great", "tags": [ { "id": 29, "name": "interjection", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:54.259134Z", "updated_at": "2026-01-17T18:41:54.259150Z" } ], "created_at": "2026-01-17T18:41:54.383492Z", "updated_at": "2026-01-17T18:41:54.383503Z", "is_active": true }, { "id": 1063, "french_word": "super", "russian_word": "супер", "category": "interjection", "category_display": "Interjection", "level": 12, "level_display": "Interjections", "comment": "Super", "tags": [ { "id": 29, "name": "interjection", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:54.259134Z", "updated_at": "2026-01-17T18:41:54.259150Z" } ], "created_at": "2026-01-17T18:41:54.378532Z", "updated_at": "2026-01-17T18:41:54.378546Z", "is_active": true } ], "steps": [ { "id": 368, "sub_level": 93, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Interjections de félicitation", "description": "Expressions de félicitation\n\nApprenez les interjections en russe.", "is_required": true, "config": { "content": "Expressions de félicitation\n\nApprenez les interjections 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:54.436457Z", "updated_at": "2026-01-17T18:41:54.436470Z" }, { "id": 369, "sub_level": 93, "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 les interjections avec le mode flashcard.", "min_score": 70, "level": 12, "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:54.440150Z", "updated_at": "2026-01-17T18:41:54.440162Z" }, { "id": 370, "sub_level": 93, "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 les interjections avec le mode matching.", "min_score": 70, "level": 12, "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:54.443502Z", "updated_at": "2026-01-17T18:41:54.443512Z" }, { "id": 371, "sub_level": 93, "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 les interjections avec le mode multiple_choice.", "min_score": 70, "level": 12, "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:54.446669Z", "updated_at": "2026-01-17T18:41:54.446679Z" } ], "videos": [], "learning_cards": [ { "id": 368, "sub_level": 93, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Interjections de félicitation", "description": "Expressions de félicitation\n\nApprenez les interjections en russe.", "is_required": true, "config": { "content": "Expressions de félicitation\n\nApprenez les interjections 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:54.436457Z", "updated_at": "2026-01-17T18:41:54.436470Z" } ], "exercises": [], "total_words": 5, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 5, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:54.428913Z", "updated_at": "2026-01-17T18:41:54.428925Z" }, { "id": 94, "level": 19, "level_display": "Interjections", "sub_level": 4, "title": "Interjections exprimant des émotions", "description": "Interjections émotionnelles", "order": 4, "word_pairs": [ { "id": 1054, "french_word": "ah", "russian_word": "ах", "category": "interjection", "category_display": "Interjection", "level": 12, "level_display": "Interjections", "comment": "Ah", "tags": [ { "id": 29, "name": "interjection", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:54.259134Z", "updated_at": "2026-01-17T18:41:54.259150Z" } ], "created_at": "2026-01-17T18:41:54.333299Z", "updated_at": "2026-01-17T18:41:54.333309Z", "is_active": true }, { "id": 1061, "french_word": "aïe", "russian_word": "ай", "category": "interjection", "category_display": "Interjection", "level": 12, "level_display": "Interjections", "comment": "Ouch", "tags": [ { "id": 29, "name": "interjection", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:54.259134Z", "updated_at": "2026-01-17T18:41:54.259150Z" } ], "created_at": "2026-01-17T18:41:54.368760Z", "updated_at": "2026-01-17T18:41:54.368775Z", "is_active": true }, { "id": 1055, "french_word": "eh", "russian_word": "эх", "category": "interjection", "category_display": "Interjection", "level": 12, "level_display": "Interjections", "comment": "Eh", "tags": [ { "id": 29, "name": "interjection", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:54.259134Z", "updated_at": "2026-01-17T18:41:54.259150Z" } ], "created_at": "2026-01-17T18:41:54.338153Z", "updated_at": "2026-01-17T18:41:54.338165Z", "is_active": true }, { "id": 1056, "french_word": "hélas", "russian_word": "увы", "category": "interjection", "category_display": "Interjection", "level": 12, "level_display": "Interjections", "comment": "Alas", "tags": [ { "id": 29, "name": "interjection", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:54.259134Z", "updated_at": "2026-01-17T18:41:54.259150Z" } ], "created_at": "2026-01-17T18:41:54.342986Z", "updated_at": "2026-01-17T18:41:54.342998Z", "is_active": true }, { "id": 1053, "french_word": "oh", "russian_word": "о", "category": "interjection", "category_display": "Interjection", "level": 12, "level_display": "Interjections", "comment": "Oh", "tags": [ { "id": 29, "name": "interjection", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:54.259134Z", "updated_at": "2026-01-17T18:41:54.259150Z" } ], "created_at": "2026-01-17T18:41:54.328552Z", "updated_at": "2026-01-17T18:41:54.328565Z", "is_active": true }, { "id": 1057, "french_word": "ouf", "russian_word": "уф", "category": "interjection", "category_display": "Interjection", "level": 12, "level_display": "Interjections", "comment": "Phew", "tags": [ { "id": 29, "name": "interjection", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:54.259134Z", "updated_at": "2026-01-17T18:41:54.259150Z" } ], "created_at": "2026-01-17T18:41:54.348324Z", "updated_at": "2026-01-17T18:41:54.348334Z", "is_active": true }, { "id": 1062, "french_word": "zut", "russian_word": "чёрт", "category": "interjection", "category_display": "Interjection", "level": 12, "level_display": "Interjections", "comment": "Darn", "tags": [ { "id": 29, "name": "interjection", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:54.259134Z", "updated_at": "2026-01-17T18:41:54.259150Z" } ], "created_at": "2026-01-17T18:41:54.373691Z", "updated_at": "2026-01-17T18:41:54.373706Z", "is_active": true } ], "steps": [ { "id": 372, "sub_level": 94, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Interjections exprimant des émotions", "description": "Interjections émotionnelles\n\nApprenez les interjections en russe.", "is_required": true, "config": { "content": "Interjections émotionnelles\n\nApprenez les interjections 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:54.456446Z", "updated_at": "2026-01-17T18:41:54.456457Z" }, { "id": 373, "sub_level": 94, "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 les interjections avec le mode flashcard.", "min_score": 70, "level": 12, "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:54.459990Z", "updated_at": "2026-01-17T18:41:54.460000Z" }, { "id": 374, "sub_level": 94, "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 les interjections avec le mode matching.", "min_score": 70, "level": 12, "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:54.463021Z", "updated_at": "2026-01-17T18:41:54.463031Z" }, { "id": 375, "sub_level": 94, "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 les interjections avec le mode multiple_choice.", "min_score": 70, "level": 12, "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:54.466105Z", "updated_at": "2026-01-17T18:41:54.466115Z" } ], "videos": [], "learning_cards": [ { "id": 372, "sub_level": 94, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Interjections exprimant des émotions", "description": "Interjections émotionnelles\n\nApprenez les interjections en russe.", "is_required": true, "config": { "content": "Interjections émotionnelles\n\nApprenez les interjections 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:54.456446Z", "updated_at": "2026-01-17T18:41:54.456457Z" } ], "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:54.449331Z", "updated_at": "2026-01-17T18:41:54.449341Z" }, { "id": 95, "level": 19, "level_display": "Interjections", "sub_level": 5, "title": "Interjections pour attirer l'attention", "description": "Interjections d'attention", "order": 5, "word_pairs": [ { "id": 1059, "french_word": "attention", "russian_word": "внимание", "category": "interjection", "category_display": "Interjection", "level": 12, "level_display": "Interjections", "comment": "Attention", "tags": [ { "id": 29, "name": "interjection", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:54.259134Z", "updated_at": "2026-01-17T18:41:54.259150Z" } ], "created_at": "2026-01-17T18:41:54.358211Z", "updated_at": "2026-01-17T18:41:54.358224Z", "is_active": true }, { "id": 1058, "french_word": "chut", "russian_word": "тсс", "category": "interjection", "category_display": "Interjection", "level": 12, "level_display": "Interjections", "comment": "Shh", "tags": [ { "id": 29, "name": "interjection", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:54.259134Z", "updated_at": "2026-01-17T18:41:54.259150Z" } ], "created_at": "2026-01-17T18:41:54.353265Z", "updated_at": "2026-01-17T18:41:54.353284Z", "is_active": true }, { "id": 1060, "french_word": "stop", "russian_word": "стоп", "category": "interjection", "category_display": "Interjection", "level": 12, "level_display": "Interjections", "comment": "Stop", "tags": [ { "id": 29, "name": "interjection", "category": "category", "category_display": "category", "description": "", "is_active": true, "created_at": "2026-01-17T18:41:54.259134Z", "updated_at": "2026-01-17T18:41:54.259150Z" } ], "created_at": "2026-01-17T18:41:54.363379Z", "updated_at": "2026-01-17T18:41:54.363389Z", "is_active": true } ], "steps": [ { "id": 376, "sub_level": 95, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Interjections pour attirer l'attention", "description": "Interjections d'attention\n\nApprenez les interjections en russe.", "is_required": true, "config": { "content": "Interjections d'attention\n\nApprenez les interjections 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:54.476207Z", "updated_at": "2026-01-17T18:41:54.476218Z" }, { "id": 377, "sub_level": 95, "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 les interjections avec le mode flashcard.", "min_score": 70, "level": 12, "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:54.479403Z", "updated_at": "2026-01-17T18:41:54.479413Z" }, { "id": 378, "sub_level": 95, "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 les interjections avec le mode matching.", "min_score": 70, "level": 12, "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:54.482286Z", "updated_at": "2026-01-17T18:41:54.482297Z" }, { "id": 379, "sub_level": 95, "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 les interjections avec le mode multiple_choice.", "min_score": 70, "level": 12, "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:54.485198Z", "updated_at": "2026-01-17T18:41:54.485208Z" } ], "videos": [], "learning_cards": [ { "id": 376, "sub_level": 95, "order": 1, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Introduction à Interjections pour attirer l'attention", "description": "Interjections d'attention\n\nApprenez les interjections en russe.", "is_required": true, "config": { "content": "Interjections d'attention\n\nApprenez les interjections 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:54.476207Z", "updated_at": "2026-01-17T18:41:54.476218Z" } ], "exercises": [], "total_words": 3, "is_unlocked": false, "is_completed": false, "progress": { "words_mastered": 0, "total_words": 3, "completion_percentage": 0.0, "steps": [] }, "is_active": true, "created_at": "2026-01-17T18:41:54.469370Z", "updated_at": "2026-01-17T18:41:54.469381Z" }, { "id": 96, "level": 20, "level_display": "В АЭРОПОРТУ - Урок 1", "sub_level": 1, "title": "Сцена 1: Диалог 1", "description": "Изучаем базовый словарь для аэропорта: документы, билет, паспорт и другие предметы", "order": 1, "word_pairs": [ { "id": 1076, "french_word": "apple", "russian_word": "яблоко", "category": "noun", "category_display": "Noun", "level": 1, "level_display": "В АЭРОПОРТУ - Урок 1", "comment": "Neuter, singular", "tags": [ { "id": 30, "name": "travel", "category": "other", "category_display": "Other", "description": "Travel-related vocabulary", "is_active": true, "created_at": "2026-01-17T18:41:55.923432Z", "updated_at": "2026-01-17T18:41:55.923444Z" } ], "created_at": "2026-01-17T18:41:55.982391Z", "updated_at": "2026-01-17T18:41:55.982402Z", "is_active": true }, { "id": 1074, "french_word": "book", "russian_word": "книга", "category": "noun", "category_display": "Noun", "level": 1, "level_display": "В АЭРОПОРТУ - Урок 1", "comment": "Feminine, singular", "tags": [ { "id": 30, "name": "travel", "category": "other", "category_display": "Other", "description": "Travel-related vocabulary", "is_active": true, "created_at": "2026-01-17T18:41:55.923432Z", "updated_at": "2026-01-17T18:41:55.923444Z" } ], "created_at": "2026-01-17T18:41:55.972239Z", "updated_at": "2026-01-17T18:41:55.972253Z", "is_active": true }, { "id": 1077, "french_word": "computer", "russian_word": "компьютер", "category": "noun", "category_display": "Noun", "level": 1, "level_display": "В АЭРОПОРТУ - Урок 1", "comment": "Masculine, singular", "tags": [ { "id": 30, "name": "travel", "category": "other", "category_display": "Other", "description": "Travel-related vocabulary", "is_active": true, "created_at": "2026-01-17T18:41:55.923432Z", "updated_at": "2026-01-17T18:41:55.923444Z" } ], "created_at": "2026-01-17T18:41:55.987404Z", "updated_at": "2026-01-17T18:41:55.987414Z", "is_active": true }, { "id": 1065, "french_word": "documents", "russian_word": "документы", "category": "noun", "category_display": "Noun", "level": 1, "level_display": "В АЭРОПОРТУ - Урок 1", "comment": "Plural form", "tags": [ { "id": 30, "name": "travel", "category": "other", "category_display": "Other", "description": "Travel-related vocabulary", "is_active": true, "created_at": "2026-01-17T18:41:55.923432Z", "updated_at": "2026-01-17T18:41:55.923444Z" } ], "created_at": "2026-01-17T18:41:55.926118Z", "updated_at": "2026-01-17T18:41:55.926129Z", "is_active": true }, { "id": 1072, "french_word": "glasses", "russian_word": "очки", "category": "noun", "category_display": "Noun", "level": 1, "level_display": "В АЭРОПОРТУ - Урок 1", "comment": "Plural form", "tags": [ { "id": 30, "name": "travel", "category": "other", "category_display": "Other", "description": "Travel-related vocabulary", "is_active": true, "created_at": "2026-01-17T18:41:55.923432Z", "updated_at": "2026-01-17T18:41:55.923444Z" } ], "created_at": "2026-01-17T18:41:55.961893Z", "updated_at": "2026-01-17T18:41:55.961905Z", "is_active": true }, { "id": 1068, "french_word": "key", "russian_word": "ключ", "category": "noun", "category_display": "Noun", "level": 1, "level_display": "В АЭРОПОРТУ - Урок 1", "comment": "Masculine, singular", "tags": [ { "id": 30, "name": "travel", "category": "other", "category_display": "Other", "description": "Travel-related vocabulary", "is_active": true, "created_at": "2026-01-17T18:41:55.923432Z", "updated_at": "2026-01-17T18:41:55.923444Z" } ], "created_at": "2026-01-17T18:41:55.941550Z", "updated_at": "2026-01-17T18:41:55.941560Z", "is_active": true }, { "id": 1073, "french_word": "magazine", "russian_word": "журнал", "category": "noun", "category_display": "Noun", "level": 1, "level_display": "В АЭРОПОРТУ - Урок 1", "comment": "Masculine, singular", "tags": [ { "id": 30, "name": "travel", "category": "other", "category_display": "Other", "description": "Travel-related vocabulary", "is_active": true, "created_at": "2026-01-17T18:41:55.923432Z", "updated_at": "2026-01-17T18:41:55.923444Z" } ], "created_at": "2026-01-17T18:41:55.967214Z", "updated_at": "2026-01-17T18:41:55.967227Z", "is_active": true }, { "id": 1069, "french_word": "map", "russian_word": "карта", "category": "noun", "category_display": "Noun", "level": 1, "level_display": "В АЭРОПОРТУ - Урок 1", "comment": "Feminine, singular", "tags": [ { "id": 30, "name": "travel", "category": "other", "category_display": "Other", "description": "Travel-related vocabulary", "is_active": true, "created_at": "2026-01-17T18:41:55.923432Z", "updated_at": "2026-01-17T18:41:55.923444Z" } ], "created_at": "2026-01-17T18:41:55.946545Z", "updated_at": "2026-01-17T18:41:55.946556Z", "is_active": true }, { "id": 1070, "french_word": "money", "russian_word": "деньги", "category": "noun", "category_display": "Noun", "level": 1, "level_display": "В АЭРОПОРТУ - Урок 1", "comment": "Plural only", "tags": [ { "id": 30, "name": "travel", "category": "other", "category_display": "Other", "description": "Travel-related vocabulary", "is_active": true, "created_at": "2026-01-17T18:41:55.923432Z", "updated_at": "2026-01-17T18:41:55.923444Z" } ], "created_at": "2026-01-17T18:41:55.951627Z", "updated_at": "2026-01-17T18:41:55.951641Z", "is_active": true }, { "id": 1075, "french_word": "newspaper", "russian_word": "газета", "category": "noun", "category_display": "Noun", "level": 1, "level_display": "В АЭРОПОРТУ - Урок 1", "comment": "Feminine, singular", "tags": [ { "id": 30, "name": "travel", "category": "other", "category_display": "Other", "description": "Travel-related vocabulary", "is_active": true, "created_at": "2026-01-17T18:41:55.923432Z", "updated_at": "2026-01-17T18:41:55.923444Z" } ], "created_at": "2026-01-17T18:41:55.977361Z", "updated_at": "2026-01-17T18:41:55.977374Z", "is_active": true }, { "id": 1066, "french_word": "passport", "russian_word": "паспорт", "category": "noun", "category_display": "Noun", "level": 1, "level_display": "В АЭРОПОРТУ - Урок 1", "comment": "Masculine, singular", "tags": [ { "id": 30, "name": "travel", "category": "other", "category_display": "Other", "description": "Travel-related vocabulary", "is_active": true, "created_at": "2026-01-17T18:41:55.923432Z", "updated_at": "2026-01-17T18:41:55.923444Z" } ], "created_at": "2026-01-17T18:41:55.931358Z", "updated_at": "2026-01-17T18:41:55.931368Z", "is_active": true }, { "id": 1071, "french_word": "telephone", "russian_word": "телефон", "category": "noun", "category_display": "Noun", "level": 1, "level_display": "В АЭРОПОРТУ - Урок 1", "comment": "Masculine, singular", "tags": [ { "id": 30, "name": "travel", "category": "other", "category_display": "Other", "description": "Travel-related vocabulary", "is_active": true, "created_at": "2026-01-17T18:41:55.923432Z", "updated_at": "2026-01-17T18:41:55.923444Z" } ], "created_at": "2026-01-17T18:41:55.956675Z", "updated_at": "2026-01-17T18:41:55.956687Z", "is_active": true }, { "id": 1067, "french_word": "ticket", "russian_word": "билет", "category": "noun", "category_display": "Noun", "level": 1, "level_display": "В АЭРОПОРТУ - Урок 1", "comment": "Masculine, singular", "tags": [ { "id": 30, "name": "travel", "category": "other", "category_display": "Other", "description": "Travel-related vocabulary", "is_active": true, "created_at": "2026-01-17T18:41:55.923432Z", "updated_at": "2026-01-17T18:41:55.923444Z" } ], "created_at": "2026-01-17T18:41:55.936585Z", "updated_at": "2026-01-17T18:41:55.936598Z", "is_active": true } ], "steps": [ { "id": 386, "sub_level": 96, "order": 1, "step_type": "video", "step_type_display": "Video", "title": "В АЭРОПОРТУ: Урок 1 Сцена 1 Диалог 1", "description": "Урок русского языка для начинаants - диалог в аэропорту", "is_required": true, "config": { "video_url": "https://www.youtube.com/watch?v=7ypFfk2ZsxY", "duration": 58 }, "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:55.997781Z", "updated_at": "2026-01-17T18:41:55.997801Z" }, { "id": 387, "sub_level": 96, "order": 2, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Словарь урока", "description": "В этом уроке вы изучите следующие слова:\n\n• Документы (documents)\n• Паспорт (passport)\n• Билет (ticket)\n• Ключ (key)\n• Карта (map)\n• Деньги (money)\n• Телефон (telephone)\n• Очки (glasses)\n• Журнал (mag", "is_required": true, "config": { "content": "В этом уроке вы изучите следующие слова:\n\n• Документы (documents)\n• Паспорт (passport)\n• Билет (ticket)\n• Ключ (key)\n• Карта (map)\n• Деньги (money)\n• Телефон (telephone)\n• Очки (glasses)\n• Журнал (magazine)\n• Книга (book)\n• Газета (newspaper)\n• Яблоко (apple)\n• Компьютер (computer)", "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:56.001523Z", "updated_at": "2026-01-17T18:41:56.001537Z" }, { "id": 388, "sub_level": 96, "order": 3, "step_type": "game_flashcard", "step_type_display": "Game - Flashcard", "title": "Карточки - Словарь аэропорта", "description": "Изучите слова с помощью карточек", "is_required": true, "config": { "game_mode": "flashcard", "instructions": "Просмотрите карточки и запомните слова из урока.", "min_score": 70, "level": 1, "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:56.004825Z", "updated_at": "2026-01-17T18:41:56.004837Z" }, { "id": 389, "sub_level": 96, "order": 4, "step_type": "game_matching", "step_type_display": "Game - Matching", "title": "Сопоставление - Слова и переводы", "description": "Сопоставьте русские слова с их переводами", "is_required": true, "config": { "game_mode": "matching", "instructions": "Сопоставьте каждое русское слово с его французским переводом.", "min_score": 80, "level": 1, "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:56.008338Z", "updated_at": "2026-01-17T18:41:56.008353Z" }, { "id": 390, "sub_level": 96, "order": 5, "step_type": "game_multiple_choice", "step_type_display": "Game - Multiple Choice", "title": "Выбор правильного ответа", "description": "Выберите правильный перевод для каждого слова", "is_required": false, "config": { "game_mode": "multiple_choice", "instructions": "Выберите правильный перевод для каждого русского слова.", "min_score": 75, "level": 1, "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:56.012183Z", "updated_at": "2026-01-17T18:41:56.012194Z" } ], "videos": [ { "id": 386, "sub_level": 96, "title": "В АЭРОПОРТУ: Урок 1 Сцена 1 Диалог 1", "description": "Урок русского языка для начинаants - диалог в аэропорту", "video_url": "https://www.youtube.com/watch?v=7ypFfk2ZsxY", "duration": 58, "order": 1, "is_required": true, "is_active": true } ], "learning_cards": [ { "id": 387, "sub_level": 96, "order": 2, "step_type": "learning_card", "step_type_display": "Learning Card", "title": "Словарь урока", "description": "В этом уроке вы изучите следующие слова:\n\n• Документы (documents)\n• Паспорт (passport)\n• Билет (ticket)\n• Ключ (key)\n• Карта (map)\n• Деньги (money)\n• Телефон (telephone)\n• Очки (glasses)\n• Журнал (mag", "is_required": true, "config": { "content": "В этом уроке вы изучите следующие слова:\n\n• Документы (documents)\n• Паспорт (passport)\n• Билет (ticket)\n• Ключ (key)\n• Карта (map)\n• Деньги (money)\n• Телефон (telephone)\n• Очки (glasses)\n• Журнал (magazine)\n• Книга (book)\n• Газета (newspaper)\n• Яблоко (apple)\n• Компьютер (computer)", "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:56.001523Z", "updated_at": "2026-01-17T18:41:56.001537Z" } ], "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:55.920359Z", "updated_at": "2026-01-17T18:41:55.920371Z" } ] }