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>
146 lines
4.2 KiB
TypeScript
146 lines
4.2 KiB
TypeScript
import { CartsService } from './carts.service';
|
|
import type { AuthPrincipal } from '../common/decorators/current-user.decorator';
|
|
import { AddCartItemDto, UpdateCartItemMeterageDto, UpdateCartNotesDto } from './dto/cart.dto';
|
|
export declare class CartsController {
|
|
private readonly cartsService;
|
|
constructor(cartsService: CartsService);
|
|
getCart(user: AuthPrincipal): 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(user: AuthPrincipal, 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(user: AuthPrincipal, 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(user: AuthPrincipal, 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(user: AuthPrincipal, 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;
|
|
}>;
|
|
clear(user: AuthPrincipal): 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;
|
|
}>;
|
|
}
|