import 'package:flutter/foundation.dart'; @immutable class StaffMember { const StaffMember({ required this.id, required this.name, this.email, this.tel, this.role, this.departmentId, this.permissionLevel, this.isActive = true, required this.updatedAt, }); final String id; final String name; final String? email; final String? tel; final String? role; final String? departmentId; final String? permissionLevel; final bool isActive; final DateTime updatedAt; StaffMember copyWith({ String? id, String? name, String? email, String? tel, String? role, String? departmentId, String? permissionLevel, bool? isActive, DateTime? updatedAt, }) { return StaffMember( id: id ?? this.id, name: name ?? this.name, email: email ?? this.email, tel: tel ?? this.tel, role: role ?? this.role, departmentId: departmentId ?? this.departmentId, permissionLevel: permissionLevel ?? this.permissionLevel, isActive: isActive ?? this.isActive, updatedAt: updatedAt ?? this.updatedAt, ); } factory StaffMember.fromMap(Map map) { return StaffMember( id: map['id'] as String, name: map['name'] as String? ?? '-', email: map['email'] as String?, tel: map['tel'] as String?, role: map['role'] as String?, departmentId: map['department_id'] as String?, permissionLevel: map['permission_level'] as String?, isActive: (map['is_active'] as int? ?? 1) == 1, updatedAt: DateTime.parse(map['updated_at'] as String), ); } Map toMap() { return { 'id': id, 'name': name, 'email': email, 'tel': tel, 'role': role, 'department_id': departmentId, 'permission_level': permissionLevel, 'is_active': isActive ? 1 : 0, 'updated_at': updatedAt.toIso8601String(), }; } }