import { z } from 'zod';
import { createZodDto } from 'nestjs-zod';

const PageSchema = z.coerce.number().int().min(1).default(1);
const LimitSchema = z.coerce.number().int().min(1).max(100).default(20);

export const AccountsQuerySchema = z.object({
  page: PageSchema,
  limit: LimitSchema,
  search: z.string().trim().max(255).optional(),
  status: z.enum(['all', 'active', 'deleted']).default('active'),
  verified: z.enum(['all', 'verified', 'unverified']).default('all'),
  premium: z.enum(['all', 'premium', 'free']).default('all'),
});
export class AccountsQueryDto extends createZodDto(AccountsQuerySchema) {}

export const DevicesQuerySchema = z.object({
  page: PageSchema,
  limit: LimitSchema,
  search: z.string().trim().max(255).optional(),
  platform: z.enum(['all', 'ios', 'android']).default('all'),
});
export class DevicesQueryDto extends createZodDto(DevicesQuerySchema) {}
