コマンド / クエリ一覧¶
アプリケーションサービス層に処理を依頼するための 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 | |
title
instance-attribute
¶
description = ''
class-attribute
instance-attribute
¶
status = TaskStatus.INBOX
class-attribute
instance-attribute
¶
due_date = None
class-attribute
instance-attribute
¶
__init__(title, description='', status=TaskStatus.INBOX, due_date=None)
¶
to_task_create()
¶
TaskCreateモデルに変換
戻り値:
| 名前 | タイプ | デスクリプション |
|---|---|---|
TaskCreate |
TaskCreate
|
モデル変換結果 |
ソースコード位置: src/logic/commands/task_commands.py
27 28 29 30 31 32 33 34 35 36 37 38 | |
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 | |
task_id
instance-attribute
¶
title
instance-attribute
¶
description = ''
class-attribute
instance-attribute
¶
status = TaskStatus.INBOX
class-attribute
instance-attribute
¶
due_date = None
class-attribute
instance-attribute
¶
__init__(task_id, title, description='', status=TaskStatus.INBOX, due_date=None)
¶
to_task_update()
¶
TaskUpdateモデルに変換
戻り値:
| 名前 | タイプ | デスクリプション |
|---|---|---|
TaskUpdate |
TaskUpdate
|
モデル変換結果 |
ソースコード位置: src/logic/commands/task_commands.py
51 52 53 54 55 56 57 58 59 60 61 62 | |
DeleteTaskCommand
dataclass
¶
UpdateTaskStatusCommand
dataclass
¶
プロジェクト関連コマンド¶
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 | |
title
instance-attribute
¶
description = ''
class-attribute
instance-attribute
¶
status = ProjectStatus.ACTIVE
class-attribute
instance-attribute
¶
__init__(title, description='', status=ProjectStatus.ACTIVE)
¶
to_project_create()
¶
ProjectCreateモデルに変換
戻り値:
| 名前 | タイプ | デスクリプション |
|---|---|---|
ProjectCreate |
ProjectCreate
|
モデル変換結果 |
ソースコード位置: src/logic/commands/project_commands.py
25 26 27 28 29 30 31 32 33 34 35 | |
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 | |
project_id
instance-attribute
¶
title = None
class-attribute
instance-attribute
¶
description = None
class-attribute
instance-attribute
¶
status = None
class-attribute
instance-attribute
¶
__init__(project_id, title=None, description=None, status=None)
¶
to_project_update()
¶
ProjectUpdateモデルに変換
戻り値:
| 名前 | タイプ | デスクリプション |
|---|---|---|
ProjectUpdate |
ProjectUpdate
|
モデル変換結果 |
ソースコード位置: src/logic/commands/project_commands.py
47 48 49 50 51 52 53 54 55 56 57 | |
DeleteProjectCommand
dataclass
¶
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 | |
project_id
instance-attribute
¶
new_status
instance-attribute
¶
__init__(project_id, new_status)
¶
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 | |
name
instance-attribute
¶
__init__(name)
¶
to_tag_create()
¶
TagCreateモデルに変換
戻り値:
| 名前 | タイプ | デスクリプション |
|---|---|---|
TagCreate |
TagCreate
|
モデル変換結果 |
ソースコード位置: src/logic/commands/tag_commands.py
23 24 25 26 27 28 29 | |
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 | |
tag_id
instance-attribute
¶
name = None
class-attribute
instance-attribute
¶
__init__(tag_id, name=None)
¶
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 | |
task_id
instance-attribute
¶
tag_id
instance-attribute
¶
__init__(task_id, tag_id)
¶
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
¶
DeleteTaskTagsByTaskCommand
dataclass
¶
クエリ API リファレンス¶
プロジェクト関連クエリ¶
src.logic.queries.project_queries
¶
プロジェクト関連のクエリオブジェクト
Application Service層で使用するQuery DTOs (Data Transfer Objects)
GetProjectByIdQuery
dataclass
¶
GetAllProjectsQuery
dataclass
¶
全プロジェクト取得クエリ
Source code in src/logic/queries/project_queries.py
24 25 26 | |
__init__()
¶
GetProjectsByStatusQuery
dataclass
¶
SearchProjectsByTitleQuery
dataclass
¶
タグ関連クエリ¶
src.logic.queries.tag_queries
¶
タグ関連のクエリオブジェクト
Application Service層で使用するQuery DTOs (Data Transfer Objects)
タスク関連クエリ¶
src.logic.queries.task_queries
¶
タスク関連のクエリオブジェクト
Application Service層で使用するQuery DTOs (Data Transfer Objects)