import type { ApiKeyEnvironment, ApiKeyScope, ApiKeyType } from "@prisma/client";

export interface ApiKeyAuthContext {
  kind: "api_key";
  apiKeyId: string;
  merchantId: string;
  type: ApiKeyType;
  environment: ApiKeyEnvironment;
  scope: ApiKeyScope;
}

export interface AdminAuthContext {
  kind: "admin";
}

export type AuthContext = ApiKeyAuthContext | AdminAuthContext;

declare module "express" {
  interface Request {
    auth?: AuthContext;
  }
}
