コマンド / クエリ一覧¶
アプリケーションサービス層に処理を依頼するための 2 種類の DTO (Command / Query) をまとめて参照できるページです。UI や Agent からドメイン操作を行う際に、状態を変更するか(Command)、取得するか(Query)で使い分けます。
区分 | 目的 | 副作用 | 命名例 | 代表メソッド/変換 |
---|---|---|---|---|
Command | 状態変更(作成/更新/削除/ステータス変更) | あり | CreateTaskCommand | to_task_create(), to_project_update() など |
Query | 状態取得(検索/一覧/件数/存在確認) | なし | GetTasksByStatusQuery | (変換不要: 条件値のみ) |
Command オブジェクトについて¶
書き込み系ユースケース(状態変更)を依頼するための不変 DTO です。呼び出し側は必要最小限の入力をまとめ、Application Service に渡します。
設計指針:
- 1 コマンド = 1 ユースケース (副作用を伴う操作)
- dataclass により軽量でテスト容易
to_xxx_create
/to_xxx_update
などでモデルへ変換- Validation は上位 (UI/Service) で実施し、DTO 自体はデータキャリア
利用例 (タスク作成)¶
from logic.commands.task_commands import CreateTaskCommand
from logic.application_services.task_application_service import TaskApplicationService
cmd = CreateTaskCommand(title="調査", description="仕様確認")
service = TaskApplicationService(...)
service.create_task(cmd)
Query オブジェクトについて¶
読み取り系ユースケース(状態取得)を依頼するための DTO です。フィルタ条件をカプセル化しサービス層に渡します。
設計指針:
- 1 クエリ = 1 読み取りユースケース (副作用なし)
- dataclass によりシンプル
- 条件/識別子のみを保持しロジックを持たない
- 複雑化する場合は新たな専用クエリを追加し責務分離
利用例 (ステータス別タスク取得)¶
from logic.queries.task_queries import GetTasksByStatusQuery
from logic.application_services.task_application_service import TaskApplicationService
from models import TaskStatus
q = GetTasksByStatusQuery(status=TaskStatus.INBOX)
service = TaskApplicationService(...)
tasks = service.get_tasks_by_status(q)
コマンド API リファレンス¶
タスク関連コマンド¶
src.logic.commands.task_commands
¶
タスク関連のコマンドオブジェクト
Application Service層で使用するCommand DTOs (Data Transfer Objects)
CreateTaskCommand
dataclass
¶
タスク作成コマンド
Source code in src/logic/commands/task_commands.py
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
|
to_task_create()
¶
TaskCreateモデルに変換
戻り値:
名前 | タイプ | デスクリプション |
---|---|---|
TaskCreate |
TaskCreate
|
モデル変換結果 |
ソースコード位置: src/logic/commands/task_commands.py
27 28 29 30 31 32 33 34 35 36 37 38 |
|
DeleteTaskCommand
dataclass
¶
タスク削除コマンド
Source code in src/logic/commands/task_commands.py
65 66 67 68 69 |
|
UpdateTaskCommand
dataclass
¶
タスク更新コマンド
Source code in src/logic/commands/task_commands.py
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
|
to_task_update()
¶
TaskUpdateモデルに変換
戻り値:
名前 | タイプ | デスクリプション |
---|---|---|
TaskUpdate |
TaskUpdate
|
モデル変換結果 |
ソースコード位置: src/logic/commands/task_commands.py
51 52 53 54 55 56 57 58 59 60 61 62 |
|
UpdateTaskStatusCommand
dataclass
¶
タスクステータス更新コマンド
Source code in src/logic/commands/task_commands.py
72 73 74 75 76 77 |
|
プロジェクト関連コマンド¶
src.logic.commands.project_commands
¶
プロジェクト関連のコマンドオブジェクト
Application Service層で使用するCommand DTOs (Data Transfer Objects)
CreateProjectCommand
dataclass
¶
プロジェクト作成コマンド
Source code in src/logic/commands/project_commands.py
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
|
to_project_create()
¶
ProjectCreateモデルに変換
戻り値:
名前 | タイプ | デスクリプション |
---|---|---|
ProjectCreate |
ProjectCreate
|
モデル変換結果 |
ソースコード位置: src/logic/commands/project_commands.py
25 26 27 28 29 30 31 32 33 34 35 |
|
DeleteProjectCommand
dataclass
¶
プロジェクト削除コマンド
Source code in src/logic/commands/project_commands.py
60 61 62 63 64 |
|
UpdateProjectCommand
dataclass
¶
プロジェクト更新コマンド
Source code in src/logic/commands/project_commands.py
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
|
to_project_update()
¶
ProjectUpdateモデルに変換
戻り値:
名前 | タイプ | デスクリプション |
---|---|---|
ProjectUpdate |
ProjectUpdate
|
モデル変換結果 |
ソースコード位置: src/logic/commands/project_commands.py
47 48 49 50 51 52 53 54 55 56 57 |
|
UpdateProjectStatusCommand
dataclass
¶
プロジェクトステータス更新コマンド
Source code in src/logic/commands/project_commands.py
67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
|
to_project_update()
¶
ProjectUpdateモデルに変換
戻り値:
名前 | タイプ | デスクリプション |
---|---|---|
ProjectUpdate |
ProjectUpdate
|
モデル変換結果 |
ソースコード位置: src/logic/commands/project_commands.py
74 75 76 77 78 79 80 |
|
タグ関連コマンド¶
src.logic.commands.tag_commands
¶
タグ関連のコマンドオブジェクト
Application Service層で使用するCommand DTOs (Data Transfer Objects)
CreateTagCommand
dataclass
¶
タグ作成コマンド
Source code in src/logic/commands/tag_commands.py
17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
to_tag_create()
¶
TagCreateモデルに変換
戻り値:
名前 | タイプ | デスクリプション |
---|---|---|
TagCreate |
TagCreate
|
モデル変換結果 |
ソースコード位置: src/logic/commands/tag_commands.py
23 24 25 26 27 28 29 |
|
DeleteTagCommand
dataclass
¶
タグ削除コマンド
Source code in src/logic/commands/tag_commands.py
48 49 50 51 52 |
|
UpdateTagCommand
dataclass
¶
タグ更新コマンド
Source code in src/logic/commands/tag_commands.py
32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
|
to_tag_update()
¶
TagUpdateモデルに変換
戻り値:
名前 | タイプ | デスクリプション |
---|---|---|
TagUpdate |
TagUpdate
|
モデル変換結果 |
ソースコード位置: src/logic/commands/tag_commands.py
39 40 41 42 43 44 45 |
|
タスクタグ関連コマンド¶
src.logic.commands.task_tag_commands
¶
タスクタグ関連のコマンドオブジェクト
Application Service層で使用するCommand DTOs (Data Transfer Objects)
CreateTaskTagCommand
dataclass
¶
タスクタグ関連作成コマンド
Source code in src/logic/commands/task_tag_commands.py
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
|
to_task_tag_create()
¶
TaskTagCreateモデルに変換
戻り値:
名前 | タイプ | デスクリプション |
---|---|---|
TaskTagCreate |
TaskTagCreate
|
モデル変換結果 |
ソースコード位置: src/logic/commands/task_tag_commands.py
24 25 26 27 28 29 30 31 32 33 |
|
DeleteTaskTagCommand
dataclass
¶
タスクタグ関連削除コマンド
Source code in src/logic/commands/task_tag_commands.py
36 37 38 39 40 41 |
|
DeleteTaskTagsByTagCommand
dataclass
¶
タグのすべてのタスク関連削除コマンド
Source code in src/logic/commands/task_tag_commands.py
51 52 53 54 55 |
|
DeleteTaskTagsByTaskCommand
dataclass
¶
タスクのすべてのタグ関連削除コマンド
Source code in src/logic/commands/task_tag_commands.py
44 45 46 47 48 |
|
クエリ API リファレンス¶
プロジェクト関連クエリ¶
src.logic.queries.project_queries
¶
プロジェクト関連のクエリオブジェクト
Application Service層で使用するQuery DTOs (Data Transfer Objects)
GetActiveProjectsQuery
dataclass
¶
アクティブプロジェクト取得クエリ
Source code in src/logic/queries/project_queries.py
43 44 45 |
|
GetAllProjectsQuery
dataclass
¶
全プロジェクト取得クエリ
Source code in src/logic/queries/project_queries.py
24 25 26 |
|
GetCompletedProjectsQuery
dataclass
¶
完了プロジェクト取得クエリ
Source code in src/logic/queries/project_queries.py
48 49 50 |
|
GetProjectByIdQuery
dataclass
¶
ID指定プロジェクト取得クエリ
Source code in src/logic/queries/project_queries.py
17 18 19 20 21 |
|
GetProjectsByStatusQuery
dataclass
¶
ステータス別プロジェクト取得クエリ
Source code in src/logic/queries/project_queries.py
29 30 31 32 33 |
|
SearchProjectsByTitleQuery
dataclass
¶
タイトル検索プロジェクト取得クエリ
Source code in src/logic/queries/project_queries.py
36 37 38 39 40 |
|
タグ関連クエリ¶
src.logic.queries.tag_queries
¶
タグ関連のクエリオブジェクト
Application Service層で使用するQuery DTOs (Data Transfer Objects)
CheckTagExistsByNameQuery
dataclass
¶
名前によるタグ存在確認クエリ
Source code in src/logic/queries/tag_queries.py
41 42 43 44 45 |
|
GetAllTagsQuery
dataclass
¶
全タグ取得クエリ
Source code in src/logic/queries/tag_queries.py
22 23 24 |
|
GetTagByIdQuery
dataclass
¶
ID指定タグ取得クエリ
Source code in src/logic/queries/tag_queries.py
15 16 17 18 19 |
|
GetTagByNameQuery
dataclass
¶
名前指定タグ取得クエリ
Source code in src/logic/queries/tag_queries.py
27 28 29 30 31 |
|
SearchTagsByNameQuery
dataclass
¶
名前検索タグ取得クエリ
Source code in src/logic/queries/tag_queries.py
34 35 36 37 38 |
|
タスク関連クエリ¶
src.logic.queries.task_queries
¶
タスク関連のクエリオブジェクト
Application Service層で使用するQuery DTOs (Data Transfer Objects)
GetAllTasksByStatusDictQuery
dataclass
¶
全ステータス別タスク取得クエリ
Source code in src/logic/queries/task_queries.py
36 37 38 |
|
GetTaskByIdQuery
dataclass
¶
ID指定タスク取得クエリ
Source code in src/logic/queries/task_queries.py
29 30 31 32 33 |
|
GetTasksByStatusQuery
dataclass
¶
ステータス別タスク取得クエリ
Source code in src/logic/queries/task_queries.py
17 18 19 20 21 |
|
GetTodayTasksCountQuery
dataclass
¶
今日のタスク件数取得クエリ
Source code in src/logic/queries/task_queries.py
24 25 26 |
|
タスクタグ関連クエリ¶
src.logic.queries.task_tag_queries
¶
タスクタグ関連のクエリオブジェクト
Application Service層で使用するQuery DTOs (Data Transfer Objects)
CheckTaskTagExistsQuery
dataclass
¶
タスクタグ関連存在確認クエリ
Source code in src/logic/queries/task_tag_queries.py
37 38 39 40 41 42 |
|
GetAllTaskTagsQuery
dataclass
¶
全タスクタグ関連取得クエリ
Source code in src/logic/queries/task_tag_queries.py
45 46 47 |
|
GetTaskTagByTaskAndTagQuery
dataclass
¶
タスクIDとタグIDでタスクタグ関連取得クエリ
Source code in src/logic/queries/task_tag_queries.py
29 30 31 32 33 34 |
|
GetTaskTagsByTagIdQuery
dataclass
¶
タグID指定でタスクタグ関連取得クエリ
Source code in src/logic/queries/task_tag_queries.py
22 23 24 25 26 |
|
GetTaskTagsByTaskIdQuery
dataclass
¶
タスクID指定でタスクタグ関連取得クエリ
Source code in src/logic/queries/task_tag_queries.py
15 16 17 18 19 |
|