package dev.awesomedev.mirim.web.dto;

import dev.awesomedev.mirim.domain.StudentProfile;

import java.time.LocalDate;

/**
 * 이 파일이 하는 일:
 * "내 정보" 화면에 내려줄 인적사항 응답. 화면이 쓰는 것만 담는다.
 */
public record ProfileResponse(
        String username,
        String name,
        String track,
        String companyEmailLocal,
        String fullEmail,
        LocalDate birthDate,
        String phone,
        String address,
        String school,
        String major,
        String emergencyName,
        String emergencyRelation,
        String emergencyPhone
) {
    /** 엔티티 → 응답 DTO 변환. 컨트롤러마다 반복하지 않게 한 곳에 둔다. */
    public static ProfileResponse from(StudentProfile p) {
        return new ProfileResponse(
                p.getUser().getUsername(), p.getUser().getName(), p.getUser().getTrack(),
                p.getCompanyEmailLocal(), p.fullEmail(), p.getBirthDate(), p.getPhone(),
                p.getAddress(), p.getSchool(), p.getMajor(),
                p.getEmergencyName(), p.getEmergencyRelation(), p.getEmergencyPhone());
    }
}
