c49047bf2a
migrations 259~261: - documents.source_external_id TEXT NULL (email 에선 always non-null, ingest 책임) - documents.email_metadata JSONB NULL (from/to/cc/subject/folder/uidvalidity/uid/received_at/attachments) - partial unique on (source_external_id) WHERE source_channel = email AND source_external_id IS NOT NULL ORM: - Document.source_external_id / email_metadata mapped_column 추가 dedup 진실원장 = DB unique index. server-side IMAP \\Seen flag 는 best-effort. mailplus_archive 의 INBOX root archive row 는 source_external_id=NULL 이라 unique 에서 자연 제외. plan: ~/.claude/plans/document-enchanted-candy.md
10 lines
457 B
SQL
10 lines
457 B
SQL
-- PR-4 Email Ingest — documents.email_metadata JSONB 컬럼 추가
|
|
-- 구조: {from, to[], cc[], subject, folder, uidvalidity, uid, received_at,
|
|
-- mailplus_link, attachments: [{filename, mime, size, part_id}],
|
|
-- parse_error?: string}
|
|
-- mailplus_archive (기존 INBOX root archive 워커) 가 만든 row 는 NULL 유지.
|
|
-- inbox_ingest 가 만든 row 만 채움.
|
|
|
|
ALTER TABLE documents
|
|
ADD COLUMN IF NOT EXISTS email_metadata JSONB;
|