Files
tasq/lib/models/announcement_comment.model.dart
T
2026-04-27 06:20:39 +08:00

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),
);
}
}