refactor(products): remove subcategory from Product model and related queries

This commit is contained in:
Nils-Johan Gynther
2026-05-03 15:54:23 +02:00
parent 5864a6f111
commit dbd8c6d849
4 changed files with 6 additions and 10 deletions
-1
View File
@@ -33,7 +33,6 @@ model Product {
name String name String
normalizedName String @unique normalizedName String @unique
category String? category String?
subcategory String?
brand String? brand String?
canonicalName String? canonicalName String?
isActive Boolean @default(true) isActive Boolean @default(true)
+1 -2
View File
@@ -42,9 +42,8 @@ export class ProductsController {
@Get() @Get()
findAll( findAll(
@Query('tag') tag?: string, @Query('tag') tag?: string,
@Query('subcategory') subcategory?: string,
) { ) {
return this.productsService.findAll({ tag, subcategory }); return this.productsService.findAll({ tag });
} }
@Public() @Public()
+1 -7
View File
@@ -15,12 +15,11 @@ export class ProductsService {
private readonly categoriesService: CategoriesService, private readonly categoriesService: CategoriesService,
) {} ) {}
async findAll(filters?: { tag?: string; subcategory?: string }) { async findAll(filters?: { tag?: string }) {
return this.prisma.product.findMany({ return this.prisma.product.findMany({
where: { where: {
isActive: true, isActive: true,
isPrivate: false, isPrivate: false,
...(filters?.subcategory ? { subcategory: filters.subcategory } : {}),
...(filters?.tag ...(filters?.tag
? { tags: { some: { tag: { name: filters.tag } } } } ? { tags: { some: { tag: { name: filters.tag } } } }
: {}), : {}),
@@ -165,7 +164,6 @@ export class ProductsService {
normalizedName?: string; normalizedName?: string;
canonicalName?: string; canonicalName?: string;
category?: string | null; category?: string | null;
subcategory?: string | null;
brand?: string | null; brand?: string | null;
categoryId?: number | null; categoryId?: number | null;
} = {}; } = {};
@@ -195,10 +193,6 @@ export class ProductsService {
updateData.category = data.category.trim() || null; updateData.category = data.category.trim() || null;
} }
if (typeof data.subcategory === 'string') {
updateData.subcategory = data.subcategory.trim() || null;
}
if (typeof data.brand === 'string') { if (typeof data.brand === 'string') {
updateData.brand = data.brand.trim() || null; updateData.brand = data.brand.trim() || null;
} }
+4
View File
@@ -37,6 +37,10 @@ Relaterade dokument:
- **Bildimport:** Säkerställa att containrar är uppdaterade med senaste kod och att diagnostikloggar syns vid felsökning. - **Bildimport:** Säkerställa att containrar är uppdaterade med senaste kod och att diagnostikloggar syns vid felsökning.
- **Adminfunktioner:** Avancerad AI-integration och ytterligare adminfunktioner planeras men är ej migrerade. - **Adminfunktioner:** Avancerad AI-integration och ytterligare adminfunktioner planeras men är ej migrerade.
### Tillfällig MVP-notering (att ta bort senare)
- [ ] Ta bort tillfällig diagnostikbanner i kvittoimporten när MVP är verifierad.
Banner finns i `lib/features/import/presentation/receipt_import_tab.dart` och visar felkällor för `auth/token`, `categories`, `products:list`, `products:mine`.
### Prioriterade nästa steg ### Prioriterade nästa steg
1. Säkerställa robust bildimport och diagnostik. 1. Säkerställa robust bildimport och diagnostik.
2. Implementera hybrid alias-stöd i kvittoimport tillsammans med backend: user-scope alias som standard och global alias via admin. 2. Implementera hybrid alias-stöd i kvittoimport tillsammans med backend: user-scope alias som standard och global alias via admin.