モデル一覧¶
データベース用 モデル¶
データベースのテーブルに対応するモデルです。 SQLModelを継承して定義されており、データベースのCRUD操作に使用されます。
基本各モデルは以下の形で定義されます。
- Base: 基本的なモデルクラス
- Main: テーブル定義用のクラス (DB操作時に使用)
- Create: 新規作成用のモデルクラス
- Read: 読み取り用のモデルクラス
- Update: 更新用のモデルクラス
この設計は、データの整合性と操作の明確化を目的としています。
src.models.task
¶
新しいTaskモデルの定義
TaskStatus
¶
Bases: str, Enum
タスクのステータス(GTDシステムに基づく)
Source code in src/models/task.py
10 11 12 13 14 15 16 17 18 19 | |
INBOX = 'inbox'
class-attribute
instance-attribute
¶
NEXT_ACTION = 'next_action'
class-attribute
instance-attribute
¶
WAITING_FOR = 'waiting_for'
class-attribute
instance-attribute
¶
SOMEDAY_MAYBE = 'someday_maybe'
class-attribute
instance-attribute
¶
DELEGATED = 'delegated'
class-attribute
instance-attribute
¶
COMPLETED = 'completed'
class-attribute
instance-attribute
¶
CANCELLED = 'cancelled'
class-attribute
instance-attribute
¶
TaskBase
¶
Bases: SQLModel
タスクの基本モデル
タスクの基本情報を定義するモデルクラス。SQLModelを使用してデータベースと連携します。
属性:
| 名前 | タイプ | デスクリプション |
|---|---|---|
project_id |
UUID | None
|
タスクが属するプロジェクトのID。プロジェクトに属さないタスクの場合はNone。 |
parent_id |
UUID | None
|
親タスクのID。サブタスクの場合に使用。 |
title |
str
|
タスクのタイトル。インデックスが設定されており、検索に使用されます。 |
description |
str
|
タスクの詳細説明。デフォルトは空文字列。 |
status |
TaskStatus
|
タスクのステータス。デフォルトはINBOX。 |
due_date |
date | None
|
タスクの締め切り日。設定されていない場合はNone。 |
Source code in src/models/task.py
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | |
project_id = Field(default=None, foreign_key='project.id', index=True)
class-attribute
instance-attribute
¶
parent_id = Field(default=None, foreign_key='task.id', index=True)
class-attribute
instance-attribute
¶
title = Field(index=True)
class-attribute
instance-attribute
¶
description = Field(default='')
class-attribute
instance-attribute
¶
status = Field(default=(TaskStatus.INBOX), index=True)
class-attribute
instance-attribute
¶
due_date = Field(default=None, index=True)
class-attribute
instance-attribute
¶
Task
¶
Bases: TaskBase
新しいタスクモデル
タスクの情報をデータベースに保存するためのモデルクラス。SQLModelを使用してデータベースと連携します。
属性:
| 名前 | タイプ | デスクリプション |
|---|---|---|
id |
UUID | None
|
タスクのID。デフォルトはNoneで、データベースに保存時に自動生成されます。 |
project_id |
UUID | None
|
タスクが属するプロジェクトのID。プロジェクトに属さないタスクの場合はNone。 |
parent_id |
UUID | None
|
親タスクのID。サブタスクの場合に使用。 |
title |
str
|
タスクのタイトル。インデックスが設定されており、検索に使用されます。 |
description |
str
|
タスクの詳細説明。デフォルトは空文字列。 |
status |
TaskStatus
|
タスクのステータス。デフォルトはINBOX。 |
due_date |
date | None
|
タスクの締め切り日。設定されていない場合はNone。 |
Source code in src/models/task.py
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | |
id = Field(default_factory=(uuid.uuid4), primary_key=True)
class-attribute
instance-attribute
¶
TaskCreate
¶
Bases: TaskBase
新しいタスク作成用モデル
タスクを新規作成する際に使用するモデルクラス。SQLModelを使用してデータベースと連携します。
属性:
| 名前 | タイプ | デスクリプション |
|---|---|---|
project_id |
UUID | None
|
タスクが属するプロジェクトのID。プロジェクトに属さないタスクの場合はNone。 |
parent_id |
UUID | None
|
親タスクのID。サブタスクの場合に使用。 |
title |
str
|
タスクのタイトル。インデックスが設定されており、検索に使用されます。 |
description |
str
|
タスクの詳細説明。デフォルトは空文字列。 |
status |
TaskStatus
|
タスクのステータス。デフォルトはINBOX。 |
due_date |
date | None
|
タスクの締め切り日。設定されていない場合はNone。 |
Source code in src/models/task.py
62 63 64 65 66 67 68 69 70 71 72 73 74 | |
TaskRead
¶
Bases: TaskBase
新しいタスク読み取り用モデル
タスクの情報を読み取る際に使用するモデルクラス。SQLModelを使用してデータベースと連携します。
属性:
| 名前 | タイプ | デスクリプション |
|---|---|---|
id |
UUID
|
タスクのID。 |
project_id |
UUID | None
|
タスクが属するプロジェクトのID。プロジェクトに属さないタスクの場合はNone。 |
parent_id |
UUID | None
|
親タスクのID。サブタスクの場合に使用。 |
title |
str
|
タスクのタイトル。インデックスが設定されており、検索に使用されます。 |
description |
str
|
タスクの詳細説明。デフォルトは空文字列。 |
status |
TaskStatus
|
タスクのステータス。デフォルトはINBOX。 |
due_date |
date | None
|
タスクの締め切り日。設定されていない場合はNone。 |
Source code in src/models/task.py
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | |
id
instance-attribute
¶
TaskUpdate
¶
Bases: SQLModel
新しいタスク更新用モデル
タスクの情報を更新する際に使用するモデルクラス。SQLModelを使用してデータベースと連携します。
属性:
| 名前 | タイプ | デスクリプション |
|---|---|---|
project_id |
UUID | None
|
タスクが属するプロジェクトのID。Noneの場合は更新しない。 |
parent_id |
UUID | None
|
親タスクのID。Noneの場合は更新しない。 |
title |
str | None
|
タスクのタイトル。Noneの場合は更新しない。 |
description |
str | None
|
タスクの詳細説明。Noneの場合は更新しない。 |
status |
TaskStatus | None
|
タスクのステータス。Noneの場合は更新しない。 |
due_date |
date | None
|
タスクの締め切り日。Noneの場合は更新しない。 |
Source code in src/models/task.py
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 | |
project_id = None
class-attribute
instance-attribute
¶
parent_id = None
class-attribute
instance-attribute
¶
title = None
class-attribute
instance-attribute
¶
description = None
class-attribute
instance-attribute
¶
status = None
class-attribute
instance-attribute
¶
due_date = None
class-attribute
instance-attribute
¶
src.models.project
¶
Projectモデルの定義
ProjectStatus
¶
Bases: str, Enum
プロジェクトのステータス
Source code in src/models/project.py
9 10 11 12 13 14 15 | |
ProjectBase
¶
Bases: SQLModel
プロジェクトの基本モデル
プロジェクトの基本情報を定義するモデルクラス。SQLModelを使用してデータベースと連携します。
属性:
| 名前 | タイプ | デスクリプション |
|---|---|---|
title |
str
|
プロジェクト名。インデックスが設定されており、検索に使用されます。 |
description |
str
|
プロジェクトの説明。デフォルトは空文字列。 |
status |
ProjectStatus
|
プロジェクトのステータス。デフォルトはACTIVE。 |
Source code in src/models/project.py
18 19 20 21 22 23 24 25 26 27 28 29 30 31 | |
Project
¶
Bases: ProjectBase
プロジェクトモデル
プロジェクトの情報をデータベースに保存するためのモデルクラス。SQLModelを使用してデータベースと連携します。
属性:
| 名前 | タイプ | デスクリプション |
|---|---|---|
id |
UUID | None
|
プロジェクトのID。デフォルトはNoneで、データベースに保存時に自動生成されます。 |
title |
str
|
プロジェクト名。インデックスが設定されており、検索に使用されます。 |
description |
str
|
プロジェクトの説明。デフォルトは空文字列。 |
status |
ProjectStatus
|
プロジェクトのステータス。デフォルトはACTIVE。 |
Source code in src/models/project.py
34 35 36 37 38 39 40 41 42 43 44 45 46 | |
id = Field(default_factory=(uuid.uuid4), primary_key=True)
class-attribute
instance-attribute
¶
ProjectCreate
¶
Bases: ProjectBase
プロジェクト作成用モデル
プロジェクトを新規作成する際に使用するモデルクラス。SQLModelを使用してデータベースと連携します。
属性:
| 名前 | タイプ | デスクリプション |
|---|---|---|
title |
str
|
プロジェクト名。インデックスが設定されており、検索に使用されます。 |
description |
str
|
プロジェクトの説明。デフォルトは空文字列。 |
status |
ProjectStatus
|
プロジェクトのステータス。デフォルトはACTIVE。 |
Source code in src/models/project.py
49 50 51 52 53 54 55 56 57 58 | |
ProjectRead
¶
Bases: ProjectBase
プロジェクト読み取り用モデル
プロジェクトの情報を読み取る際に使用するモデルクラス。SQLModelを使用してデータベースと連携します。
属性:
| 名前 | タイプ | デスクリプション |
|---|---|---|
id |
UUID
|
プロジェクトのID。 |
title |
str
|
プロジェクト名。インデックスが設定されており、検索に使用されます。 |
description |
str
|
プロジェクトの説明。デフォルトは空文字列。 |
status |
ProjectStatus
|
プロジェクトのステータス。デフォルトはACTIVE。 |
Source code in src/models/project.py
61 62 63 64 65 66 67 68 69 70 71 72 73 | |
id
instance-attribute
¶
ProjectUpdate
¶
Bases: SQLModel
プロジェクト更新用モデル
プロジェクトの情報を更新する際に使用するモデルクラス。SQLModelを使用してデータベースと連携します。
属性:
| 名前 | タイプ | デスクリプション |
|---|---|---|
title |
str | None
|
プロジェクト名。Noneの場合は更新しない。 |
description |
str | None
|
プロジェクトの説明。Noneの場合は更新しない。 |
status |
ProjectStatus | None
|
プロジェクトのステータス。Noneの場合は更新しない。 |
Source code in src/models/project.py
76 77 78 79 80 81 82 83 84 85 86 87 88 89 | |
src.models.tag
¶
Tagモデルの定義
TagBase
¶
Bases: SQLModel
タグの基本モデル
タグの基本情報を定義するモデルクラス。SQLModelを使用してデータベースと連携します。
属性:
| 名前 | タイプ | デスクリプション |
|---|---|---|
name |
str
|
タグ名(例: @PC, #重要)。インデックスが設定されており、検索に使用されます。 |
Source code in src/models/tag.py
8 9 10 11 12 13 14 15 16 17 | |
name = Field(index=True)
class-attribute
instance-attribute
¶
Tag
¶
Bases: TagBase
タグモデル
タグの情報をデータベースに保存するためのモデルクラス。SQLModelを使用してデータベースと連携します。
属性:
| 名前 | タイプ | デスクリプション |
|---|---|---|
id |
UUID | None
|
タグのID。デフォルトはNoneで、データベースに保存時に自動生成されます。 |
name |
str
|
タグ名(例: @PC, #重要)。インデックスが設定されており、検索に使用されます。 |
Source code in src/models/tag.py
20 21 22 23 24 25 26 27 28 29 30 | |
id = Field(default_factory=(uuid.uuid4), primary_key=True)
class-attribute
instance-attribute
¶
TagCreate
¶
Bases: TagBase
タグ作成用モデル
タグを新規作成する際に使用するモデルクラス。SQLModelを使用してデータベースと連携します。
属性:
| 名前 | タイプ | デスクリプション |
|---|---|---|
name |
str
|
タグ名(例: @PC, #重要)。インデックスが設定されており、検索に使用されます。 |
Source code in src/models/tag.py
33 34 35 36 37 38 39 40 | |
TagRead
¶
Bases: TagBase
タグ読み取り用モデル
タグの情報を読み取る際に使用するモデルクラス。SQLModelを使用してデータベースと連携します。
属性:
| 名前 | タイプ | デスクリプション |
|---|---|---|
id |
UUID
|
タグのID。 |
name |
str
|
タグ名(例: @PC, #重要)。インデックスが設定されており、検索に使用されます。 |
Source code in src/models/tag.py
43 44 45 46 47 48 49 50 51 52 53 | |
id
instance-attribute
¶
TagUpdate
¶
Bases: SQLModel
タグ更新用モデル
タグの情報を更新する際に使用するモデルクラス。SQLModelを使用してデータベースと連携します。
属性:
| 名前 | タイプ | デスクリプション |
|---|---|---|
name |
str | None
|
タグ名。Noneの場合は更新しない。 |
Source code in src/models/tag.py
56 57 58 59 60 61 62 63 64 65 | |
name = None
class-attribute
instance-attribute
¶
src.models.task_tag
¶
TaskTagモデルの定義(多対多の関連テーブル)
TaskTagBase
¶
Bases: SQLModel
タスクとタグの関連の基本モデル
タスクとタグの多対多関係を定義するモデルクラス。SQLModelを使用してデータベースと連携します。
属性:
| 名前 | タイプ | デスクリプション |
|---|---|---|
task_id |
UUID
|
タスクのID。 |
tag_id |
UUID
|
タグのID。 |
Source code in src/models/task_tag.py
8 9 10 11 12 13 14 15 16 17 18 19 | |
TaskTag
¶
Bases: TaskTagBase
タスクとタグの関連モデル
タスクとタグの多対多関係をデータベースに保存するためのモデルクラス。SQLModelを使用してデータベースと連携します。
属性:
| 名前 | タイプ | デスクリプション |
|---|---|---|
task_id |
UUID
|
タスクのID。複合主キーの一部。 |
tag_id |
UUID
|
タグのID。複合主キーの一部。 |
Source code in src/models/task_tag.py
22 23 24 25 26 27 28 29 30 | |
TaskTagCreate
¶
Bases: TaskTagBase
タスクとタグの関連作成用モデル
タスクとタグの関連を新規作成する際に使用するモデルクラス。SQLModelを使用してデータベースと連携します。
属性:
| 名前 | タイプ | デスクリプション |
|---|---|---|
task_id |
UUID
|
タスクのID。 |
tag_id |
UUID
|
タグのID。 |
Source code in src/models/task_tag.py
33 34 35 36 37 38 39 40 41 | |
TaskTagRead
¶
Bases: TaskTagBase
タスクとタグの関連読み取り用モデル
タスクとタグの関連情報を読み取る際に使用するモデルクラス。SQLModelを使用してデータベースと連携します。
属性:
| 名前 | タイプ | デスクリプション |
|---|---|---|
task_id |
UUID
|
タスクのID。 |
tag_id |
UUID
|
タグのID。 |
Source code in src/models/task_tag.py
44 45 46 47 48 49 50 51 52 | |
src.models.memo
¶
Memoモデルの定義
MemoBase
¶
Bases: SQLModel
メモの基本モデル
Source code in src/models/memo.py
8 9 10 11 12 | |
Memo
¶
MemoCreate
¶
Bases: MemoBase
メモ作成用モデル
Source code in src/models/memo.py
21 22 | |