glass/src/common/config/schema.js
2025-07-09 21:17:16 +09:00

79 lines
3.1 KiB
JavaScript

const LATEST_SCHEMA = {
users: {
columns: [
{ name: 'uid', type: 'TEXT PRIMARY KEY' },
{ name: 'display_name', type: 'TEXT NOT NULL' },
{ name: 'email', type: 'TEXT NOT NULL' },
{ name: 'created_at', type: 'INTEGER' },
{ name: 'api_key', type: 'TEXT' },
{ name: 'provider', type: 'TEXT DEFAULT \'openai\'' },
{ name: 'auto_update_enabled', type: 'INTEGER DEFAULT 1' },
{ name: 'has_migrated_to_firebase', type: 'INTEGER DEFAULT 0' }
]
},
sessions: {
columns: [
{ name: 'id', type: 'TEXT PRIMARY KEY' },
{ name: 'uid', type: 'TEXT NOT NULL' },
{ name: 'title', type: 'TEXT' },
{ name: 'session_type', type: 'TEXT DEFAULT \'ask\'' },
{ name: 'started_at', type: 'INTEGER' },
{ name: 'ended_at', type: 'INTEGER' },
{ name: 'sync_state', type: 'TEXT DEFAULT \'clean\'' },
{ name: 'updated_at', type: 'INTEGER' }
]
},
transcripts: {
columns: [
{ name: 'id', type: 'TEXT PRIMARY KEY' },
{ name: 'session_id', type: 'TEXT NOT NULL' },
{ name: 'start_at', type: 'INTEGER' },
{ name: 'end_at', type: 'INTEGER' },
{ name: 'speaker', type: 'TEXT' },
{ name: 'text', type: 'TEXT' },
{ name: 'lang', type: 'TEXT' },
{ name: 'created_at', type: 'INTEGER' },
{ name: 'sync_state', type: 'TEXT DEFAULT \'clean\'' }
]
},
ai_messages: {
columns: [
{ name: 'id', type: 'TEXT PRIMARY KEY' },
{ name: 'session_id', type: 'TEXT NOT NULL' },
{ name: 'sent_at', type: 'INTEGER' },
{ name: 'role', type: 'TEXT' },
{ name: 'content', type: 'TEXT' },
{ name: 'tokens', type: 'INTEGER' },
{ name: 'model', type: 'TEXT' },
{ name: 'created_at', type: 'INTEGER' },
{ name: 'sync_state', type: 'TEXT DEFAULT \'clean\'' }
]
},
summaries: {
columns: [
{ name: 'session_id', type: 'TEXT PRIMARY KEY' },
{ name: 'generated_at', type: 'INTEGER' },
{ name: 'model', type: 'TEXT' },
{ name: 'text', type: 'TEXT' },
{ name: 'tldr', type: 'TEXT' },
{ name: 'bullet_json', type: 'TEXT' },
{ name: 'action_json', type: 'TEXT' },
{ name: 'tokens_used', type: 'INTEGER' },
{ name: 'updated_at', type: 'INTEGER' },
{ name: 'sync_state', type: 'TEXT DEFAULT \'clean\'' }
]
},
prompt_presets: {
columns: [
{ name: 'id', type: 'TEXT PRIMARY KEY' },
{ name: 'uid', type: 'TEXT NOT NULL' },
{ name: 'title', type: 'TEXT NOT NULL' },
{ name: 'prompt', type: 'TEXT NOT NULL' },
{ name: 'is_default', type: 'INTEGER NOT NULL' },
{ name: 'created_at', type: 'INTEGER' },
{ name: 'sync_state', type: 'TEXT DEFAULT \'clean\'' }
]
}
};
module.exports = LATEST_SCHEMA;