import { z } from 'zod';
import { carImageSchema } from './car-image.schema';
import { websiteSchema } from './website.schema';

export const carSchema = z.object({
  brand: z.string().nullable(),
  color: z.string().nullable(),
  created_at: z.iso.datetime().nullable(),
  currency: z.string().nullable(),
  deleted_at: z.iso.datetime().nullable(),
  description: z.string().nullable(),
  engine_size: z.string().nullable(),
  engine_type: z.string().nullable(),
  id: z.number(),
  images: z.array(carImageSchema),
  kilometers: z.number().nullable(),
  main_image: z.string(),
  model: z.string().nullable(),
  name: z.string().nullable(),
  power_output: z.number().nullable(),
  price_label: z.string().nullable(),
  price_on_request: z.boolean().nullable(),
  price: z.string().nullable(),
  prior_mileage: z.number().nullable(),
  slug: z.string(),
  torque: z.string().nullable(),
  traction_type: z.string().nullable(),
  transmission: z.string().nullable(),
  updated_at: z.iso.datetime().nullable(),
  user_id: z.number(),
  vehicle_type: z.string().nullable(),
  website_id: z.number().nullable(),
  website: websiteSchema,
  wheels: z.string().nullable(),
  year: z.string().nullable(),
});

export type CarDTO = z.infer<typeof carSchema>;
