Saltar a contenido

Diagrams

Entity Relationship Diagram

---
config:
  layout: elk
---

erDiagram
    USER }o--o{ USER: follows
    USER ||--|| REVIEW: writes
    USER ||--|| RATING: gives
    USER }o--|| MOVIELIST: creates
    USER }o--o{ PERSON: follows
    USER }o--o{ PLATFORM: has
    USER ||--o{ FRIENDSHIP: has
    USER ||--o{ FRIENDREQUEST: sends
    USER ||--o{ FRIENDREQUEST: receives
    USER ||--o{ COMMENT: writes
    PERSON }o--|| MOVIE: directs
    PERSON }o--o{ MOVIE: acts
    MOVIE }|--o{ GENRE: has
    MOVIE }o--o{ PLATFORM: available_at
    MOVIE ||--o{ MOVIETRANSLATION: has
    AWARD ||--o{ MOVIE: awards
    AWARD ||--o{ PERSON: awards
    MOVIELIST }o--o{ MOVIE: has
    RATING ||--o{ MOVIE: rates
    REVIEW ||--o{ MOVIE: reviews
    GENRE ||--o{ GENRETRANSLATION: has
    PERSON ||--o{ PERSONTRANSLATION: has
    REVIEW ||--o{ COMMENT: has
    COMMENT }o--o| COMMENT: replies_to
    REVIEW ||--o{ REACTION: has
    COMMENT ||--o{ REACTION: has    

Class Diagram

---
config:
  layout: elk
---

erDiagram
    USER }o--o{ USER: follows
    USER ||--|| REVIEW: writes
    USER ||--|| RATING: gives
    USER }o--|| MOVIELIST: creates
    USER }o--o{ PERSON: follows
    USER }o--o{ PLATFORM: has
    USER ||--o{ FRIENDSHIP: has
    USER ||--o{ FRIENDREQUEST: sends
    USER ||--o{ FRIENDREQUEST: receives
    USER ||--o{ COMMENT: writes
    PERSON }o--|| MOVIE: directs
    PERSON }o--o{ MOVIE: acts
    MOVIE }|--o{ GENRE: has
    MOVIE }o--o{ PLATFORM: available_at
    MOVIE ||--o{ MOVIETRANSLATION: has
    AWARD ||--o{ MOVIE: awards
    AWARD ||--o{ PERSON: awards
    MOVIELIST }o--o{ MOVIE: has
    RATING ||--o{ MOVIE: rates
    REVIEW ||--o{ MOVIE: reviews
    GENRE ||--o{ GENRETRANSLATION: has
    PERSON ||--o{ PERSONTRANSLATION: has
    REVIEW ||--o{ COMMENT: has
    COMMENT }o--o| COMMENT: replies_to
    REVIEW ||--o{ REACTION: has
    COMMENT ||--o{ REACTION: has
    MOVIE {
        String title
        String slug
        Date release_date
        String synopsis
        Image cover
        M2M directors
        M2M actors
        M2M genres
        M2M platforms
    }
    MOVIETRANSLATION {
        String language
        String title
        String synopsis
        Image image
        Integer movie FK
    }
    GENRE {
        String name
        String slug
    }
    GENRETRANSLATION {
        String language
        String name
        Integer genre FK
    }
    PERSON {
        String name
        String slug
        Image image
    }
    PERSONTRANSLATION{
        String language
        String biograpy
        String person_slug
    }
    AWARD {
        Date date
        String name
        String slug
        ENUM category
        Image icon
    }
    RATING {
        Integer rating
        Integer movie FK
        Integer user FK
    }
    USER {
        Image picture
        String bio
        String preferred_language
        M2M following_person
        M2M platforms
        M2M unseen_movies
    }
    MOVIELIST {
        String name
        String slug
        Enum privacity
        String description
        M2M movies
        Integer user FK
    }
    REVIEW {
        String title
        String content
        Boolean is_positive
        Integer user FK
        Integer movie FK
    }
    PLATFORM {
        String url
        String name
        String slug
        Image image
    }
    FRIENDSHIP {
        Integer user1 FK
        Integer user2 FK
        Date created_at
    }
    FRIENDREQUEST {
        Integer from_user FK
        Integer to_user FK
        ENUM status
        Date created_at
    }
    COMMENT {
        Integer user FK
        Integer review FK
        String content
        Integer reply_comment FK
    }
    REACTION {
        Integer user FK
        ENUM emoji
        String content_type FK
        Integer object_id FK

    }