package dev.awesomedev.mirim.web.dto;

import dev.awesomedev.mirim.domain.AuditLog;

/**
 * 이 파일이 하는 일:
 * 감사로그 한 건을 화면(멘토)에 내려줄 형태로 변환한 응답 DTO.
 *
 * 학습 포인트: 엔티티(AuditLog)를 그대로 반환하지 않고 DTO로 변환한다.
 *   시각(Instant)은 문자열로, action(enum)은 이름 문자열로 — 프론트가 다루기 쉽게 정돈한다.
 */
public record AuditLogResponse(
        Long id,
        String actor,
        String actorRole,
        String action,
        String detail,
        Long targetUserId,
        String ip,
        String createdAt) {

    public static AuditLogResponse from(AuditLog a) {
        return new AuditLogResponse(
                a.getId(),
                a.getActor(),
                a.getActorRole(),
                a.getAction().name(),
                a.getDetail(),
                a.getTargetUserId(),
                a.getIp(),
                a.getCreatedAt().toString());
    }
}
