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 members(List 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 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 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() ?? [], createdAt: DateTime.parse(map['created_at'] as String), color: map['color'] as String?, ); } }