package dev.awesomedev.mirim.web.dto;

import dev.awesomedev.mirim.domain.StudentProfile;

import java.time.LocalDate;

/**
 * 이 파일이 하는 일: 멘토 화면에 보여줄 수습생 인적사항 한 명분.
 *
 * 학습 포인트: 엔티티를 그대로 내보내지 않고 DTO로 옮긴다. 이메일은 아이디+도메인을
 * 합친 완성형(fullEmail)으로 준다 — 화면은 조각이 아니라 완성된 값을 원한다.
 */
public record StudentProfileResponse(
        Long userId,
        String name,
        String username,
        String track,
        String companyEmail,
        LocalDate birthDate,
        String phone,
        String address,
        String school,
        String major,
        String emergencyName,
        String emergencyRelation,
        String emergencyPhone
) {
    public static StudentProfileResponse from(StudentProfile p) {
        return new StudentProfileResponse(
                p.getUser().getId(),
                p.getUser().getName(),
                p.getUser().getUsername(),
                p.getUser().getTrack(),
                p.fullEmail(),
                p.getBirthDate(),
                p.getPhone(),
                p.getAddress(),
                p.getSchool(),
                p.getMajor(),
                p.getEmergencyName(),
                p.getEmergencyRelation(),
                p.getEmergencyPhone());
    }
}
