Files
HKSingleParty/03_source/cms_backend/src/app/services/order.service.ts

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,
};