/** * 학생 회원 도메인 타입 — 순수 데이터 표현, 외부 의존 없음. * * 데이터 출처는 외부 시스템 「알콩」이다. 백엔드(edupay-backend)에 학생 회원 조회 API가 아직 * 없는 구간이라 `student-member-repository.ts`가 결정적 mock 데이터로 이 타입을 채워 제공한다 * — 백엔드 연동 후에도 이 타입 자체는 그대로 유지되고 Repository 내부 구현만 교체된다. * * 조회 전용 화면(등록/수정/삭제 없음)의 데이터라 `isActive`를 제외한 모든 필드는 읽기 전용으로 * 취급한다(수정 가능 여부는 UI 계층의 책임이지 타입 자체의 제약은 아니다). */ export type StudentMember = { /** 내부 식별자. mock 단계에서는 memberCode와 동일한 값을 쓰지만, 실제 백엔드 연동 시에는 * 별도의 PK일 수 있어 memberCode와 분리된 필드로 둔다. */ id: string; /** 화면에 노출되는 회원코드 (예: ST00001). */ memberCode: string; name: string; loginId: string; phoneNumber: string; email: string; /** 회원 역할 — 본 화면(학생 회원 목록)에서는 항상 '학생'이다. */ role: string; schoolName: string; grade: number; classNumber: number; studentNumber: number; guardianName: string; guardianPhoneNumber: string; /** ISO 형식(YYYY-MM-DD) 문자열. */ joinedAt: string; /** ISO 형식(YYYY-MM-DD) 문자열. */ birthDate: string; /** 조회 팝업에서 유일하게 수정 가능한 필드(사용여부). */ isActive: boolean; };