73 lines
1.9 KiB
Markdown
73 lines
1.9 KiB
Markdown
# 0002 Freelancer OS Core Tables
|
|
|
|
SQL file: `supabase/migrations/0002_add_freelancer_os_core_tables.sql`
|
|
|
|
## Purpose
|
|
|
|
Adds the database model required for the Freelancer OS MVP.
|
|
|
|
This migration keeps the existing baseline from `supabase/schema.sql` and extends it instead of replacing it. The existing `tasks` table is reused and enriched with freelancer-specific fields.
|
|
|
|
## What It Creates
|
|
|
|
- `clients`
|
|
- `projects`
|
|
- `calendar_events`
|
|
- `finance_transactions`
|
|
- `daily_logs`
|
|
- `app_settings`
|
|
- `set_updated_at()` trigger function
|
|
- updated-at triggers for the new tables
|
|
- indexes for common dashboard/report queries
|
|
- RLS policies for every new table
|
|
|
|
## What It Changes
|
|
|
|
The existing `tasks` table gets these additional columns:
|
|
|
|
- `client_id`
|
|
- `project_id`
|
|
- `priority`
|
|
- `due_at`
|
|
- `estimated_minutes`
|
|
- `actual_minutes`
|
|
|
|
This lets a task belong to a client and/or project while preserving the earlier journal/task prototype schema.
|
|
|
|
## MVP Coverage
|
|
|
|
This migration supports:
|
|
|
|
- client management
|
|
- client projects
|
|
- side projects
|
|
- task planning
|
|
- calendar planning
|
|
- income and expense tracking
|
|
- daily mood/energy logging
|
|
- app and AI provider settings
|
|
|
|
## RLS Model
|
|
|
|
Every new table has `user_id`.
|
|
|
|
Policies follow the same pattern:
|
|
|
|
- users can select their own rows
|
|
- users can insert rows only for themselves
|
|
- users can update their own rows
|
|
- users can delete their own rows
|
|
|
|
## Notes
|
|
|
|
`app_settings.api_key` exists for compatibility with the current prototype flow. For production-grade use, provider credentials should be encrypted or moved to a safer secret-management strategy.
|
|
|
|
`daily_logs` is the new MVP-oriented replacement for the earlier `journals` concept. The old `journals` table remains available until the UI migration is complete.
|
|
|
|
## Execution
|
|
|
|
Run this after `supabase/schema.sql`.
|
|
|
|
Do not add this file to `query-log.md` until it has actually been executed against a database.
|
|
|