phase3(foundation): http_util dio5 migration + null-safe models

- http_util.dart: dio4->5 (DioException, nullable params, drop unused statusCode,
  null-safe e.response!.data), countryCode ?? ''
- models/* (39 files): make all instance fields nullable (fromJson initializer-list
  pattern forces nullable); fix internal method usages (cart_info/cart_line_item/
  order/shipping_rate) with !/??
- models/ now passes dart analyze with 0 errors

Widget-level null-safety + remaining utils/store continue in next batch.
This commit is contained in:
2026-07-24 03:45:01 +08:00
parent 1a578c925d
commit 4f9aa4f683
40 changed files with 382 additions and 389 deletions

View File

@@ -7,18 +7,18 @@ import 'cart_line_item.dart';
import 'extra_fee.dart';
class CartInfo {
int id;
double originPrice;
double discountPrice;
double totalPrice;
Business businessInfo;
List<CartLineItem> productList;
List<ExtraFee> extraFeeList;
List<ExtraFee> discountList;
int deliveryMethod;
String shippingMethod;
double amountPaid;
String extraData;
int? id;
double? originPrice;
double? discountPrice;
double? totalPrice;
Business? businessInfo;
List<CartLineItem>? productList;
List<ExtraFee>? extraFeeList;
List<ExtraFee>? discountList;
int? deliveryMethod;
String? shippingMethod;
double? amountPaid;
String? extraData;
CartInfo.fromJson(Map<String, dynamic> json)
: id = json['id'],
@@ -53,7 +53,7 @@ class CartInfo {
if (productList == null) {
productList = [item];
} else {
productList.add(item);
productList!.add(item);
}
}
@@ -74,19 +74,19 @@ class CartInfo {
originPrice = 0.0;
discountPrice = 0.0;
totalPrice = 0.0;
for (var i = 0; i < productList.length; i++) {
newTotal += productList[i].getTotalPrice();
for (var i = 0; i < (productList?.length ?? 0); i++) {
newTotal += productList![i].getTotalPrice();
}
originPrice = newTotal;
totalPrice = newTotal;
return totalPrice;
return totalPrice ?? 0.0;
}
int getProductListTotalQuantity() {
int qty = 0;
if (productList != null && productList.length > 0) {
for (var i = 0; i < productList.length; i++) {
qty += productList[i].quantity.round();
if (productList != null && productList!.length > 0) {
for (var i = 0; i < productList!.length; i++) {
qty += (productList![i].quantity ?? 0).round();
}
}
return qty;