Files
fcs/lib/vo/product.dart

124 lines
2.7 KiB
Dart
Raw Normal View History

2020-05-29 07:45:27 +06:30
import '../util.dart';
class Product {
String accountID;
String id;
String name;
int price;
int color;
String action;
int quantity;
int displayOrder;
Map<String, int> priceHistory;
bool isDisable;
// used for buyer registration
int dailySale;
int storageCapacity;
int dailyQuota;
int oldPirce;
//used for do item
String storageID;
String storageName;
String get getname => this.name;
int get getprice => this.price;
List<ProductPrice> get getPrices => this
.priceHistory
.entries
.map((k) => ProductPrice(
name: name,
price: k.value,
date: DateUtil.toLocal(DateTime.parse(k.key)),
displayOrder: displayOrder))
.toList();
Product(
{this.accountID,
this.id,
this.name,
this.price,
this.color,
this.action,
this.priceHistory,
this.dailySale,
this.storageCapacity,
this.dailyQuota,
this.quantity,
this.oldPirce,
this.displayOrder,
this.storageID,
this.storageName,
this.isDisable});
factory Product.clone(Product p) {
return Product(
accountID: p.accountID,
id: p.id,
name: p.name,
price: p.price,
color: p.color,
displayOrder: p.displayOrder,
action: p.action,
isDisable: p.isDisable);
}
factory Product.fromJson(Map<String, dynamic> json) {
return Product(
name: json['name'],
price: int.parse(json['price']),
);
}
Map<String, dynamic> toMap() {
return {
'account_id': accountID,
'id': id,
'name': name,
'price': price,
'color': color,
'display_order': displayOrder,
'action': action,
'disable': isDisable
};
}
factory Product.fromMap(Map<String, dynamic> map, String id) {
return Product(
id: id,
name: map['name'] ?? map['product_name'],
price: map['price'],
color: map['color'],
quantity: map['quantity'],
displayOrder: map['display_order'],
priceHistory: map['price_history']?.cast<String, int>(),
storageID: map['storage_id'],
storageName: map['storage_name'],
isDisable: map['disable']);
}
@override
String toString() {
return 'User{name: $name, price: $price,storageID:$storageID,storageName:$storageName,isDisable:$isDisable}';
}
}
class ProductPrice {
DateTime date;
int price;
String name;
int displayOrder;
ProductPrice({this.date, this.price, this.name, this.displayOrder});
int compareTo(ProductPrice other) {
int r = other.date.compareTo(this.date);
if (r == 0) {
return this.displayOrder.compareTo(other.displayOrder);
}
return r;
}
}