# snakkimo-CMT — Development Rules ## Stack - React + Vite + Tailwind v4 - API: snakkimo-API (Express/Node.js, PostgreSQL) at the URL in `src/lib/api.js` - Deployed at cmt.snakkimo.com via Coolify (UUID: `wa3esdrwh7ib5i7vfhwrknb4`) ## Key Rules ### Pairs müssen immer mit object_pairs verknüpft sein Jedes neu erstellte Pair **muss** direkt nach dem `POST /pairs` auch in `object_pairs` eingetragen werden: ```js const pair = await apiPost('/pairs', { ... }); await apiLink(`/objects/${objectId}/pairs/${pair.id}`); ``` `object_pairs` ist die definitive Verknüpfung zwischen einem Pair und dem Bild/Objekt das angezeigt werden soll. Ohne diesen Eintrag ist das Pair für die App unsichtbar. ### Placeholder-Format Sätze in questions/statements speichern Wörter und Objekte als `{{uuid}}`: - `{{wordId}}` — Verweis auf ein Wort aus der `words` Tabelle - `{{objectId}}` — Verweis auf ein Objekt aus der `objects` Tabelle (wird mit `withPlaceholders()` gesetzt wenn der User ein Objekt zuweist) ### answer_type Werte Pairs haben einen einzigen `answer_type` TEXT: - `yes_no` — Frage + Ja/Nein Antwort - `text` — nur positives Statement - `question` — Frage + Positiv + Negativ - `word` — Frage + positive/negative Wörter (über `statement_positive_words` / `statement_negative_words`) ## Deployment Push auf `main` → Coolify baut automatisch. Manueller Deploy via MCP: `mcp__coolify__deployments` mit `operation: deploy`, `query: {"uuid":"wa3esdrwh7ib5i7vfhwrknb4"}`.