import { z } from 'zod';

export const createInviteCodeSchema = z.object({
  maxUses: z.coerce.number().int().min(0).optional(),
  expiresInDays: z.coerce.number().int().min(1).max(365).optional(),
  note: z.string().max(200).optional(),
});

export const validateCodeSchema = z.object({
  code: z.string().min(1).max(20),
});

export const paginationSchema = z.object({
  page: z.coerce.number().int().min(1).default(1),
  limit: z.coerce.number().int().min(1).max(100).default(20),
});

export type CreateInviteCodeInput = z.infer<typeof createInviteCodeSchema>;
export type ValidateCodeInput = z.infer<typeof validateCodeSchema>;
export type PaginationInput = z.infer<typeof paginationSchema>;
