Hide prices until admin sends the invoice, enforce status transitions, add customer/admin SMS+in-app notifications, schedule cash invoice reminders, and ship updated dist/prisma-client/deploy-bundle for git-pull deploys. Co-authored-by: Cursor <cursoragent@cursor.com>
148 lines
4.2 KiB
TypeScript
148 lines
4.2 KiB
TypeScript
import { PrismaService } from '../prisma/prisma.service';
|
|
import { AddCartItemDto, UpdateCartItemMeterageDto, UpdateCartNotesDto } from './dto/cart.dto';
|
|
export declare class CartsService {
|
|
private readonly prisma;
|
|
constructor(prisma: PrismaService);
|
|
getCart(userId: string): Promise<{
|
|
id: string;
|
|
userId: string;
|
|
companyId: string;
|
|
companyName: string;
|
|
notes: string | undefined;
|
|
items: {
|
|
id: string;
|
|
productId: string;
|
|
catalogCode: string;
|
|
productName: string;
|
|
productCode: string;
|
|
color: string;
|
|
meterage: number;
|
|
notes: string | undefined;
|
|
companyId: string;
|
|
companyName: string;
|
|
}[];
|
|
totalMeterage: number;
|
|
itemCount: number;
|
|
createdAt: string;
|
|
updatedAt: string;
|
|
}>;
|
|
addItem(userId: string, dto: AddCartItemDto): Promise<{
|
|
id: string;
|
|
userId: string;
|
|
companyId: string;
|
|
companyName: string;
|
|
notes: string | undefined;
|
|
items: {
|
|
id: string;
|
|
productId: string;
|
|
catalogCode: string;
|
|
productName: string;
|
|
productCode: string;
|
|
color: string;
|
|
meterage: number;
|
|
notes: string | undefined;
|
|
companyId: string;
|
|
companyName: string;
|
|
}[];
|
|
totalMeterage: number;
|
|
itemCount: number;
|
|
createdAt: string;
|
|
updatedAt: string;
|
|
}>;
|
|
updateItem(userId: string, itemId: string, dto: UpdateCartItemMeterageDto): Promise<{
|
|
id: string;
|
|
userId: string;
|
|
companyId: string;
|
|
companyName: string;
|
|
notes: string | undefined;
|
|
items: {
|
|
id: string;
|
|
productId: string;
|
|
catalogCode: string;
|
|
productName: string;
|
|
productCode: string;
|
|
color: string;
|
|
meterage: number;
|
|
notes: string | undefined;
|
|
companyId: string;
|
|
companyName: string;
|
|
}[];
|
|
totalMeterage: number;
|
|
itemCount: number;
|
|
createdAt: string;
|
|
updatedAt: string;
|
|
}>;
|
|
removeItem(userId: string, itemId: string): Promise<{
|
|
id: string;
|
|
userId: string;
|
|
companyId: string;
|
|
companyName: string;
|
|
notes: string | undefined;
|
|
items: {
|
|
id: string;
|
|
productId: string;
|
|
catalogCode: string;
|
|
productName: string;
|
|
productCode: string;
|
|
color: string;
|
|
meterage: number;
|
|
notes: string | undefined;
|
|
companyId: string;
|
|
companyName: string;
|
|
}[];
|
|
totalMeterage: number;
|
|
itemCount: number;
|
|
createdAt: string;
|
|
updatedAt: string;
|
|
}>;
|
|
updateNotes(userId: string, dto: UpdateCartNotesDto): Promise<{
|
|
id: string;
|
|
userId: string;
|
|
companyId: string;
|
|
companyName: string;
|
|
notes: string | undefined;
|
|
items: {
|
|
id: string;
|
|
productId: string;
|
|
catalogCode: string;
|
|
productName: string;
|
|
productCode: string;
|
|
color: string;
|
|
meterage: number;
|
|
notes: string | undefined;
|
|
companyId: string;
|
|
companyName: string;
|
|
}[];
|
|
totalMeterage: number;
|
|
itemCount: number;
|
|
createdAt: string;
|
|
updatedAt: string;
|
|
}>;
|
|
clearCart(userId: string): Promise<{
|
|
id: string;
|
|
userId: string;
|
|
companyId: string;
|
|
companyName: string;
|
|
notes: string | undefined;
|
|
items: {
|
|
id: string;
|
|
productId: string;
|
|
catalogCode: string;
|
|
productName: string;
|
|
productCode: string;
|
|
color: string;
|
|
meterage: number;
|
|
notes: string | undefined;
|
|
companyId: string;
|
|
companyName: string;
|
|
}[];
|
|
totalMeterage: number;
|
|
itemCount: number;
|
|
createdAt: string;
|
|
updatedAt: string;
|
|
}>;
|
|
private validateMeterage;
|
|
private ensureCart;
|
|
private mapCart;
|
|
}
|