APP_NEW/lib/Provider/Service/product_provider.dart
2025-03-11 21:17:14 +08:00

61 lines
1.9 KiB
Dart

import 'package:flutter/material.dart';
import 'package:lamiter/Class/API/api.dart';
import 'package:lamiter/Class/Entity/entity.dart';
import 'package:lamiter/Class/Service/product.dart';
import 'package:lamiter/Class/Service/service_item_filt_type.dart';
import 'package:lamiter/Provider/Service/service_item_provider.dart';
import 'package:lamiter/Provider/User/manager_provider.dart';
import 'package:provider/provider.dart';
class ProductProvider extends ServiceItemProvider {
ProductProvider() : super() {
super.init();
}
@override
List<ServiceItemFiltType> filtTypes() {
return [
ServiceItemFiltType.supportCompany,
ServiceItemFiltType.productCategory,
ServiceItemFiltType.urbanDisease,
ServiceItemFiltType.constitution,
ServiceItemFiltType.postureIssue,
];
}
@override
Future<void> refresh(BuildContext context) async {
final manaer = context.read<ManagerProvider>().self;
// 商品
var res = await API().get_products(manaer!.id!);
if (res.containsKey("success")) {
serviceItems = res["success"]
.map<Product>((json) => Product.fromJson(json))
.toList();
filtedList = sortWithLastUpdateTime(serviceItems);
}
// 品牌
Set<Entity> companyPairsSet = {};
for (var serviceItem in serviceItems) {
var companyPair =
Entity(id: serviceItem.companyId, name: serviceItem.companyName);
companyPairsSet.add(companyPair);
}
companyPairs = companyPairsSet.toList();
// 商品種類
Set<Entity> productCategoryPairsSet = {};
for (Product serviceItem in serviceItems as List<Product>) {
var productCategoryPair = Entity(
id: serviceItem.productCategoryId,
name: serviceItem.productCategoryName);
productCategoryPairsSet.add(productCategoryPair);
}
productCategoryPairs = productCategoryPairsSet.toList();
notifyListeners();
}
}