TypeScript/Bun project scaffold
- Stack: Bun, Hono, Drizzle ORM, Zod, Handlebars, Pino - Models: ticket, queue, transaction, scrip, template, custom_field, user, lifecycle - Scrip engine: prepare/commit two-phase dispatch, template rendering, mock actions - Lifecycle validator: state machine transition validation with wildcard support - Routes: health, tickets (full CRUD + preview + transactions), queues, scrips, custom-fields, lifecycles - Middleware: Pino logging, error handler - Database: Drizzle ORM schema + initial migration (10 tables) - Type-check: passes (tsc --noEmit, zero errors)
This commit is contained in:
16
src/models/ticket.ts
Normal file
16
src/models/ticket.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
import type { InferSelectModel } from 'drizzle-orm';
|
||||
import { z } from 'zod/v4';
|
||||
import { tickets } from '../db/schema.ts';
|
||||
|
||||
export type Ticket = InferSelectModel<typeof tickets>;
|
||||
|
||||
export const CreateTicketSchema = z.object({
|
||||
subject: z.string().min(1),
|
||||
queue_id: z.string().uuid(),
|
||||
});
|
||||
|
||||
export const UpdateTicketSchema = z.object({
|
||||
subject: z.string().min(1).optional(),
|
||||
status: z.string().min(1).optional(),
|
||||
owner_id: z.string().uuid().optional(),
|
||||
});
|
||||
Reference in New Issue
Block a user