import 'package:be_happy/domain/entities/subscription_period.dart'; class Subscription { final int id; final String title; final String shortDescription; final String fullDescription; final int planId; final bool isActive; final String currency; final DateTime? activeFrom; final DateTime? activeTo; final DateTime createdAt; final DateTime updatedAt; final List options; Subscription({ required this.id, required this.title, required this.shortDescription, required this.fullDescription, required this.planId, required this.isActive, required this.currency, this.activeFrom, this.activeTo, required this.createdAt, required this.updatedAt, required this.options, }); factory Subscription.fromJson(Map json) { final currencyData = json['currency'] as Map? ?? {}; final optionsData = json['options'] as List? ?? []; return Subscription( id: json['id'] ?? 0, title: json['title'] ?? '', shortDescription: json['shortDescription'] ?? '', fullDescription: json['fullDescription'] ?? '', planId: json['planId'] ?? 0, isActive: json['isActive'] ?? false, currency: currencyData['currency'] ?? 'BYN', activeFrom: json['activeFrom'] != null ? DateTime.parse(json['activeFrom']) : null, activeTo: json['activeTo'] != null ? DateTime.parse(json['activeTo']) : null, createdAt: json['createdAt'] != null ? DateTime.parse(json['createdAt']) : DateTime.now(), updatedAt: json['updatedAt'] != null ? DateTime.parse(json['updatedAt']) : DateTime.now(), options: optionsData.map((e) => SubscriptionPeriod.fromJson(e as Map)).toList(), ); } @override String toString() { return 'Subscription{id: $id, title: $title, isActive: $isActive}'; } }