import { createZodDto } from 'nestjs-zod';
import {
  CreateHostRequestSchema,
  CreateHostResponseSchema,
  ListHostsResponseSchema,
  HostSummarySchema,
  HostDetailSchema,
  HostStatsSchema,
  RotatePushSecretResponseSchema,
  RotateSecretResponseSchema,
  RemovePushSecretRequestSchema,
  RemovePushSecretResponseSchema,
  UpdateHostRequestSchema,
  AiInvocationListQuerySchema,
  AiInvocationListItemSchema,
  AiInvocationDetailSchema,
  AiInvocationStatsSchema,
  ListAiInvocationsResponseSchema,
} from '@pac/types';

export class CreateHostRequestDto extends createZodDto(CreateHostRequestSchema) {}
export class CreateHostResponseDto extends createZodDto(CreateHostResponseSchema) {}
export class ListHostsResponseDto extends createZodDto(ListHostsResponseSchema) {}
export class HostSummaryDto extends createZodDto(HostSummarySchema) {}
export class HostDetailDto extends createZodDto(HostDetailSchema) {}
export class HostStatsDto extends createZodDto(HostStatsSchema) {}
export class UpdateHostRequestDto extends createZodDto(UpdateHostRequestSchema) {}
export class RotateSecretResponseDto extends createZodDto(RotateSecretResponseSchema) {}
export class RotatePushSecretResponseDto extends createZodDto(RotatePushSecretResponseSchema) {}
export class RemovePushSecretRequestDto extends createZodDto(RemovePushSecretRequestSchema) {}
export class RemovePushSecretResponseDto extends createZodDto(RemovePushSecretResponseSchema) {}

// AI Invocations
export class AiInvocationListQueryDto extends createZodDto(AiInvocationListQuerySchema) {}
export class AiInvocationListItemDto extends createZodDto(AiInvocationListItemSchema) {}
export class AiInvocationDetailDto extends createZodDto(AiInvocationDetailSchema) {}
export class AiInvocationStatsDto extends createZodDto(AiInvocationStatsSchema) {}
export class ListAiInvocationsResponseDto extends createZodDto(ListAiInvocationsResponseSchema) {}
