---
# System prepended metadata

title: Раунды

---

# Раунды

## Идея

Добавить новую сущность `blocks` (по аналогии с Blocks в Qualtrix).

Эта сущность **дополнительная**, помимо сущенствующей связи между `lesson` и `stage`

Связь у нее будет:

`lesson` <- `blocks`
`blocks` <- `stages`

### Требования и реализация:

Базовые:

1. Стадия `survey` внутри раундов. Результаты должны записываться в поля в контексте конкретного раунда.
2. Стадии не знают ничего о раундах.
3. Стадия должна получать свои метаданные из методы (в котором будет инкапсулирована логика оверрайдов).
4. Филды тоже ничего не знают о раундах. Они получают свои метаданные из метода (в котором инкапуслирована логика оверрайдов).
5. Когда филд решает куда записывать свой результат, он foreign keys получает тоже из метода (который учиывает контекст, например, добавляет round дополнительным измерением).

#### Примеры игр:

1. Five Tricks
2. Network Effects
3. Used Car -- это вообще не было реализовано, просто 3 игры делали

# Таймеры

Таймеры должны быть отдельной абстракцией и реализацией.

Его можно будет вложить в разные уровни метаданных -- и в игру целиком и в стадию и в блок (на один раунд или на все раунды вместе).

При этом таймер должен описываться менными одинаково везде.

И у таймеров должна быть поддержка хуков -- чтобы что-то сделать и показать, когда таймер закончился.

Таймеры через сервак должны быть.