{ "version": "6", "dialect": "sqlite", "id": "00509e45-a6d9-417d-b3c0-a7e936e7001f", "prevId": "00000000-0000-0000-0000-000000000000", "tables": { "attempts": { "name": "attempts", "columns": { "id": { "name": "id", "type": "integer", "primaryKey": true, "notNull": true, "autoincrement": true }, "session_id": { "name": "session_id", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false }, "card_id": { "name": "card_id", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false }, "direction": { "name": "direction", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "shown_at": { "name": "shown_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(unixepoch())" }, "result": { "name": "result", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "time_to_answer_ms": { "name": "time_to_answer_ms", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false } }, "indexes": { "attempts_session_idx": { "name": "attempts_session_idx", "columns": [ "session_id" ], "isUnique": false }, "attempts_card_idx": { "name": "attempts_card_idx", "columns": [ "card_id" ], "isUnique": false } }, "foreignKeys": { "attempts_session_id_sessions_id_fk": { "name": "attempts_session_id_sessions_id_fk", "tableFrom": "attempts", "tableTo": "sessions", "columnsFrom": [ "session_id" ], "columnsTo": [ "id" ], "onDelete": "cascade", "onUpdate": "no action" }, "attempts_card_id_cards_id_fk": { "name": "attempts_card_id_cards_id_fk", "tableFrom": "attempts", "tableTo": "cards", "columnsFrom": [ "card_id" ], "columnsTo": [ "id" ], "onDelete": "cascade", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {} }, "card_progress": { "name": "card_progress", "columns": { "card_id": { "name": "card_id", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false }, "direction": { "name": "direction", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "box": { "name": "box", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": 1 }, "correct_count": { "name": "correct_count", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": 0 }, "incorrect_count": { "name": "incorrect_count", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": 0 }, "last_shown_at": { "name": "last_shown_at", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false }, "next_due_at": { "name": "next_due_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": 0 } }, "indexes": { "card_progress_pk": { "name": "card_progress_pk", "columns": [ "card_id", "direction" ], "isUnique": false }, "card_progress_due_idx": { "name": "card_progress_due_idx", "columns": [ "next_due_at" ], "isUnique": false } }, "foreignKeys": { "card_progress_card_id_cards_id_fk": { "name": "card_progress_card_id_cards_id_fk", "tableFrom": "card_progress", "tableTo": "cards", "columnsFrom": [ "card_id" ], "columnsTo": [ "id" ], "onDelete": "cascade", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {} }, "cards": { "name": "cards", "columns": { "id": { "name": "id", "type": "integer", "primaryKey": true, "notNull": true, "autoincrement": true }, "lesson_id": { "name": "lesson_id", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false }, "question": { "name": "question", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "answer": { "name": "answer", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "hint": { "name": "hint", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "position": { "name": "position", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": 0 }, "created_at": { "name": "created_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(unixepoch())" }, "updated_at": { "name": "updated_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(unixepoch())" } }, "indexes": { "cards_lesson_idx": { "name": "cards_lesson_idx", "columns": [ "lesson_id" ], "isUnique": false } }, "foreignKeys": { "cards_lesson_id_lessons_id_fk": { "name": "cards_lesson_id_lessons_id_fk", "tableFrom": "cards", "tableTo": "lessons", "columnsFrom": [ "lesson_id" ], "columnsTo": [ "id" ], "onDelete": "cascade", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {} }, "lessons": { "name": "lessons", "columns": { "id": { "name": "id", "type": "integer", "primaryKey": true, "notNull": true, "autoincrement": true }, "parent_id": { "name": "parent_id", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false }, "name": { "name": "name", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "description": { "name": "description", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "position": { "name": "position", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": 0 }, "bidirectional": { "name": "bidirectional", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": false }, "created_at": { "name": "created_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(unixepoch())" }, "updated_at": { "name": "updated_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(unixepoch())" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": {} }, "sessions": { "name": "sessions", "columns": { "id": { "name": "id", "type": "integer", "primaryKey": true, "notNull": true, "autoincrement": true }, "lesson_id": { "name": "lesson_id", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false }, "started_at": { "name": "started_at", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "(unixepoch())" }, "ended_at": { "name": "ended_at", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false }, "duration_seconds": { "name": "duration_seconds", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false }, "cards_shown": { "name": "cards_shown", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": 0 }, "cards_correct": { "name": "cards_correct", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": 0 }, "cards_incorrect": { "name": "cards_incorrect", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": 0 }, "status": { "name": "status", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "'active'" }, "queue_snapshot": { "name": "queue_snapshot", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false } }, "indexes": { "sessions_status_idx": { "name": "sessions_status_idx", "columns": [ "status" ], "isUnique": false } }, "foreignKeys": { "sessions_lesson_id_lessons_id_fk": { "name": "sessions_lesson_id_lessons_id_fk", "tableFrom": "sessions", "tableTo": "lessons", "columnsFrom": [ "lesson_id" ], "columnsTo": [ "id" ], "onDelete": "cascade", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {} } }, "enums": {}, "_meta": { "schemas": {}, "tables": {}, "columns": {} }, "internal": { "indexes": {} } }