package com.zioinfo.hrm.uiws.common;

import java.util.List;

/**
 * 데이터 가시범위(스코프) — UIWS DataScopeService 의 silo 단순화 이식.
 * 원본은 부서계층(TB_DEPT) 기반 팀 스코프를 산출하나, ERP 이식본은 코어 dept 테이블을 이식하지 않으므로
 * 역할만으로 판정한다:
 *   - ADMIN  → 전체(all=true)
 *   - 그 외   → 본인 데이터만(ownerIds = [본인])
 * (부서계층 스코프가 필요해지면 ERP tb_department 연계로 확장 — 후속 트랙.)
 */
public final class UiwsDataScope {

    private UiwsDataScope() {
    }

    /** all=true 면 전체 조회(ownerIds 무시). ownerIds 는 항상 본인 포함(빈 IN 회피). */
    public record Scope(boolean all, List<String> ownerIds) {
    }

    public static Scope current() {
        String me = UiwsCurrentUser.id();
        if (UiwsCurrentUser.isAdmin()) {
            return new Scope(true, List.of(me));
        }
        return new Scope(false, List.of(me));
    }
}
