Initial commit

This commit is contained in:
Jose Selesan
2026-04-08 22:53:11 -03:00
commit 9ae270609d
179 changed files with 28096 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
import { zValidator } from '@hono/zod-validator'
import {
createPublicBookingSchema,
publicAvailabilityQuerySchema,
} from '@repo/api-contract'
import { Hono } from 'hono'
import { z } from 'zod'
import { createPublicBookingHandler } from '@/modules/public-booking/handlers/create-public-booking.handler'
import { getPublicBookingConfirmationHandler } from '@/modules/public-booking/handlers/get-public-booking-confirmation.handler'
import { listPublicAvailabilityHandler } from '@/modules/public-booking/handlers/list-public-availability.handler'
import type { AppEnv } from '@/types/hono'
export const publicBookingRoutes = new Hono<AppEnv>()
const complexSlugParamsSchema = z.object({ complexSlug: z.string().trim().min(1) })
const confirmationParamsSchema = z.object({
complexSlug: z.string().trim().min(1),
bookingCode: z.string().trim().min(6).max(8),
})
publicBookingRoutes.get(
'/complex/:complexSlug/availability',
zValidator('param', complexSlugParamsSchema),
zValidator('query', publicAvailabilityQuerySchema),
listPublicAvailabilityHandler,
)
publicBookingRoutes.post(
'/complex/:complexSlug',
zValidator('param', complexSlugParamsSchema),
zValidator('json', createPublicBookingSchema),
createPublicBookingHandler,
)
publicBookingRoutes.get(
'/complex/:complexSlug/confirmation/:bookingCode',
zValidator('param', confirmationParamsSchema),
getPublicBookingConfirmationHandler,
)