attachment.dart 848 B

1234567891011121314151617181920212223242526272829
  1. class Attachment {
  2. final String name;
  3. final String path;
  4. final int? size;
  5. final String? mimeType;
  6. final String? baseUrl; // Add mimeType if available
  7. Attachment({required this.name, required this.path, this.size, this.mimeType, this.baseUrl});
  8. bool get isImage {
  9. final ext = link.split('.').last.toLowerCase();
  10. return ['jpg', 'jpeg', 'png', 'gif', 'webp'].contains(ext) ||
  11. (mimeType?.startsWith('image/') ?? false);
  12. }
  13. bool get isVideo {
  14. final ext = link.split('.').last.toLowerCase();
  15. return ['mp4', 'mov', 'webm', 'avi'].contains(ext) ||
  16. (mimeType?.startsWith('video/') ?? false);
  17. }
  18. String get link => '$baseUrl/data$path';
  19. factory Attachment.fromJson(Map<String, dynamic> json, String baseUrl) => Attachment(
  20. name: json['name'],
  21. path: json['path'],
  22. baseUrl: baseUrl,
  23. );
  24. }