21 lines
715 B
TypeScript
21 lines
715 B
TypeScript
import { z } from 'zod'
|
|
|
|
/**
|
|
* Zod schema for auction data validation
|
|
* Ensures all scraped data conforms to expected structure before database insertion
|
|
*/
|
|
export const AuctionSchema = z.object({
|
|
auctionNum: z.string().trim().min(1, 'Auction number is required'),
|
|
title: z.string().trim().min(1, 'Title is required'),
|
|
organization: z.string().trim().min(1, 'Organization is required'),
|
|
status: z.string().trim().min(1, 'Status is required'),
|
|
deadline: z.string().nullable().default(null),
|
|
link: z.string().url('Link must be a valid URL'),
|
|
description: z.string().nullable().default(null),
|
|
})
|
|
|
|
/**
|
|
* TypeScript type inferred from schema
|
|
*/
|
|
export type AuctionData = z.infer<typeof AuctionSchema>
|