// Copyright (C) 2022 WYATT GROUP
// Please see the AUTHORS file for details.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:wyatt_crud_bloc/wyatt_crud_bloc.dart';
class UserFirestore extends Model {
  @override
  String? id;
  String? name;
  String? email;
  String? phone;
  UserFirestore({
    required this.name,
    required this.email,
    required this.phone,
    this.id,
  });
  UserFirestore._();
  factory UserFirestore.parser() {
    return UserFirestore._();
  }
  @override
  UserFirestore? from(DocumentSnapshot? object) {
    if (object == null) return null;
    if (object.exists) {
      return UserFirestore(
        id: object.id,
        name: (object.data() as Map?)!['name'] as String,
        email: (object.data() as Map?)!['email'] as String,
        phone: (object.data() as Map?)!['phone'] as String,
      );
    }
    return null;
  }
  @override
  Map toMap() {
    return {
      'name': name ?? '',
      'email': email ?? '',
      'phone': phone ?? '',
    };
  }
  @override
  String toString() =>
      'UserFirestore(id: $id, name: $name, email: $email, phone: $phone)';
}