part of '../product_dtos.dart'; @freezed class ProductVariantDto with _$ProductVariantDto { const ProductVariantDto._(); const factory ProductVariantDto({ @JsonKey(name: 'id') String? id, @JsonKey(name: 'product_id') String? productId, @JsonKey(name: 'name') String? name, @JsonKey(name: 'price_modifier') int? priceModifier, @JsonKey(name: 'cost') int? cost, @JsonKey(name: 'metadata') Map? metadata, @JsonKey(name: 'created_at') DateTime? createdAt, @JsonKey(name: 'updated_at') DateTime? updatedAt, }) = _ProductVariantDto; factory ProductVariantDto.fromJson(Map json) => _$ProductVariantDtoFromJson(json); /// DTO -> Domain ProductVariant toDomain() => ProductVariant( id: id ?? '', productId: productId ?? '', name: name ?? '', priceModifier: priceModifier ?? 0, cost: cost ?? 0, metadata: metadata ?? {}, createdAt: createdAt ?? DateTime.now(), updatedAt: updatedAt ?? DateTime.now(), ); /// Domain -> DTO factory ProductVariantDto.fromDomain(ProductVariant variant) => ProductVariantDto( id: variant.id, productId: variant.productId, name: variant.name, priceModifier: variant.priceModifier, cost: variant.cost, metadata: variant.metadata, createdAt: variant.createdAt, updatedAt: variant.updatedAt, ); }