package com.baiyue.auth.dto; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; /** 海外 PDA 已验签身份的实时会话校验契约;绝不接收 raw JWT 或用户凭据。 */ public final class OverseasSessionValidationDtos { private OverseasSessionValidationDtos() { } @Schema(name = "OverseasSessionValidationRequest", description = "Claims extracted only after overseas Gateway verifies the JWT signature") public record Request( @NotNull Long userId, @NotNull Integer tokenVersion, Long overseasWarehouseId) { } @Schema(name = "OverseasSessionValidationResponse") public record Response(boolean valid, FailureReason failureReason) { public static Response accepted() { return new Response(true, null); } public static Response rejected(FailureReason reason) { return new Response(false, reason); } } public enum FailureReason { ACCOUNT_INVALID, TOKEN_VERSION_MISMATCH, WAREHOUSE_UNBOUND, WAREHOUSE_MISMATCH } }