Untitled
unknown
plain_text
5 months ago
2.0 kB
3
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