class UserProfile {
  final String id;
  final String email;
  final String name;
  final String phone;
  final String department;
  final String affiliationType;
  final String companyCode;

  UserProfile({
    required this.id,
    required this.email,
    required this.name,
    required this.phone,
    required this.department,
    required this.affiliationType,
    required this.companyCode,
  });

  factory UserProfile.fromJson(Map<String, dynamic> json) {
    return UserProfile(
      id: json['id'] ?? '',
      email: json['email'] ?? '',
      name: json['name'] ?? '',
      phone: json['phone'] ?? '',
      department: json['department'] ?? '',
      affiliationType: json['affiliationType'] ?? '',
      companyCode: json['companyCode'] ?? '',
    );
  }

  Map<String, dynamic> toJson() {
    return {
      'id': id,
      'email': email,
      'name': name,
      'phone': phone,
      'department': department,
      'affiliationType': affiliationType,
      'companyCode': companyCode,
    };
  }

  UserProfile copyWith({
    String? name,
    String? phone,
    String? department,
  }) {
    return UserProfile(
      id: id,
      email: email,
      name: name ?? this.name,
      phone: phone ?? this.phone,
      department: department ?? this.department,
      affiliationType: affiliationType,
      companyCode: companyCode,
    );
  }
}
