99 lines
2.1 KiB
Markdown
99 lines
2.1 KiB
Markdown
# Конкурсы, проекты и заявки
|
|
|
|
```mermaid
|
|
classDiagram
|
|
direction BT
|
|
class Organizator {
|
|
<<interface>>
|
|
id: pk
|
|
type: Organization | Volunteers
|
|
title: string
|
|
}
|
|
|
|
class Contest {
|
|
id: pk
|
|
status: ContestStatus
|
|
title: string
|
|
logo: string
|
|
description: string
|
|
totalBudget: number
|
|
receiptStartedAt: number
|
|
receiptEndedAt: number
|
|
ratingStartedAt?: number
|
|
ratingEndedAt?: number
|
|
publicResultsAt: number
|
|
workStartedAt: number
|
|
workEndedAt: number
|
|
createdAt: number
|
|
updatedAt: number
|
|
org: Organizator
|
|
}
|
|
Contest "*" --* "1" Organizator
|
|
|
|
class Activity {
|
|
id: pk
|
|
title: string
|
|
parent?: Activity
|
|
}
|
|
Activity "*" --* "1" Contest
|
|
Activity "1" --* "0..1" Activity
|
|
|
|
class Project {
|
|
id: pk
|
|
title: string
|
|
contest: Contest
|
|
activity: Activity
|
|
org: Organizator
|
|
leader: ProjectParticipant
|
|
description: string
|
|
}
|
|
Project "*" --* "1" Organizator
|
|
Project "*" --* "1" Contest
|
|
Project "*" --o "1" Activity
|
|
|
|
class OrgParticipant {
|
|
id: pk
|
|
org: Organizator
|
|
fio
|
|
roleTitle: string
|
|
}
|
|
OrgParticipant "*" --* "1" Organizator
|
|
|
|
class ProjectParticipant {
|
|
id: pk
|
|
project: Project
|
|
fio
|
|
roleTitle: string
|
|
}
|
|
ProjectParticipant "*" --* "1" Project
|
|
|
|
class Event {
|
|
id: pk
|
|
status: EventStatus
|
|
project: Project
|
|
title: string
|
|
logo
|
|
description: string
|
|
startsOn: Date
|
|
endsOn: Date
|
|
createdAt: timestamp
|
|
updatedAt: timestamp
|
|
}
|
|
Event "*" --* "1" Project
|
|
|
|
class News {
|
|
id
|
|
status: EventStatus
|
|
project: Project
|
|
title: string
|
|
logo
|
|
description: string
|
|
date: Date
|
|
createdAt: timestamp
|
|
updatedAt: timestamp
|
|
}
|
|
News "*" --* "1" Project
|
|
```
|
|
|
|
- Заявка превращается в конкурс (предположительно) после апрува модератором
|