← Files WeStudyARCHIVED FILE

skills/westudy/references/course-design.md

5.77 KB · Nov 2, 2026 · 13:16 UTC

↓ Download file

# Дизайн-система курсів

Команди: `get_course_design_config`, `update_course_design_config`.
Це оформлення матеріалів усередині курсів: кольори, шрифти, кнопки, форми та інші
поля native generalConfig. Сторінки сайту і лендінги курсів використовують окремі
`get_site_config` / `update_site_config`.

## Два рівні

| Вибір | Параметри | Вплив |
| --- | --- | --- |
| Спільний стиль курсів школи | `parent: "courses"`, без courseUuid | Поточні та майбутні курси, які не мають власного конфігу. |
| Власний стиль одного курсу | `parent: "course"`, перевірений courseUuid | Тільки цей курс. Повний конфіг має пріоритет над спільним. |

Успадкування: власний `course` → спільний `courses` → стандартний курсовий конфіг.
Відповідь `source` показує фактичне джерело: `course`, `courses` або `default`.
`parent` показує вибрану область команди; ці поля можуть відрізнятися для курсу,
який поки успадковує тему. Читання не створює запису чи індивідуального винятку.
Індивідуальний конфіг — повний знімок; після його збереження нові зміни спільного
стилю автоматично в цей курс не переходять. Команди не видаляють винятки.

## Як пояснювати й обирати область

- Зазвичай рекомендуй спільний стиль курсів для єдиного оформлення школи.
- Якщо область нечітка («зміни дизайн курсу»), коротко поясни два варіанти й
  запитай: змінити спільний стиль курсів чи тільки вибраний курс?
- Якщо користувач явно сказав «тільки цей курс», виконуй це; не вимагай повторно
  наполягати та не розширюй зміну до всіх курсів.
- Якщо явно попросив спільний стиль усіх курсів, використовуй `parent=courses`.
  Поясни, що курси з власним конфігом залишаться винятками. Не обіцяй змінити їх
  і не перезаписуй ці конфіги автоматично. Для одночасного оновлення винятків
  потрібне окремо визначене доручення й вибрані курси.
- Створення/редагування окремого уроку саме по собі не дозволяє змінити тему.
  Використай чинний generalConfig та коротко повідом, що загальні стилі можна
  змінити окремим запитом. Якщо наданий зразок потребує зміни загальної теми,
  спочатку уточни область, якщо вона ще не визначена.
- Явне доручення з визначеною областю є дозволом на збереження. Не проси ще
  одне формальне погодження того самого. Перед записом повідом про обрану
  область і те, що стиль стане активним одразу.

## Послідовність роботи

1. Для одного курсу знайди точний курс через search_courses. Не вигадуй UUID.
2. Виклич get_course_design_config з потрібним parent та courseUuid, якщо треба.
3. Зміни тільки запитані властивості у повному generalConfig. Збережи решту
   полів, зокрема стилі кнопок/форм, невідомі розширення та розрізнення `{}`/`[]`.
   Структуру стилів читай у каталозі конструктора: general-config і потрібні секції.
4. Для перегляду поєднай чернетку матеріалу з запропонованим generalConfig та
   виклич validate_design / preview_design з `context: "course"`. Ці інструменти
   не зберігають тему. Наявний get_course_element повертає чинну успадковану тему.
5. Збережи через update_course_design_config: той самий target, expectedRevision
   з його читання, повний generalConfig та новий requestId для цієї операції.
6. QUEUED/RUNNING: перевіряй get_execution. Після UNKNOWN не роби сліпий повтор;
   перевір виконання і стан. CONFLICT: перечитай конфіг та перенеси запитану зміну,
   не підставляй лише нову ревізію до старого JSON.

Збереження діє одразу; окремої чернетки/публікації теми немає. Воно не змінює
контент уроків, їх публікацію, тарифи, розклад, студентів або стиль сайту/лендінгу.
Для індивідуальних конфігів підтримані доступні курси нової версії.

SHA-256: 04528df3171f9f0316658d8af5a716853a344eda5e1815642d0fa73e7cb453c1