-
Notifications
You must be signed in to change notification settings - Fork 0
Entities
Entity Relation: https://drive.google.com/file/d/0B4dXvewrRkwSSDVMd3F0Q3ZlYkU/view?usp=sharing
Пользователь (PERSON) имеет аккаунт и профиль в системе. Пользователь может выступать в проекте в роли игрока или мастера (теоретически и в обоих сразу).
Проект (PROJECT): определяет набор полей персонажа и дерево групп.
Поле (FIELD): свойства персонажа (???). Редактируются мастером в рамках проекта (т.е. если в рамках проекта создано поле ХХХ, у каждого персонажа есть свойство ХХХ и его значение).
- Название
- Публичное (может ли быть показано на сайте)
- Видимо для игрока
- Может редактироваться игроком
- Тип (строка/множественный выбор/список....)
- Подсказка
- Сортировка
Персонаж (???): основная сущность. Имеет набор привязанных полей, группы в которых входит (многие ко многим), заявки (многие ко многим). Помимо привязанных полей у него есть:
- Имя
- Публичность
- Ответственный мастера (многие-ко-многим).
Группа (GROUP): элемент древовидной структуры. Входит в несколько родительских групп, набор загрузов, флаг видимости (публичная/скрытая), шаблон персонажа (набор дефолтных значений для некоторого набра полей), отвественных мастеров (многое-к-многим), поле «сколько еще персонажей должно входить в эту группу, кроме имеющихся». Группа может представлять собой регион, локацию, загруз, пласт игры, расу, статус персонажа или любую другую сущность подобного порядка.
Заявка (CLAIM): связь «игрок» — «персонаж» или «игрок» — «группа». (многие ко многим). К ней привязаны комментарии. Заявка может находится в состояниях:
- подана (заявка создана игроком, мастер должен согласиться)
- предложена (заявка создана мастером, игрок должен согласиться)
- принята (оба согласны). Единственный статус, когда игрок видит персонажа, его поля и загрузы.
- отклонена (кто-то не согласен). Если в момент перевода заявки в статус «принята», она была привязана к «группе», а не к «персонажу», то автоматически создается «персонаж».