feat: reviewed-Status für Bilder, Auto-Trigger, Übersetzungen, Vertonbarkeits-Regel
- pictures: reviewed-Status (Constraint + ALLOWED_STATUSES + Auto-Trigger beim Object-Linking) - objects: STATUSES um reviewed erweitert; Auto-Trigger draft→reviewed wenn Pair verlinkt - pairs/statements/questions: STATUSES um reviewed (Phase-1-Lücke) - pairs: POST /:id/review kaskadiert Pair+Frage+Statements (verlangt alle 3 Sprachen) - words: Auto requested→translated wenn alle titel_* gefüllt (POST+PATCH) - audios computeUnits: nur vertonbar wenn ALLE 3 Sprachen pro Feld gefüllt - claude: translate-text/translate-row/translate-missing mit Placeholder-Schutz (⟦PHn:label⟧-Tokenisierung, Label übersetzt, UUID erhalten); translation-coverage Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -17,7 +17,7 @@ async function migrate() {
|
||||
CREATE TABLE IF NOT EXISTS pictures (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
status VARCHAR(20) NOT NULL DEFAULT 'uploaded'
|
||||
CHECK (status IN ('uploaded', 'published', 'blocked')),
|
||||
CHECK (status IN ('uploaded', 'reviewed', 'published', 'blocked')),
|
||||
blocked_reason VARCHAR(20) CHECK (blocked_reason IN ('regenerate', 'not_to_use')),
|
||||
generation_prompt TEXT,
|
||||
generation_timestamp TIMESTAMPTZ,
|
||||
@@ -39,6 +39,9 @@ async function migrate() {
|
||||
$$ LANGUAGE plpgsql
|
||||
`);
|
||||
|
||||
await query(`ALTER TABLE pictures DROP CONSTRAINT IF EXISTS pictures_status_check`).catch(() => {});
|
||||
await query(`ALTER TABLE pictures ADD CONSTRAINT pictures_status_check CHECK (status IN ('uploaded', 'reviewed', 'published', 'blocked'))`).catch(() => {});
|
||||
|
||||
await query(`
|
||||
DROP TRIGGER IF EXISTS pictures_updated_at ON pictures;
|
||||
CREATE TRIGGER pictures_updated_at
|
||||
|
||||
Reference in New Issue
Block a user