vendor slugs routes instead of ids

This commit is contained in:
2026-01-27 16:56:57 -05:00
parent aa2f30c086
commit c6ff651f21
10 changed files with 247 additions and 120 deletions

View File

@@ -1,6 +1,7 @@
import { NextRequest, NextResponse } from 'next/server'
import { prisma } from '@/lib/prisma'
import { VendorType, VendorStatus } from '@prisma/client'
import { generateUniqueSlug, slugify } from '@/lib/utils/slugify'
export async function POST(request: NextRequest) {
try {
@@ -15,6 +16,17 @@ export async function POST(request: NextRequest) {
{ status: 400 }
)
}
const baseSlug = slugify(body.name)
const uniqueSlug = await generateUniqueSlug(
baseSlug,
async (slug) => {
const existing = await prisma.vendor.findUnique({
where: { slug }
})
return !!existing
}
)
// Check if we have address data
const hasAddress = body.street && body.city && body.state && body.postalCode
@@ -34,6 +46,7 @@ export async function POST(request: NextRequest) {
// Prepare vendor data WITHOUT addressId
const vendorData: any = {
slug: uniqueSlug,
name: body.name,
type: body.type as VendorType,
description: body.description || null,