|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- from __future__ import annotations
-
- import os
- from typing import TypedDict
-
- from eloquent import DatabaseManager, Schema
-
- CONFIG: dict[str, DbConfig] = { 'mysql': { 'driver': 'mysql',
- 'host': 'localhost',
- 'database': 'nizika_ai',
- 'user': os.environ['MYSQL_USER'],
- 'password': os.environ['MYSQL_PASS'],
- 'prefix': '' } }
- DB = DatabaseManager (CONFIG)
- SCHEMA = Schema (DB)
-
-
- def main (
- ) -> None:
- create_queries ()
- create_answers ()
- create_users ()
-
-
- def create_queries (
- ) -> None:
- with SCHEMA.create ('queries') as table:
- table.big_increments ('id')
- table.big_integer ('user_id').nullable ().comment ('クエリ主')
- table.integer ('target_character').comment ('クエリ先キャラクタ')
- table.text ('content').comment ('クエリ内容')
- table.string ('image_url').nullable ().default (None).comment ('添附画像 URL')
- table.integer ('query_type').comment ('クエリ区分')
- table.integer ('model').comment ('GPT のモデル')
- table.datetime ('sent_at').comment ('送信日時')
- table.boolean ('answered').default (False).comment ('回答済')
-
-
- def create_answers (
- ) -> None:
- with SCHEMA.create ('answers') as table:
- table.big_increments ('id')
- table.big_integer ('query_id').nullable ().comment ('クエリ')
- table.integer ('character').comment ('キャラクタ区分')
- table.text ('content').comment ('回答内容')
- table.integer ('answer_type').comment ('回答区分')
- table.datetime ('sent_at').comment ('送信日時')
- table.boolean ('answered').default (False).comment ('回答済')
-
-
- def create_users (
- ) -> None:
- with SCHEMA.create ('users') as table:
- table.big_increments ('id')
- table.integet ('platform').comment ('プラットフォーム区分')
- table.string ('code').comment ('ユーザ・コード(プラットフォーム依存)')
- table.string ('name').comment ('ユーザ名(プラットフォーム内)')
- table.binary ('icon').nullable ().comment ('アイコン')
-
-
- def create_query_answer_histories (
- ) -> None:
- with SCHEMA.create ('query_answer_histories') as table:
- table.big_increments ('id')
- table.big_integer ('query_id')
- table.big_integer ('answer_id')
-
-
- class DbConfig (TypedDict):
- driver: str
- host: str
- database: str
- user: str
- password: str
- prefix: str
-
-
- if __name__ == '__main__':
- main ()
|