feat: add rematch functionality for recipe ingredients and enhance inventory management
Test Suite / test (24.15.0) (push) Has been cancelled
Test Suite / test (24.15.0) (push) Has been cancelled
- Added a new API path for rematching recipe ingredients in `api_paths.dart`. - Implemented a manual product creation dialog in `inventory_screen.dart` to allow users to create new products directly. - Integrated the rematch functionality in `recipe_repository.dart` to handle rematching of recipe ingredients. - Updated the recipe detail screen to include a button for triggering the rematch process. - Introduced a new `RecipeMatchingService` in the backend to handle ingredient matching logic. - Added database migration to include `aiEngineEnabled` column in the User table. Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
+25
@@ -14,6 +14,7 @@ export declare class UsersService {
|
||||
role: string;
|
||||
isPremium: boolean;
|
||||
canShareRecipes: boolean;
|
||||
aiEngineEnabled: boolean;
|
||||
} | null, null, import("@prisma/client/runtime/library").DefaultArgs, import(".prisma/client").Prisma.PrismaClientOptions>;
|
||||
findById(id: number): import(".prisma/client").Prisma.Prisma__UserClient<{
|
||||
id: number;
|
||||
@@ -27,6 +28,7 @@ export declare class UsersService {
|
||||
role: string;
|
||||
isPremium: boolean;
|
||||
canShareRecipes: boolean;
|
||||
aiEngineEnabled: boolean;
|
||||
} | null, null, import("@prisma/client/runtime/library").DefaultArgs, import(".prisma/client").Prisma.PrismaClientOptions>;
|
||||
create(data: {
|
||||
username: string;
|
||||
@@ -44,6 +46,7 @@ export declare class UsersService {
|
||||
role: string;
|
||||
isPremium: boolean;
|
||||
canShareRecipes: boolean;
|
||||
aiEngineEnabled: boolean;
|
||||
}, never, import("@prisma/client/runtime/library").DefaultArgs, import(".prisma/client").Prisma.PrismaClientOptions>;
|
||||
updateProfile(id: number, data: {
|
||||
firstName?: string;
|
||||
@@ -61,6 +64,7 @@ export declare class UsersService {
|
||||
role: string;
|
||||
isPremium: boolean;
|
||||
canShareRecipes: boolean;
|
||||
aiEngineEnabled: boolean;
|
||||
}, never, import("@prisma/client/runtime/library").DefaultArgs, import(".prisma/client").Prisma.PrismaClientOptions>;
|
||||
findAll(): import(".prisma/client").Prisma.PrismaPromise<{
|
||||
id: number;
|
||||
@@ -72,6 +76,7 @@ export declare class UsersService {
|
||||
role: string;
|
||||
isPremium: boolean;
|
||||
canShareRecipes: boolean;
|
||||
aiEngineEnabled: boolean;
|
||||
}[]>;
|
||||
setRole(id: number, role: string): import(".prisma/client").Prisma.Prisma__UserClient<{
|
||||
id: number;
|
||||
@@ -85,6 +90,7 @@ export declare class UsersService {
|
||||
role: string;
|
||||
isPremium: boolean;
|
||||
canShareRecipes: boolean;
|
||||
aiEngineEnabled: boolean;
|
||||
}, never, import("@prisma/client/runtime/library").DefaultArgs, import(".prisma/client").Prisma.PrismaClientOptions>;
|
||||
setPremium(id: number, isPremium: boolean): import(".prisma/client").Prisma.Prisma__UserClient<{
|
||||
id: number;
|
||||
@@ -98,6 +104,7 @@ export declare class UsersService {
|
||||
role: string;
|
||||
isPremium: boolean;
|
||||
canShareRecipes: boolean;
|
||||
aiEngineEnabled: boolean;
|
||||
}, never, import("@prisma/client/runtime/library").DefaultArgs, import(".prisma/client").Prisma.PrismaClientOptions>;
|
||||
setRecipeSharing(id: number, canShareRecipes: boolean): import(".prisma/client").Prisma.Prisma__UserClient<{
|
||||
id: number;
|
||||
@@ -111,6 +118,21 @@ export declare class UsersService {
|
||||
role: string;
|
||||
isPremium: boolean;
|
||||
canShareRecipes: boolean;
|
||||
aiEngineEnabled: boolean;
|
||||
}, never, import("@prisma/client/runtime/library").DefaultArgs, import(".prisma/client").Prisma.PrismaClientOptions>;
|
||||
setAiEngineEnabled(id: number, aiEngineEnabled: boolean): import(".prisma/client").Prisma.Prisma__UserClient<{
|
||||
id: number;
|
||||
createdAt: Date;
|
||||
updatedAt: Date;
|
||||
username: string;
|
||||
email: string;
|
||||
firstName: string | null;
|
||||
lastName: string | null;
|
||||
passwordHash: string;
|
||||
role: string;
|
||||
isPremium: boolean;
|
||||
canShareRecipes: boolean;
|
||||
aiEngineEnabled: boolean;
|
||||
}, never, import("@prisma/client/runtime/library").DefaultArgs, import(".prisma/client").Prisma.PrismaClientOptions>;
|
||||
adminCreate(data: {
|
||||
username: string;
|
||||
@@ -129,6 +151,7 @@ export declare class UsersService {
|
||||
role: string;
|
||||
isPremium: boolean;
|
||||
canShareRecipes: boolean;
|
||||
aiEngineEnabled: boolean;
|
||||
}>;
|
||||
deleteUser(id: number): import(".prisma/client").Prisma.Prisma__UserClient<{
|
||||
id: number;
|
||||
@@ -142,6 +165,7 @@ export declare class UsersService {
|
||||
role: string;
|
||||
isPremium: boolean;
|
||||
canShareRecipes: boolean;
|
||||
aiEngineEnabled: boolean;
|
||||
}, never, import("@prisma/client/runtime/library").DefaultArgs, import(".prisma/client").Prisma.PrismaClientOptions>;
|
||||
resetPassword(id: number): Promise<{
|
||||
temporaryPassword: string;
|
||||
@@ -158,5 +182,6 @@ export declare class UsersService {
|
||||
role: string;
|
||||
isPremium: boolean;
|
||||
canShareRecipes: boolean;
|
||||
aiEngineEnabled: boolean;
|
||||
}, never, import("@prisma/client/runtime/library").DefaultArgs, import(".prisma/client").Prisma.PrismaClientOptions>;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user