# Master Database Schema

## users

| Field | Type |
|---------|---------|
| id | UUID |
| first_name | VARCHAR |
| last_name | VARCHAR |
| email | VARCHAR UNIQUE |
| password_hash | TEXT |
| status | active/suspended/archived |
| created_at | TIMESTAMP |
| updated_at | TIMESTAMP |

---

## roles

| Field | Type |
|---------|---------|
| id | UUID |
| name | VARCHAR |
| description | TEXT |

Roles:

* Super Admin
* Admin
* Manager
* Analyst
* Internal Viewer
* Client Viewer

---

## permissions

| Field | Type |
|---------|---------|
| id | UUID |
| permission_key | VARCHAR |
| description | TEXT |

---

## role_permissions

| Field | Type |
|---------|---------|
| role_id | UUID |
| permission_id | UUID |

---

## clients

| Field | Type |
|---------|---------|
| id | UUID |
| name | VARCHAR |
| internal_id | VARCHAR |
| logo | TEXT |
| primary_color | VARCHAR |
| secondary_color | VARCHAR |
| timezone | VARCHAR |
| currency | VARCHAR |
| status | active/paused/archived |
| created_at | TIMESTAMP |

---

## client_users

| Field | Type |
|---------|---------|
| id | UUID |
| client_id | UUID |
| user_id | UUID |

---

## integrations

| Field | Type |
|---------|---------|
| id | UUID |
| client_id | UUID |
| provider | VARCHAR |
| account_name | VARCHAR |
| token_data | ENCRYPTED |
| status | VARCHAR |
| last_sync | TIMESTAMP |

Providers:

* GA4
* Google Ads
* Meta Ads
* Google Sheets
* CSV
* Forminator

---

## dashboards

| Field | Type |
|---------|---------|
| id | UUID |
| client_id | UUID |
| name | VARCHAR |
| description | TEXT |
| theme_id | UUID |
| status | draft/published/archived |
| created_by | UUID |
| created_at | TIMESTAMP |

---

## dashboard_versions

| Field | Type |
|---------|---------|
| id | UUID |
| dashboard_id | UUID |
| version_number | INTEGER |
| snapshot | JSON |
| created_at | TIMESTAMP |

---

## widgets

| Field | Type |
|---------|---------|
| id | UUID |
| dashboard_id | UUID |
| widget_type | VARCHAR |
| title | VARCHAR |
| config | JSON |
| pos_x | INTEGER |
| pos_y | INTEGER |
| width | INTEGER |
| height | INTEGER |

Widget Types:

* KPI
* Chart
* Table
* Custom
* Calculated
* Text
* Image
* Bundle

---

## templates

| Field | Type |
|---------|-----