3.5 KiB
3.5 KiB
Участники проектов
classDiagram
class User {
id
}
class Contest {
id: pk
status: ContestStatus
title: string
}
class Organizator {
<<interface>>
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 | + | - | + |
| + | - | + | ||
| Год рождения | birthYear | - | + | - |
| Зона ответственности в проекте | responsibility | - | + | - |