erDiagram
    p_users {
        INTEGER id PK
        VARCHAR(100) username
        VARCHAR(255) password
        ENUM role
        BOOLEAN is_delete
        DATETIME created_at
        VARCHAR(100) created_by
        DATETIME updated_at
        VARCHAR(100) updated_by
        DATETIME deleted_at
        VARCHAR(100) deleted_by
    }

    p_company {
        UUID id PK
        UUID hub_id FK
        VARCHAR(100) name
        ENUM type
        VARCHAR(255) address
        BOOLEAN is_delete
        DATETIME created_at
        VARCHAR(100) created_by
        DATETIME updated_at
        VARCHAR(100) updated_by
        DATETIME deleted_at
        VARCHAR(100) deleted_by
    }

    p_slack_message {
        UUID id PK
        UUID user_id FK
        TEXT message
        DATETIME sent_at
    }

    p_hub {
        UUID id PK
        VARCHAR(30) name
        VARCHAR(50) address
        VARCHAR(100) latitude
        VARCHAR(100) hardness
        VARCHAR(20) phone_number
        BOOLEAN is_delete
        BOOLEAN is_public
        DATETIME created_at
        VARCHAR(100) created_by
        DATETIME updated_at
        VARCHAR(100) updated_by
        DATETIME deleted_at
        VARCHAR(100) deleted_by
    }

    p_hub_path {
        UUID paths_id PK
        UUID departure_id FK
        UUID arrivals_id FK
        TIME time_required
        BOOLEAN is_delete
        DATETIME created_at
        VARCHAR(100) created_by
        DATETIME updated_at
        VARCHAR(100) updated_by
        DATETIME deleted_at
        VARCHAR(100) deleted_by
    }

    p_shipper {
        UUID id PK
        UUID hub_affiliation_id FK
        UUID slack_id
        BOOLEAN shipper_type
        BOOLEAN is_delete
        DATETIME created_at
        VARCHAR(100) created_by
        DATETIME updated_at
        VARCHAR(100) updated_by
        DATETIME deleted_at
        VARCHAR(100) deleted_by
    }

    p_product {
        UUID id PK
        UUID company_id FK
        UUID hub_id FK
        VARCHAR(100) name
        BOOLEAN is_delete
        DATETIME created_at
        VARCHAR(100) created_by
        DATETIME updated_at
        VARCHAR(100) updated_by
        DATETIME deleted_at
        VARCHAR(100) deleted_by
    }

    p_order_item {
        UUID id PK
        UUID order_id FK
        UUID product_id FK
        INTEGER quantity
        BOOLEAN is_delete
        DATETIME created_at
        VARCHAR(100) created_by
        DATETIME updated_at
        VARCHAR(100) updated_by
        DATETIME deleted_at
        VARCHAR(100) deleted_by
    }

    p_order {
        UUID id PK
        VARCHAR(100) user_id FK
        UUID request_company_id FK
        UUID receive_company_id FK
        UUID delivery_id FK
        BOOLEAN is_delete
        DATETIME created_at
        VARCHAR(100) created_by
        DATETIME updated_at
        VARCHAR(100) updated_by
        DATETIME deleted_at
        VARCHAR(100) deleted_by
    }

    p_delivery {
        UUID id PK
        UUID order_id FK
        ENUM status
        UUID origin_hub_id
        UUID destination_hub_id
        VARCHAR(200) address
        VARCHAR(200) recipient_name
        VARCHAR(200) slack_id
        BOOLEAN is_delete
        DATETIME created_at
        VARCHAR(100) created_by
        DATETIME updated_at
        VARCHAR(100) updated_by
        DATETIME deleted_at
        VARCHAR(100) deleted_by
    }

    p_delivery_path {
        UUID id PK
        UUID origin_hub_id FK
        UUID destination_hub_id FK
        INTEGER sequence
        VARCHAR(100) estimated_distance
        VARCHAR(100) estimated_duration
        VARCHAR(100) actual_distance
        VARCHAR(100) actual_duration
        ENUM status
        DATETIME created_at
        VARCHAR(100) created_by
        DATETIME updated_at
        VARCHAR(100) updated_by
        DATETIME deleted_at
        VARCHAR(100) deleted_by
    }

    p_users ||--o{ p_order : ""
    p_company ||--o{ p_product : ""
    p_hub ||--o{ p_company : ""
    p_hub ||--o{ p_product : ""
    p_hub ||--o{ p_shipper : ""
    p_hub ||--o{ p_hub_path : ""
    p_order ||--o{ p_order_item : ""
    p_order ||--|| p_delivery : ""
    p_delivery ||--o{ p_delivery_path : ""
    p_users ||--o{ p_slack_message : ""
    p_product ||--o{ p_order_item : ""
    p_company ||--o{ p_order : ""
    p_hub ||--o{ p_delivery : ""
    p_hub ||--o{ p_delivery_path : ""

https://dbdiagram.io/d/66c6cddca346f9518cc05e52

Untitled (18).png