Untitled
unknown
plain_text
a year ago
2.0 kB
4
Indexable
import 'package:flutter_dotenv/flutter_dotenv.dart';
class Product {
final String id;
final String sku;
final int quantity;
final Map<String, String> name;
final Map<String, String> description;
final List<String> images;
final double publicPrice;
final List<String> categories;
final bool isVariant;
Product({
required this.id,
required this.sku,
required this.quantity,
required this.name,
required this.description,
required this.images,
required this.publicPrice,
required this.categories,
required this.isVariant
});
factory Product.fromJson(Map<String, dynamic> json) {
return Product(
id: json['_id'] ?? '',
sku: json['sku'] ?? '',
quantity: json['quantity'] ?? 0,
name: Map<String, String>.from(json['name'] ?? {}),
description: Map<String, String>.from(json['description'] ?? {}),
images: List<String>.from(json['images'] ?? []),
publicPrice: json['pricing']?['publicPrice']?.toDouble() ?? 0.0,
categories: (json['categories'] as List<dynamic>?)
?.map((cat) => cat['category'] as String)
.toList() ??
[],
isVariant: json['isvariant'] ?? false,
);
}
Product copyWith({
String? id,
String? sku,
int? quantity,
Map<String, String>? name,
Map<String, String>? description,
List<String>? images,
double? publicPrice,
List<String>? categories,
bool? isVariant,
}) {
return Product(
id: id ?? this.id,
sku: sku ?? this.sku,
quantity: quantity ?? this.quantity,
name: name ?? this.name,
description: description ?? this.description,
images: images ?? this.images,
publicPrice: publicPrice ?? this.publicPrice,
categories: categories ?? this.categories,
isVariant: isVariant ?? this.isVariant,
);
}
List<String> get imageUrls {
return images
.map((imageId) => '${dotenv.env['API_HOST']}:${dotenv.env['API_PORT']}/uploadimg/$imageId')
.toList();
}
}
Editor is loading...
Leave a Comment