import 'package:brick_offline_first_with_supabase/brick_offline_first_with_supabase.dart'; import 'package:brick_sqlite/brick_sqlite.dart'; import 'package:brick_supabase/brick_supabase.dart'; import '../utils/app_time.dart'; @ConnectOfflineFirstWithSupabase( supabaseConfig: SupabaseSerializable(tableName: 'announcement_comments'), ) class AnnouncementComment extends OfflineFirstWithSupabaseModel { final String id; final String announcementId; final String authorId; final String body; final DateTime createdAt; AnnouncementComment({ required this.id, required this.announcementId, required this.authorId, required this.body, required this.createdAt, }); @Supabase(ignore: true) @Sqlite(ignore: true) @override bool operator ==(Object other) => identical(this, other) || other is AnnouncementComment && runtimeType == other.runtimeType && id == other.id && announcementId == other.announcementId && authorId == other.authorId && body == other.body && createdAt == other.createdAt; @Supabase(ignore: true) @Sqlite(ignore: true) @override int get hashCode => Object.hash(id, announcementId, authorId, body, createdAt); factory AnnouncementComment.fromMap(Map map) { return AnnouncementComment( id: map['id'] as String, announcementId: map['announcement_id'] as String, authorId: map['author_id'] as String, body: map['body'] as String? ?? '', createdAt: AppTime.parse(map['created_at'] as String), ); } }