import { z } from 'zod';

/// JWT 解析后挂在 request 上的 scope context(含用户授权的 clinic 集合)。
/// 跟 auth.ts:AccessTokenPayloadSchema 对应,只是用 runtime 字段命名(无 iat/exp)。
/// 跟数据隔离不同:这是"调用方权限边界",数据表本身只用 hostId + tenantId 硬隔离。
export const TenantScopeSchema = z.object({
  hostId: z.string(),
  tenantId: z.string(),
  clinicIds: z.array(z.string()),
  userId: z.string(),
});
export type TenantScope = z.infer<typeof TenantScopeSchema>;

export const PagingResponseSchema = z.object({
  total: z.number().int(),
  page: z.number().int(),
  pageSize: z.number().int(),
});
export type PagingResponse = z.infer<typeof PagingResponseSchema>;
