# Task 1 Report — Tabella `dvr_pdf`

## Cosa è stato implementato

**Step 1** — Aggiunta definizione `dvrPdf` in `app/src/lib/server/db/schema.ts`, dopo `dvrAttivitaMiglioramento` (riga 487) e prima di `appSettings`. Colonne: `agenziaId` (PK, FK→`agenzie.id` ON DELETE CASCADE), `r2Key`, `dataHash`, `stato` (enum `ready|generating|error`), `generatoIl`, `errorMsg`, `updatedAt` (NOT NULL, default CURRENT_TIMESTAMP).

**Step 2** — Creato `app/migrations/2026-06-24-phase3-dvr-pdf.sql` con `CREATE TABLE IF NOT EXISTS dvr_pdf` identico alla definizione Drizzle.

**Step 3** — Migrazione applicata a `import-tools/db/dev.db` locale.

**Step 4** — DEFERITO su istruzione del controller. Nessun comando eseguito contro il DB di produzione (`turso db shell alleanza-dvr-prod`).

**Step 5** — Type-check eseguito: 0 errori, 3 warning preesistenti non correlati (ValutazioneCard.svelte).

**Step 6** — Commit `ce399e5` creato.

## Output `.schema dvr_pdf` locale

```
CREATE TABLE dvr_pdf (
  agenzia_id  INTEGER PRIMARY KEY REFERENCES agenzie(id) ON DELETE CASCADE,
  r2_key      TEXT,
  data_hash   TEXT,
  stato       TEXT CHECK (stato IN ('ready','generating','error')),
  generato_il TEXT,
  error_msg   TEXT,
  updated_at  TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
);
```

## Output `npm run check`

```
COMPLETED 1055 FILES 0 ERRORS 3 WARNINGS 1 FILES_WITH_PROBLEMS
```
(warnings preesistenti in ValutazioneCard.svelte, nessun errore)

## File modificati/creati

- `app/src/lib/server/db/schema.ts` — aggiunto blocco `dvrPdf` (riga 488-501)
- `app/migrations/2026-06-24-phase3-dvr-pdf.sql` — nuovo file migrazione

## Commit

- `ce399e5` — "PDF: tabella dvr_pdf (stato/cache PDF per agenzia)"

## Concern

Nessuno. Implementazione diretta DDL, nessuna ambiguità. Step 4 (prod) deferito come da istruzione controller.
