Files
marketplace/server/src/validators/listing.ts
delta-lynx-89e8 b37b734c82 Initial marketplace implementation
Full-stack marketplace for buying/selling second-hand items.
React 19 + TypeScript + Tailwind CSS v4 frontend with 17 screens,
Express + Prisma + Socket.io backend, Stripe payments, JWT auth.

Deployed at https://marketplace.173.212.212.157.sslip.io/

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 07:00:44 -08:00

14 lines
666 B
TypeScript

import { z } from 'zod';
export const createListingSchema = z.object({
title: z.string().min(3, 'Title must be at least 3 characters').max(100),
description: z.string().min(10, 'Description must be at least 10 characters').max(2000),
price: z.number().positive('Price must be positive'),
obo: z.boolean().optional().default(false),
category: z.enum(['ELECTRONICS', 'FURNITURE', 'CLOTHING', 'HOME_GARDEN', 'SPORTS', 'BOOKS', 'GAMES', 'VEHICLES', 'OTHER']),
condition: z.enum(['NEW', 'LIKE_NEW', 'GENTLY_USED', 'USED', 'FAIR']),
location: z.string().min(2, 'Location is required'),
});
export const updateListingSchema = createListingSchema.partial();