-- File attachments for projects, checklist items, and status updates CREATE TABLE attachments ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), project_id UUID NOT NULL REFERENCES projects(id) ON DELETE CASCADE, entity_type VARCHAR(50) NOT NULL, entity_id UUID, original_filename VARCHAR(500) NOT NULL, stored_filename VARCHAR(500) NOT NULL, mime_type VARCHAR(100) NOT NULL, file_size_bytes INTEGER NOT NULL, uploaded_by_name VARCHAR(255), created_at TIMESTAMPTZ DEFAULT NOW() ); CREATE INDEX idx_attachments_project ON attachments(project_id); CREATE INDEX idx_attachments_entity ON attachments(entity_type, entity_id);