move product model and coordinate model into models/

This commit is contained in:
Mikkel Troels Kongsted 2025-03-05 12:37:48 +01:00
parent 18170b5364
commit 86100a103a
10 changed files with 45 additions and 38 deletions

View File

@ -23,7 +23,7 @@ class MyApp extends StatelessWidget {
return MultiProvider(
providers: [
ChangeNotifierProvider(create: (_) => Routing()),
ChangeNotifierProvider(create: (_) => ProductRepo()),
ChangeNotifierProvider(create: (_) => ProductRepoByMemory()),
ChangeNotifierProvider(create: (_) => CartRepo()),
ChangeNotifierProvider(create: (_) => ReceiptRepo()),
ChangeNotifierProvider(create: (_) => PayingStateRepo()),

View File

@ -0,0 +1,6 @@
class Coordinate {
final double x;
final double y;
Coordinate({required this.x, required this.y});
}

View File

@ -0,0 +1,19 @@
import 'package:mobile/models/coordinate.dart';
class Product {
final int id;
final String name;
final String description;
final int priceInDkkCent;
final Coordinate? location;
final String? barcode;
Product({
required this.id,
required this.name,
required this.priceInDkkCent,
required this.description,
this.location,
this.barcode,
});
}

View File

@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:mobile/models/product.dart';
import 'package:mobile/repos/product.dart';
import 'package:mobile/utils/price.dart';
import 'package:mobile/widgets/sized_card.dart';
@ -98,7 +99,7 @@ class AllProductsPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
final productRepo = Provider.of<ProductRepo>(context);
final productRepo = Provider.of<ProductRepoByMemory>(context);
return Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
@ -121,7 +122,8 @@ class AllProductsPage extends StatelessWidget {
],
),
Expanded(
child: Consumer<ProductRepo>(builder: (_, productRepo, __) {
child:
Consumer<ProductRepoByMemory>(builder: (_, productRepo, __) {
final products = productRepo.filteredProducts;
return ListView.builder(
shrinkWrap: true,

View File

@ -2,6 +2,7 @@ import 'package:barcode_scan2/model/android_options.dart';
import 'package:barcode_scan2/model/scan_options.dart';
import 'package:barcode_scan2/platform_wrapper.dart';
import 'package:flutter/material.dart';
import 'package:mobile/models/product.dart';
import 'package:mobile/pages/finish_shopping_page.dart';
import 'package:mobile/repos/cart.dart';
import 'package:mobile/repos/product.dart';
@ -204,8 +205,9 @@ class CartPage extends StatelessWidget {
child: const Text("Cancel")),
TextButton(
onPressed: () {
final ProductRepo productRepo =
context.read<ProductRepo>();
final ProductRepoByMemory
productRepo = context.read<
ProductRepoByMemory>();
final CartRepo cartRepo =
context.read<CartRepo>();
final productResult =
@ -269,8 +271,8 @@ class CartPage extends StatelessWidget {
}
final CartRepo cartRepo =
context.read<CartRepo>();
final ProductRepo productRepo =
context.read<ProductRepo>();
final ProductRepoByMemory productRepo =
context.read<ProductRepoByMemory>();
final productResult = productRepo
.productWithBarcode(result.rawContent);
switch (productResult) {

View File

@ -1,7 +1,8 @@
import 'dart:ui' as ui;
import 'package:flutter/material.dart';
import 'package:mobile/models/coordinate.dart';
import 'package:mobile/models/product.dart';
import 'package:mobile/repos/location_image.dart';
import 'package:mobile/repos/product.dart';
import 'package:provider/provider.dart';
class ProductLocationPage extends StatelessWidget {

View File

@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
import 'package:mobile/models/product.dart';
import 'package:mobile/pages/product_location_page.dart';
import 'package:mobile/repos/add_to_cart_state.dart';
import 'package:mobile/repos/cart.dart';
import 'package:mobile/repos/product.dart';
import 'package:mobile/utils/price.dart';
import 'package:mobile/widgets/primary_button.dart';
import 'package:provider/provider.dart';

View File

@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:mobile/repos/product.dart';
import 'package:mobile/models/product.dart';
class ProductIdException implements Exception {}

View File

@ -1,11 +1,13 @@
import 'package:flutter/material.dart';
import 'package:mobile/models/coordinate.dart';
import 'package:mobile/models/product.dart';
import 'package:mobile/results.dart';
class ProductRepo extends ChangeNotifier {
class ProductRepoByMemory extends ChangeNotifier {
int _nextId = 0;
List<Product> products = [];
late List<Product> filteredProducts;
ProductRepo() {
ProductRepoByMemory() {
_addAllProducts();
filteredProducts = products;
}
@ -123,28 +125,3 @@ class ProductRepo extends ChangeNotifier {
];
}
}
class Coordinate {
final double x;
final double y;
Coordinate({required this.x, required this.y});
}
class Product {
final int id;
final String name;
final String description;
final int priceInDkkCent;
final Coordinate? location;
final String? barcode;
Product({
required this.id,
required this.name,
required this.priceInDkkCent,
required this.description,
this.location,
this.barcode,
});
}

View File

@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:mobile/models/product.dart';
import 'package:mobile/repos/cart.dart';
import 'package:mobile/repos/product.dart';
class ReceiptRepo extends ChangeNotifier {
int nextId = 0;