package gc.mda.kcg.permission.dto;

import jakarta.validation.constraints.NotEmpty;

import java.util.List;

/**
 * 역할의 권한 매트릭스 일괄 업데이트.
 * 클라이언트에서 변경된 셀(또는 전체)을 보내고, 백엔드는 upsert/delete 처리.
 *
 * 규칙:
 *   - grantYn = "Y" 또는 "N" → 명시적 권한으로 upsert
 *   - grantYn = null 또는 "" → 명시적 권한 제거 (트리 상속 모드로 복귀)
 */
public record PermissionUpdateRequest(
        @NotEmpty List<PermEntry> permissions
) {
    public record PermEntry(
            String rsrcCd,
            String operCd,
            String grantYn   // "Y" / "N" / null (제거)
    ) {}
}
