React Router
Domain

社員

社員の識別・権限・メンタリング関係を管理し、「誰が何をできるか」「誰が誰を見るか」を定義する。

目的

社員の識別・権限・メンタリング関係を管理し、「誰が何をできるか」「誰が誰を見るか」を定義する。

範囲

扱うもの:

  • 社員の基本属性(名前、メール、画像)
  • 権限(admin / employee)
  • メンター/メンティー関係
  • プロフィール情報(強み、弱み、キャリアビジョン)

扱わないもの:

  • グレード・スキルの定義 → evaluation
  • 活動記録・フィードバック → activity
  • 認証フロー(ログイン、セッション) → specs/user-auth

用語定義

Employee(社員)

システムを利用する社員。評価の対象であり、権限の主体。

属性説明制約
idstring一意識別子UUID、必須
namestring氏名必須
familyNamestring任意
givenNamestring任意
emailstringメールアドレス必須、一意、@connect-box.jp のみ
imagestringプロフィール画像URL必須(デフォルト: イニシャル画像)
emailVerifiedbooleanメール確認済みフラグ必須(Better Auth 管理)
roleRole権限必須、デフォルト: employee
gradeIdnumber所属グレード必須、デフォルト: 1(S1)

Role(権限)

システムで「何ができるか」を決定する。2種類のみ。

マスターデータ

活動・評価データの閲覧範囲管理機能
admin全社員権限変更、メンター関係の管理
employee自分のみなし

「誰が誰をレビューするか」は権限ではなく、MentorAssignmentで表現する。

MentorAssignment(メンター関係)

メンターとメンティーの紐付け。多対多。

属性説明制約
mentorIdstringメンターEmployee.id
menteeIdstringメンティーEmployee.id

制約:

  • mentorId ≠ menteeId(セルフレビュー禁止)
  • 循環OK(AがBのメンター、BがAのメンター)

Profile(プロフィール)

社員の自己認識とキャリア目標。Employeeに埋め込む。

属性説明制約
strengthsstring[]強み初期値: []、保存時: 1〜3個必須
weaknessesstring[]弱み初期値: []、保存時: 1〜3個必須
currentThemestring?今期テーマ任意
careerVision1YearCareerVision?1年後任意
careerVision3YearCareerVision?3年後任意

CareerVision(キャリアビジョン)

属性説明
targetGradeIdnumber目標グレード
descriptionstring?なりたい姿

関係性

Loading diagram...

ビジネスルール

  1. 最後のadmin保護: adminが1人の場合、そのadminの権限は変更不可
  2. メンター関係の管理権限: adminのみがMentorAssignmentを作成・削除できる
  3. 活動・評価データの閲覧範囲: employeeは自分のデータのみ閲覧可能、adminは全員のデータを閲覧可能
  4. 降格時の関係維持: roleをemployeeに変更してもMentorAssignmentは自動削除しない
  5. 強みの必須: Profileのstrengthsは最低1つ必要

参照

On this page