MAJOR UPPDATE: "First Ai"
feat: add AI categorization for products and enhance user management - Integrated AI service for category suggestions in receipt import and product management. - Added premium subscription feature for users with corresponding API endpoints. - Implemented admin interface for managing pending product suggestions. - Enhanced user management to include premium status and corresponding UI updates. - Updated database schema to support new fields for premium status and product status.
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
import {
|
||||
Controller,
|
||||
Post,
|
||||
Request,
|
||||
UploadedFile,
|
||||
UseGuards,
|
||||
UseInterceptors,
|
||||
BadRequestException,
|
||||
} from '@nestjs/common';
|
||||
@@ -9,6 +11,7 @@ import { FileInterceptor } from '@nestjs/platform-express';
|
||||
import { memoryStorage } from 'multer';
|
||||
import { ReceiptImportService } from './receipt-import.service';
|
||||
import { ParsedReceiptItem } from './dto/parsed-receipt-item.dto';
|
||||
import { JwtAuthGuard } from '../auth/jwt-auth.guard';
|
||||
|
||||
const ALLOWED_MIMES = [
|
||||
'image/jpeg',
|
||||
@@ -24,6 +27,7 @@ export class ReceiptImportController {
|
||||
constructor(private readonly receiptImportService: ReceiptImportService) {}
|
||||
|
||||
@Post()
|
||||
@UseGuards(JwtAuthGuard)
|
||||
@UseInterceptors(
|
||||
FileInterceptor('file', {
|
||||
storage: memoryStorage(),
|
||||
@@ -32,6 +36,7 @@ export class ReceiptImportController {
|
||||
)
|
||||
async parseReceipt(
|
||||
@UploadedFile() file?: Express.Multer.File,
|
||||
@Request() req?: any,
|
||||
): Promise<ParsedReceiptItem[]> {
|
||||
if (!file?.buffer) {
|
||||
throw new BadRequestException('Ingen fil skickades med.');
|
||||
@@ -41,6 +46,7 @@ export class ReceiptImportController {
|
||||
'Otillåten filtyp. Använd JPEG, PNG, WebP eller PDF.',
|
||||
);
|
||||
}
|
||||
return this.receiptImportService.parseReceipt(file);
|
||||
const isPremium = req?.user?.isPremium === true || req?.user?.role === 'admin';
|
||||
return this.receiptImportService.parseReceipt(file, isPremium);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user