# Base44 Entity Schemas Reference

This document serves as a developer reference for the original data schemas from the Base44 backend. It is used to ensure feature parity and data integrity during the migration to the new GCP/Firebase backend.

---

## User Schema

```
role (text, required)
- The role of the user in the app
- Options: admin, user

email (text, required)
- The email of the user

full_name (text, required)
- Full name of the user

user_role (text)
- User's role in the system
- Options: admin, procurement, operator, sector, client, vendor, workforce

company_name (text)
- Company or organization name

profile_picture (text)
- URL to profile picture

phone (text)
- Phone number

address (text)
- Address

preferred_vendor_id (text)
- ID of the client's preferred/default vendor

preferred_vendor_name (text)
- Name of the client's preferred vendor

backup_vendor_ids (array)
- List of backup vendor IDs

dashboard_layout (object)
- User's customized dashboard layout preferences (legacy, kept for backward compatibility)
- widgets (array): Ordered list of visible widgets
- hidden_widgets (array): List of hidden widgets
- layout_version (text): Layout version for migration

dashboard_layout_client (object)
- Client dashboard layout
- widgets (array)
- hidden_widgets (array)
- layout_version (text)

dashboard_layout_vendor (object)
- Vendor dashboard layout
- widgets (array)
- hidden_widgets (array)
- layout_version (text)

dashboard_layout_operator (object)
- Operator dashboard layout
- widgets (array)
- hidden_widgets (array)
- layout_version (text)

dashboard_layout_workforce (object)
- Workforce dashboard layout
- widgets (array)
- hidden_widgets (array)
- layout_version (text)

preferences (object)
- User preferences and settings
- theme (text): Default: "light", Options: light, dark
- notifications_enabled (boolean): Default: true
- email_notifications (boolean): Default: true
```
