package com.devjob.dto;

import com.devjob.domain.Job;
import com.devjob.domain.JobStatus;

/**
 * EP16: Entity를 직접 반환하지 않고 DTO로 변환한다.
 * 연관 엔티티(Company)의 값은 companyName처럼 평탄화해서 노출한다.
 */
public record JobResponse(
        Long id,
        Long companyId,
        String companyName,
        String title,
        String description,
        Integer salary,
        JobStatus status
) {

    public static JobResponse from(Job job) {
        return new JobResponse(
                job.getId(),
                job.getCompany().getId(),
                job.getCompany().getName(),
                job.getTitle(),
                job.getDescription(),
                job.getSalary(),
                job.getStatus()
        );
    }
}
