package jnpf.util.auth;

import io.swagger.v3.oas.annotations.Operation;
import jnpf.util.auth.fallback.V2AuthPermissionApiFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;

import java.util.List;

/**
 * 登录人数据权限-组织范围 API（与 FTB 内 {@code V2AuthPermissionUtils#getLoginUserAuthOrganizeIds()} 语义一致）。
 * <p>
 * 返回值约定：{@code null} 表示全部；空列表表示无权限；非空为组织/门店 id 列表（已排除班组）。
 * Feign 降级时抛出异常，不会返回空列表以免误判为无权限（当前暂无正式熔断占位策略）。
 */
@FeignClient(name = "jnpf-ftb", contextId = "v2AuthPermissionApi", path = "/permission/auth", fallbackFactory = V2AuthPermissionApiFallback.class)
public interface V2AuthPermissionApi {

    @Operation(summary = "[API] 当前登录人在权限范围内的组织/门店 id 列表（未包裹 ActionResult）")
    @GetMapping("/login-user-organize-ids")
    List<String> getLoginUserAuthOrganizeIds();
}
