Database Model

For more information regarding database operations, refer to Core APIs

erDiagram
    ACCOUNTS {
        varchar account_id PK
        varchar mask
        varchar name
        varchar official_name
        varchar persistent_account_id
        varchar subtype
        varchar type
        varchar user_email
        varchar user_phone
        bytea plaid_access_token "Encrypted"
    }
    
    ACCOUNTS_BALANCE_HISTORY {
        int id PK
        varchar account_id FK
        float balances_available
        float balances_current
        varchar balances_iso_currency_code
        float balances_limit
        varchar balances_unofficial_currency_code
        timestamp balances_datetime
    }
    
    TRANSACTIONS {
        varchar transaction_id PK
        varchar account_id FK
        float amount
        date authorized_date
        varchar category_id
        date date
        varchar iso_currency_code
        varchar logo_url
        varchar merchant_entity_id
        varchar merchant_name
        varchar name
        varchar payment_channel
        boolean pending
        varchar personal_finance_category_icon_url
        varchar website
        varchar personal_finance_category_detailed
        varchar personal_finance_category
        boolean budget_run
    }

    FIN_REFRESH {
        int id PK
        timestamp refresh_time
        boolean refresh_status
        varchar refresh_description
        varchar refresh_type
    }

    BUDGET {
        int id PK
        varchar name
        varchar description
        numeric balance_limit
        varchar refresh_cadence
        varchar refresh_day_of_week
        boolean is_deleted
        boolean rules
    }

    BUDGET_BATCH {
        int id PK
        int budget_id FK
        timestamp start_date
        timestamp end_date
        numeric current_balance
        boolean under_limit
        timestamp update_time
    }

    BUDGETED_TRANSACTION {
        int id PK
        int batch_id FK
        varchar transaction_id FK
        timestamp verified_date
    }

    %% Relationships
    ACCOUNTS ||--o{ ACCOUNTS_BALANCE_HISTORY : "has many"
    ACCOUNTS ||--o{ TRANSACTIONS : "has many"
    TRANSACTIONS ||--o| BUDGETED_TRANSACTION : "is associated with"
    BUDGET ||--o{ BUDGET_BATCH : "has many"
    BUDGET_BATCH ||--o{ BUDGETED_TRANSACTION : "has many"