# Участники проектов ```mermaid classDiagram class User { id } class Contest { id: pk status: ContestStatus title: string } class Organizator { <> id: pk type: Organization | Volunteers title: string } class Project { id: pk title: string contest: Contest org: Organizator } Project "*" --* "1" Organizator Project "*" --* "1" Contest class ContestMember { id: pk contest: Contest role: ContestRole roleTitle: string } ContestMember "*" --* "1" Contest ContestMember "*" --o "1" User class OrgMember { id: pk org: Organizator role: OrgRole roleTitle: string } OrgMember "*" --* "1" Organizator OrgMember "*" --o "1" User class ProjectMember { id: pk project: Project role: ProjectRole roleTitle: string } ProjectMember "*" --* "1" Project ProjectMember "*" --o "1" User class Participant { id: pk fio phone birthYear user?: User } Participant "1" --o "0..1" User class OrgParticipant { id: pk org: Organizator participant: Participant roleTitle: string } OrgParticipant "*" --* "1" Organizator OrgParticipant "*" --* "1" Participant class ProjectParticipant { id: pk project: Project participant: Participant roleTitle: string } ProjectParticipant "*" --* "1" Project ProjectParticipant "*" --* "1" Participant ``` - Заявка превращается в конкурс (предположительно) после апрува модератором ### Различные типы участников | Поле | Имя | Ключевые (руководитель, бухгалтер) | Участник проекта организации | Участник проекта волонтеров | | ------------------------------ | -------------- | ---------------------------------- | ---------------------------- | --------------------------- | | Фамилия | firstName | + | + | + | | Имя | lastName | + | + | + | | Отчество | patronymic | + | + | + | | Должность | position | + | + | - | | Телефон | phone | + | - | + | | E-mail | email | + | - | + | | Год рождения | birthYear | - | + | - | | Зона ответственности в проекте | responsibility | - | + | - |