part of 'generated.dart';

class DeleteStaffDocumentVariablesBuilder {
  String staffId;
  String documentId;

  final FirebaseDataConnect _dataConnect;
  DeleteStaffDocumentVariablesBuilder(this._dataConnect, {required  this.staffId,required  this.documentId,});
  Deserializer<DeleteStaffDocumentData> dataDeserializer = (dynamic json)  => DeleteStaffDocumentData.fromJson(jsonDecode(json));
  Serializer<DeleteStaffDocumentVariables> varsSerializer = (DeleteStaffDocumentVariables vars) => jsonEncode(vars.toJson());
  Future<OperationResult<DeleteStaffDocumentData, DeleteStaffDocumentVariables>> execute() {
    return ref().execute();
  }

  MutationRef<DeleteStaffDocumentData, DeleteStaffDocumentVariables> ref() {
    DeleteStaffDocumentVariables vars= DeleteStaffDocumentVariables(staffId: staffId,documentId: documentId,);
    return _dataConnect.mutation("deleteStaffDocument", dataDeserializer, varsSerializer, vars);
  }
}

@immutable
class DeleteStaffDocumentStaffDocumentDelete {
  final String staffId;
  final String documentId;
  DeleteStaffDocumentStaffDocumentDelete.fromJson(dynamic json):
  
  staffId = nativeFromJson<String>(json['staffId']),
  documentId = nativeFromJson<String>(json['documentId']);
  @override
  bool operator ==(Object other) {
    if(identical(this, other)) {
      return true;
    }
    if(other.runtimeType != runtimeType) {
      return false;
    }

    final DeleteStaffDocumentStaffDocumentDelete otherTyped = other as DeleteStaffDocumentStaffDocumentDelete;
    return staffId == otherTyped.staffId && 
    documentId == otherTyped.documentId;
    
  }
  @override
  int get hashCode => Object.hashAll([staffId.hashCode, documentId.hashCode]);
  

  Map<String, dynamic> toJson() {
    Map<String, dynamic> json = {};
    json['staffId'] = nativeToJson<String>(staffId);
    json['documentId'] = nativeToJson<String>(documentId);
    return json;
  }

  DeleteStaffDocumentStaffDocumentDelete({
    required this.staffId,
    required this.documentId,
  });
}

@immutable
class DeleteStaffDocumentData {
  final DeleteStaffDocumentStaffDocumentDelete? staffDocument_delete;
  DeleteStaffDocumentData.fromJson(dynamic json):
  
  staffDocument_delete = json['staffDocument_delete'] == null ? null : DeleteStaffDocumentStaffDocumentDelete.fromJson(json['staffDocument_delete']);
  @override
  bool operator ==(Object other) {
    if(identical(this, other)) {
      return true;
    }
    if(other.runtimeType != runtimeType) {
      return false;
    }

    final DeleteStaffDocumentData otherTyped = other as DeleteStaffDocumentData;
    return staffDocument_delete == otherTyped.staffDocument_delete;
    
  }
  @override
  int get hashCode => staffDocument_delete.hashCode;
  

  Map<String, dynamic> toJson() {
    Map<String, dynamic> json = {};
    if (staffDocument_delete != null) {
      json['staffDocument_delete'] = staffDocument_delete!.toJson();
    }
    return json;
  }

  DeleteStaffDocumentData({
    this.staffDocument_delete,
  });
}

@immutable
class DeleteStaffDocumentVariables {
  final String staffId;
  final String documentId;
  @Deprecated('fromJson is deprecated for Variable classes as they are no longer required for deserialization.')
  DeleteStaffDocumentVariables.fromJson(Map<String, dynamic> json):
  
  staffId = nativeFromJson<String>(json['staffId']),
  documentId = nativeFromJson<String>(json['documentId']);
  @override
  bool operator ==(Object other) {
    if(identical(this, other)) {
      return true;
    }
    if(other.runtimeType != runtimeType) {
      return false;
    }

    final DeleteStaffDocumentVariables otherTyped = other as DeleteStaffDocumentVariables;
    return staffId == otherTyped.staffId && 
    documentId == otherTyped.documentId;
    
  }
  @override
  int get hashCode => Object.hashAll([staffId.hashCode, documentId.hashCode]);
  

  Map<String, dynamic> toJson() {
    Map<String, dynamic> json = {};
    json['staffId'] = nativeToJson<String>(staffId);
    json['documentId'] = nativeToJson<String>(documentId);
    return json;
  }

  DeleteStaffDocumentVariables({
    required this.staffId,
    required this.documentId,
  });
}

