71 lines
1.5 KiB
TypeScript
71 lines
1.5 KiB
TypeScript
// src/app/services/order.service.ts
|
|
//
|
|
// PURPOSE:
|
|
// - Handle Order Record CRUD operations
|
|
// - Manage order status transitions
|
|
// - Handle order-event relationships
|
|
//
|
|
|
|
import type { OrderItem } from '@prisma/client';
|
|
|
|
import prisma from '../lib/prisma';
|
|
|
|
type CreateOrderItem = {
|
|
orderNumber?: string;
|
|
// status?: string;
|
|
// eventIds?: number[];
|
|
};
|
|
|
|
type UpdateOrderItem = {
|
|
orderNumber?: string;
|
|
// status?: string;
|
|
// last_payment_date?: Date;
|
|
// eventIds?: number[];
|
|
};
|
|
|
|
async function listOrders(): Promise<OrderItem[]> {
|
|
return prisma.orderItem.findMany();
|
|
}
|
|
|
|
async function getOrder(orderId: string): Promise<OrderItem | null> {
|
|
return prisma.orderItem.findFirst({
|
|
where: { id: orderId },
|
|
});
|
|
}
|
|
|
|
async function createOrder(createForm: CreateOrderItem): Promise<OrderItem> {
|
|
return prisma.orderItem.create({
|
|
data: createForm,
|
|
});
|
|
}
|
|
|
|
async function updateOrder(orderId: string, updateForm: UpdateOrderItem): Promise<OrderItem> {
|
|
return prisma.orderItem.update({
|
|
where: { id: orderId },
|
|
data: updateForm,
|
|
});
|
|
}
|
|
|
|
async function deleteOrder(orderId: string): Promise<OrderItem> {
|
|
return prisma.orderItem.delete({
|
|
where: { id: orderId },
|
|
});
|
|
}
|
|
|
|
async function getOrdersByStatus(status: string): Promise<OrderItem[]> {
|
|
return prisma.orderItem.findMany({
|
|
where: { status },
|
|
});
|
|
}
|
|
|
|
export {
|
|
getOrder,
|
|
listOrders,
|
|
createOrder,
|
|
updateOrder,
|
|
deleteOrder,
|
|
getOrdersByStatus,
|
|
type CreateOrderItem as CreateOrder,
|
|
type UpdateOrderItem as UpdateOrder,
|
|
};
|