# Entity relational diagram

## Messaging extension 

```mermaid
%%{init: {  "er": {"fontSize": 25, "stroke": "black" }}}%%
erDiagram

%% General
Users

%% Messages
Discussions{
    Integer id PK
    String name
}

Messages{
    Integer id PK
    Integer response FK "Messages"
    String content
}

Discussions ||--o{ Messages: "" 
Discussions ||--o{ Users: ""

Messages o|--o{ Messages: "answers"

%% Forums
Forums{
    Integer id PK
    String name
    Integer course FK "Course"
}

Topics{
    Integer id PK
    String subject
    String content
    Boolean locked
}
Answers{
    Integer id PK
    String content
    Boolean anonymous
    TimeStamp creation_time 
}

Polls{
    Integer id PK
    enum PollType
}
Options{
    Integer id PK
    String name
}

Forums ||--o{ Users: "Registered"
Forums ||--|| Teacher: "Owner"
Forums ||--o{ Topics: ""
Forums ||--o{ Polls: ""

Topics ||--|| Teacher: "Author"
Topics ||--|| Users: "Author"
Topics ||--o{ Answers: ""

Polls ||--o{ Options: ""

Options ||--o{ Votes : ""

Votes }o--|| Users: "Voter"


%% Appointments
Teacher
Appointments{
    Integer id PK
    Integer teacher FK "Teacher"
    TIME sent_time
    enum Status
}

Appointments ||--|| Users: ""

```

Debucquoy Anthony