import { z } from "zod";

export const assetSchema = z.object({
  id: z.number(),
  name: z.string(),
  clientId: z.number(),
  type: z.number(),
  purchaseDate: z.string().date(),
  cost: z.number(),
  depreciationRate: z.number(),
  total: z.number(),
  free: z.number(),
  status: z.number(),
  description: z.string(),
  vendorId: z.number(),
  warrentyExpire: z.string().date(),
  lastMaintenance: z.string().date(),
  nextMaintenance: z.string().date(),
  createdAt: z.string().datetime(),
  updatedAt: z.string().datetime(),
});

type assetTypes = z.infer<typeof assetSchema>;

export const assetAddSchema = z.object({
  name: assetSchema.shape.name,
  type: assetSchema.shape.type,
  purchaseDate: assetSchema.shape.purchaseDate,
  count: assetSchema.shape.total,
  cost: assetSchema.shape.cost,
  depreciationRate: assetSchema.shape.depreciationRate.optional(),
  status: assetSchema.shape.status,
  description: assetSchema.shape.description,
  vendorId: assetSchema.shape.vendorId,
  warrentyExpire: assetSchema.shape.warrentyExpire.optional(),
});

export const EditBasicDetailsSchema = z.object({
  assetId: assetSchema.shape.id,
  count: assetSchema.shape.total,
  description: assetSchema.shape.description.optional(),
});

export default assetTypes;
