Skip to content

Conversation

@Kubosaka
Copy link
Collaborator

概要

ユーザーの複数部門管理機能を実装しました。user_groupsテーブルを使用してユーザーと部門の中間テーブル管理を行えるようになります。

主な変更点

1. OpenAPI仕様の追加

  • GET /user_groups: user_groups一覧取得(ユーザーID・部門IDでの絞り込み対応)
  • POST /user_groups: user_group作成(ユーザーを部門に追加)
  • DELETE /user_groups/{id}: user_group削除(ユーザーから部門を削除)
  • GET /user_groups/user/{user_id}: ユーザーの所属部門一覧取得
  • POST /user_groups/bulk: ユーザーの部門一括更新

2. スキーマ定義の追加

  • userGroup: 基本的なuser_group情報
  • createUserGroup: user_group作成用
  • userGroupWithDivision: 部門情報を含むuser_group
  • bulkUpdateUserGroups: 一括更新用

3. フロントエンド実装

  • ユーザー編集モーダルで実際のAPIを使用
  • 生成されたAPIフック(useGetUserGroupsUserUserId, usePutUsersId, usePostUserGroupsBulk)を活用
  • ユーザー一覧画面でuser_groupsテーブルから部門情報を取得

データベース設計

既存のuser_groupsテーブルを活用:

CREATE TABLE user_groups (
    id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
    user_id INT(10) UNSIGNED NOT NULL,
    group_id INT(10) UNSIGNED NOT NULL,  -- divisionsテーブルのid
    created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    PRIMARY KEY (id),
    FOREIGN KEY user_id_foreign_key (user_id) REFERENCES users (id) ON DELETE CASCADE,
    FOREIGN KEY group_id_foreign_key (group_id) REFERENCES divisions (id) ON DELETE CASCADE
);

テスト項目

  • ユーザー編集モーダルで部門の追加・削除ができる
  • ユーザー一覧画面で各ユーザーの所属部門が表示される
  • ユーザー情報の更新が正常に動作する
  • 部門の一括更新が正常に動作する
  • エラーハンドリングが適切に動作する

備考

  • APIコードはmake genで自動生成されています
  • 型安全性を保つためにOpenAPI仕様からTypeScriptの型定義を生成
  • エラー時はモックデータでフォールバック

🤖 Generated with Claude Code

Kubosaka and others added 2 commits August 28, 2025 23:49
- 部門管理ページの新規作成
  - 部門の一覧、追加、編集、削除機能
  - 管理者権限チェック
  - モックAPIで動作確認

- ユーザー管理の複数部門対応
  - ユーザー一覧で複数部門をタグ表示
  - ユーザー編集モーダルで部門の追加/削除が可能
  - 直感的なUI/UXで部門管理

- ナビゲーション改善
  - 管理セクションをサイドバーに追加
  - 部門管理とユーザー管理へのアクセス

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- OpenAPI仕様にuser_groups関連エンドポイントを追加
  - GET /user_groups: 一覧取得
  - POST /user_groups: 作成
  - DELETE /user_groups/{id}: 削除
  - GET /user_groups/user/{user_id}: ユーザーの所属部門取得
  - POST /user_groups/bulk: 部門一括更新
- 対応するスキーマ定義を追加
- APIコードを自動生成
- ユーザー編集モーダルで実際のAPIを使用するよう修正
- ユーザー一覧画面でuser_groupsテーブルから部門情報を取得

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants