Skip to content

[Fase 1] Definire schema DDL per tutte le tabelle #6

Description

@elecicalla

Context

Il database necessita dello schema relazionale completo per supportare contacts, companies, deals, tasks, notes e le relative tabelle di join e lookup.

Objective

Creare src/db/schema.ts contenente tutte le istruzioni CREATE TABLE IF NOT EXISTS per:

  • 5 tabelle entita' principali (contacts, companies, deals, tasks, notes)
  • 4 tabelle lookup (categories, estimated_arrs, employee_ranges, connection_strengths)
  • 10 tabelle join M:N (company_contacts, company_categories, deal_contacts, deal_companies, task_contacts, task_companies, task_deals, note_contacts, note_companies, note_deals)
  • Funzione applySchema(db) che esegue tutte le DDL

Acceptance Criteria

  • File src/db/schema.ts esiste e compila senza errori
  • Le 14+ tabelle vengono create con CREATE TABLE IF NOT EXISTS
  • PK TEXT con UUID per tutte le entita' principali
  • FK dichiarate nelle tabelle di join
  • Date memorizzate come TEXT ISO 8601
  • socialLinks in contacts come TEXT (JSON serialized)
  • SELECT name FROM sqlite_master WHERE type='table' restituisce tutte le tabelle attese
  • Lo schema e' applicato all'init del client (chiamata in sqlite-client.ts)

Dependencies

Depends on: #5

Notes

Phase: Fase 1
Ref: FR-002, FR-003, NFR-005

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions