package com.zioinfo.cms.admin.dto;

import com.zioinfo.cms.auth.CmsUser;

import java.time.LocalDateTime;

/**
 * 사용자 응답 DTO.
 *
 * <p>보안 불변 규칙: password_hash 는 어떤 응답에도 포함하지 않는다.
 */
public record UserDto(
        Long id,
        String username,
        String displayName,
        String role,
        boolean active,
        LocalDateTime createdAt
) {
    public static UserDto from(CmsUser u) {
        return new UserDto(u.getId(), u.getUsername(), u.getDisplayName(), u.getRole(), u.isActive(), u.getCreatedAt());
    }
}
