9f3e739c76be728293383837cf7e9e5182c5d7a5
User chose the hybrid storage strategy after reviewing the cost analysis: storage paths stay UUID-flat (preserves the established pattern across brochures, berth PDFs, invoices, reports, templates, expense receipts, and the migrate-storage byte-verbatim copy), but documents gain a path-style download URL so reps see meaningful paths in shared links and browser tabs. Task 18 wires the new /api/v1/documents/[id]/download/[...slug] catch-all route + a downloadUrl field on list/detail responses. The slug is validated for truth so a hand-edited URL with a stale path 404s instead of silently serving the wrong file. Task 19 is the importer the user mentioned: a one-shot script that walks an organized legacy bucket, creates matching folder tree + document rows pointing at existing storage keys verbatim. Idempotent via the sibling-uniqueness index. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Description
No description provided
Languages
TypeScript
98.7%
HTML
1%
CSS
0.1%
Shell
0.1%