feat(todo): richer metadata (tags, startDate, files) + edit/detail dialog
ToDoアイテムのメタデータを拡充し、編集/詳細ダイアログを追加。
- lib/db/migrations/003_todo_tags.sql: todo_items に tags 列を追加
- TodoRepository/TodoService: startDate(従来ハードコードNULL)とtagsをcreate/updateで永続化、fileIdsで添付紐付け(トランザクション)、deleteItemで添付クリーンアップ、getItem/getItemAttachments を追加
- API: GET /todos/items/[itemId] ({item, attachments}) を追加、POST/PATCH で startDate/tags/fileIds を受理、PATCH は null(クリア)と undefined(更新しない)を区別
- UI: TodoDialog(タイトル/説明/担当/優先度/開始日/期限/タグ/添付を編集、完了日時・タイムスタンプは読み取り専用)、KanbanBoard のカードクリックでダイアログを開きメタデータを表示
- MilestoneRepository の todo マッピングに tags を追加し as never キャストを修正
- docs/functional-design.md に tags / file_assets.source / attachments テーブルを追記
This commit is contained in:
@ -200,6 +200,7 @@ interface TodoItem {
|
||||
completedAt: string | null;
|
||||
orderIndex: number;
|
||||
milestoneId: number | null; // FK milestones.id
|
||||
tags: string | null; // カンマ区切りのタグ(project_notes.tags と同じ方式)
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
deletedAt: string | null;
|
||||
@ -219,9 +220,31 @@ interface FileAsset {
|
||||
mimeType: string; // MIMEタイプ(アップロード時チェック)
|
||||
size: number; // バイト数
|
||||
path: string; // ローカルパス(uploads/...)
|
||||
source: FileAssetSource; // 'library'(Files一覧公開) | 'attachment'(添付専用)
|
||||
createdAt: string;
|
||||
deletedAt: string | null;
|
||||
}
|
||||
type FileAssetSource = 'library' | 'attachment';
|
||||
```
|
||||
|
||||
### attachments
|
||||
|
||||
```typescript
|
||||
// file_assets とチャット/掲示板/ToDo を多対多で紐付ける
|
||||
interface Attachment {
|
||||
id: number;
|
||||
projectId: number; // FK projects.id ON DELETE CASCADE
|
||||
fileId: number; // FK file_assets.id
|
||||
targetType: AttachmentTargetType;
|
||||
targetId: number; // targetType に応じた chat_message/board_thread/board_comment/todo_item の id
|
||||
createdAt: string;
|
||||
deletedAt: string | null;
|
||||
}
|
||||
type AttachmentTargetType =
|
||||
| 'chat_message'
|
||||
| 'board_thread'
|
||||
| 'board_comment'
|
||||
| 'todo_item';
|
||||
```
|
||||
|
||||
### project_notes
|
||||
@ -410,6 +433,7 @@ erDiagram
|
||||
integer assignee_id FK
|
||||
integer milestone_id FK
|
||||
text due_date
|
||||
text tags
|
||||
}
|
||||
meetings {
|
||||
integer id PK
|
||||
|
||||
Reference in New Issue
Block a user