스태프 서비스
이 페이지는 lumie-backend/modules/staff를 다룹니다. 문서 경로는
admin-svc.md로 남아 있지만, Gradle 모듈, Java 패키지, 내부 API는
staff를 사용합니다.
책임
staff 모듈은 다음을 소유합니다.
- auth 사용자에 연결된 테넌트 범위 staff 행
- 권한 카탈로그 조회
- staff별 권한 할당
- 비활성화, 재활성화, 종료 처리, 삭제, 비밀번 호 재설정, 로그인 ID 변경 같은 staff 수명주기 작업
- 테넌트 OWNER 등록 커밋 후의 OWNER 부트스트랩
소스 경로
| 경로 | 역할 |
|---|---|
lumie-backend/modules/staff/src/main/java/com/lumie/staff/adapter/in/web | 공개 staff, 권한, 통계 컨트롤러 |
lumie-backend/modules/staff/src/main/java/com/lumie/staff/adapter/in/event/OwnerRegisteredListener.java | OWNER 부트스트랩 리스너 |
lumie-backend/modules/staff/src/main/java/com/lumie/staff/adapter/in/internal/StaffServiceAdapter.java | 모놀리스 내부 API 구현 |
lumie-backend/modules/staff/src/main/java/com/lumie/staff/application/service | staff 명령, 조회, 권한, 대시보드 서비스 |
lumie-backend/modules/staff/src/main/java/com/lumie/staff/domain/entity | Staff, Permission, StaffPermission |
lumie-backend/libs/internal-api/src/main/java/com/lumie/staff/api/StaffService.java | 수업, 강의, 콘텐츠 등 다른 모듈이 쓰는 내부 계약 |
lumie-backend/app/src/main/resources/db/migration/public/V18__rls_baseline.sql | 이름 변경 이전 admin/permission 테이블의 기준선 |
lumie-backend/app/src/main/resources/db/migration/public/V26__rename_admin_tables_to_staff.sql | admins를 staff로, admin_permissions를 staff_permissions로 이름 변경 |
공개 인터페이스
| 인터페이스 | 진입점 |
|---|---|
| Staff CRUD | POST /v1/staff, GET /v1/staff, GET /v1/staff/{id}, PATCH /v1/staff/{id}, DELETE /v1/staff/{id} |
| 자격 증명과 수명주기 | POST /v1/staff/{id}/reset-password, PATCH /v1/staff/{id}/login-id, POST /v1/staff/{id}/deactivate, POST /v1/staff/{id}/reactivate, POST /v1/staff/{id}/terminate |
| 권한 | GET /v1/staff/{staffId}/permissions, PUT /v1/staff/{staffId}/permissions, GET /v1/permissions, GET /v1/permissions/categories |
| 대시보드 | GET /v1/staff/statistics/dashboard |
내부 인터페이스
StaffService는 다음을 내보냅니다.
- staff ID 또는 auth 사용자 ID 기준 staff 조회
- 테넌트 내부 staff ID 검증
- staff 권한 조회
- 전체 staff 목록
- OWNER 부트스트랩용
createOwnerStaff(...)
이 내부 API는 담당 교사나 작성자를 해석하기 위해 수업, 강의, 콘텐츠 모듈에서 많이 사용됩니다.