Files
neomovies-mobile/lib/data/models/favorite.dart
factory-droid[bot] 7201d2e7dc v0.0.3
2025-10-02 19:54:32 +00:00

42 lines
1.2 KiB
Dart

import 'package:flutter_dotenv/flutter_dotenv.dart';
class Favorite {
final String id; // MongoDB ObjectID as string
final String mediaId;
final String mediaType; // "movie" or "tv"
final String title;
final String posterPath;
final DateTime? createdAt;
Favorite({
required this.id,
required this.mediaId,
required this.mediaType,
required this.title,
required this.posterPath,
this.createdAt,
});
factory Favorite.fromJson(Map<String, dynamic> json) {
return Favorite(
id: json['id'] as String? ?? '',
mediaId: json['mediaId'] as String? ?? '',
mediaType: json['mediaType'] as String? ?? 'movie',
title: json['title'] as String? ?? '',
posterPath: json['posterPath'] as String? ?? '',
createdAt: json['createdAt'] != null
? DateTime.tryParse(json['createdAt'] as String)
: null,
);
}
String get fullPosterUrl {
final baseUrl = dotenv.env['API_URL']!;
if (posterPath.isEmpty) {
return '$baseUrl/images/w500/placeholder.jpg';
}
final cleanPath = posterPath.startsWith('/') ? posterPath.substring(1) : posterPath;
return '$baseUrl/images/w500/$cleanPath';
}
}