52 lines
1.5 KiB
Dart
52 lines
1.5 KiB
Dart
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<String, dynamic> 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),
|
|
);
|
|
}
|
|
}
|