sporedimk/price-compare-api/dist/user/user.service.d.ts
2025-05-06 10:01:03 +02:00

138 lines
4.1 KiB
TypeScript

import { PrismaService } from '../prisma/prisma.service';
export declare class UserService {
private prisma;
constructor(prisma: PrismaService);
getWatchlist(userId: number): Promise<({
product: {
prices: ({
source: {
id: number;
name: string;
url: string;
logo: string | null;
lastScraped: Date | null;
createdAt: Date;
updatedAt: Date;
};
} & {
id: number;
createdAt: Date;
sourceId: number;
regularPrice: number;
discountedPrice: number | null;
discountPercentage: number | null;
unitPrice: string | null;
promotionType: string | null;
promotionStart: Date | null;
promotionEnd: Date | null;
vatIncluded: boolean;
lastUpdated: Date;
productId: number;
})[];
} & {
id: number;
name: string;
createdAt: Date;
updatedAt: Date;
description: string | null;
category: string;
availability: boolean;
sourceProductId: string | null;
sourceId: number;
};
} & {
id: number;
createdAt: Date;
productId: number;
userId: number;
})[]>;
addToWatchlist(userId: number, productId: number): Promise<{
id: number;
createdAt: Date;
productId: number;
userId: number;
}>;
removeFromWatchlist(userId: number, productId: number): Promise<{
id: number;
createdAt: Date;
productId: number;
userId: number;
}>;
getNotifications(userId: number): Promise<({
product: {
prices: ({
source: {
id: number;
name: string;
url: string;
logo: string | null;
lastScraped: Date | null;
createdAt: Date;
updatedAt: Date;
};
} & {
id: number;
createdAt: Date;
sourceId: number;
regularPrice: number;
discountedPrice: number | null;
discountPercentage: number | null;
unitPrice: string | null;
promotionType: string | null;
promotionStart: Date | null;
promotionEnd: Date | null;
vatIncluded: boolean;
lastUpdated: Date;
productId: number;
})[];
} & {
id: number;
name: string;
createdAt: Date;
updatedAt: Date;
description: string | null;
category: string;
availability: boolean;
sourceProductId: string | null;
sourceId: number;
};
} & {
id: number;
createdAt: Date;
updatedAt: Date;
productId: number;
userId: number;
priceThreshold: number | null;
percentThreshold: number | null;
notifyOnAnyChange: boolean;
isActive: boolean;
})[]>;
configureNotification(userId: number, data: {
productId: number;
priceThreshold?: number;
percentThreshold?: number;
notifyOnAnyChange?: boolean;
}): Promise<{
id: number;
createdAt: Date;
updatedAt: Date;
productId: number;
userId: number;
priceThreshold: number | null;
percentThreshold: number | null;
notifyOnAnyChange: boolean;
isActive: boolean;
}>;
removeNotification(userId: number, productId: number): Promise<{
id: number;
createdAt: Date;
updatedAt: Date;
productId: number;
userId: number;
priceThreshold: number | null;
percentThreshold: number | null;
notifyOnAnyChange: boolean;
isActive: boolean;
}>;
}