New booking dashboard

This commit is contained in:
Jose Selesan
2026-04-09 14:54:13 -03:00
parent 11dd12682c
commit aa2fe41ecc
16 changed files with 1292 additions and 42 deletions

View File

@@ -0,0 +1,24 @@
import type { CreateAdminBookingInput } from '@repo/api-contract'
import {
AdminBookingServiceError,
createAdminBooking,
} from '@/modules/admin-booking/services/admin-booking.service'
import type { AppContext } from '@/types/hono'
type ComplexIdParams = { complexId: string }
export async function createAdminBookingHandler(c: AppContext) {
const { complexId } = c.req.valid('param' as never) as ComplexIdParams
const payload = c.req.valid('json' as never) as CreateAdminBookingInput
const appUserId = c.get('appUserId')
try {
const booking = await createAdminBooking(appUserId, complexId, payload)
return c.json(booking, 201)
} catch (error) {
if (error instanceof AdminBookingServiceError) {
return c.json({ message: error.message }, error.status)
}
throw error
}
}

View File

@@ -0,0 +1,24 @@
import type { ListAdminBookingsQuery } from '@repo/api-contract'
import {
AdminBookingServiceError,
listAdminBookings,
} from '@/modules/admin-booking/services/admin-booking.service'
import type { AppContext } from '@/types/hono'
type ComplexIdParams = { complexId: string }
export async function listAdminBookingsHandler(c: AppContext) {
const { complexId } = c.req.valid('param' as never) as ComplexIdParams
const query = c.req.valid('query' as never) as ListAdminBookingsQuery
const appUserId = c.get('appUserId')
try {
const response = await listAdminBookings(appUserId, complexId, query)
return c.json(response)
} catch (error) {
if (error instanceof AdminBookingServiceError) {
return c.json({ message: error.message }, error.status)
}
throw error
}
}

View File

@@ -0,0 +1,24 @@
import type { UpdateAdminBookingStatusInput } from '@repo/api-contract'
import {
AdminBookingServiceError,
updateAdminBookingStatus,
} from '@/modules/admin-booking/services/admin-booking.service'
import type { AppContext } from '@/types/hono'
type BookingIdParams = { id: string }
export async function updateAdminBookingStatusHandler(c: AppContext) {
const { id } = c.req.valid('param' as never) as BookingIdParams
const payload = c.req.valid('json' as never) as UpdateAdminBookingStatusInput
const appUserId = c.get('appUserId')
try {
const booking = await updateAdminBookingStatus(appUserId, id, payload)
return c.json(booking)
} catch (error) {
if (error instanceof AdminBookingServiceError) {
return c.json({ message: error.message }, error.status)
}
throw error
}
}