Offline Support
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
import 'package:brick_offline_first_with_supabase/brick_offline_first_with_supabase.dart';
|
||||
import 'package:brick_supabase/brick_supabase.dart';
|
||||
|
||||
import 'package:tasq/models/team_member.dart';
|
||||
|
||||
extension TeamMembersExtension on Team {
|
||||
List<String> members(List<TeamMember> allMembers) {
|
||||
return allMembers
|
||||
.where((m) => m.teamId == id)
|
||||
.map((m) => m.userId)
|
||||
.toList();
|
||||
}
|
||||
}
|
||||
|
||||
@ConnectOfflineFirstWithSupabase(
|
||||
supabaseConfig: SupabaseSerializable(tableName: 'teams'),
|
||||
)
|
||||
class Team extends OfflineFirstWithSupabaseModel {
|
||||
final String id;
|
||||
final String name;
|
||||
final String leaderId;
|
||||
final List<String> officeIds;
|
||||
final DateTime createdAt;
|
||||
final String? color;
|
||||
|
||||
Team({
|
||||
required this.id,
|
||||
required this.name,
|
||||
required this.leaderId,
|
||||
required this.officeIds,
|
||||
required this.createdAt,
|
||||
this.color,
|
||||
});
|
||||
|
||||
factory Team.fromMap(Map<String, dynamic> map) {
|
||||
return Team(
|
||||
id: map['id'] as String,
|
||||
name: map['name'] as String? ?? '',
|
||||
leaderId: map['leader_id'] as String? ?? '',
|
||||
officeIds:
|
||||
(map['office_ids'] as List?)?.map((e) => e.toString()).toList() ??
|
||||
<String>[],
|
||||
createdAt: DateTime.parse(map['created_at'] as String),
|
||||
color: map['color'] as String?,
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user