'use server'; import { verifySession } from '@/lib/auth/dal'; export type UpdateStudentActiveStatusState = | { status: 'idle' } | { status: 'error'; error: string } | { status: 'success' }; const UNSUPPORTED_ERROR = '사용여부 변경은 아직 제공되지 않습니다. (백엔드 API 준비 중)'; /** * 학생 회원 사용여부 변경 Server Action — **현재는 미지원 상태의 이식 지점**이다. * * 목록이 백엔드 API(`GET /api/v1/mngr/user/pagination`)로 전환되면서 이 화면의 데이터 원천은 * 백엔드가 됐지만, 사용여부는 **조회 응답에 값도 없고 변경 API도 없다.** 이전의 mock 쓰기를 * 그대로 두면 mock 배열에만 존재하는 id를 찾다가 "존재하지 않는 학생 회원" 오류가 나므로 * (목록의 id는 이제 백엔드 `userId`다) 쓰기 경로를 명시적으로 막았다. 팝업의 사용여부 라디오와 * 저장 버튼도 같은 이유로 비활성이다. * * 변경 API가 생기면 `formData: FormData` 인자를 되살리고 본문을 "입력 검증 → Repository 호출 * → `revalidatePath`"로 되돌리면 된다(지금은 읽을 입력이 없어 인자를 받지 않는다 — 인자를 * 줄여도 `useActionState`의 호출 규약에는 어긋나지 않는다). 인증 확인을 본문 맨 앞에 남겨 둔 * 것도 그 형태를 유지하기 위함이다 — Server Action은 UI를 거치지 않고 직접 POST될 수 있어 * 이 확인이 유일한 최종 방어선이다. */ export async function updateStudentActiveStatus( _prevState: UpdateStudentActiveStatusState ): Promise { await verifySession(); return { status: 'error', error: UNSUPPORTED_ERROR }; }