// Mocks generated by Mockito 5.4.4 from annotations
// in lifetimer/test/helpers/mock_providers.dart.
// Do not manually edit this file.

// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'dart:async' as _i7;

import 'package:flutter_local_notifications/flutter_local_notifications.dart'
    as _i14;
import 'package:lifetimer/data/models/activity_model.dart' as _i5;
import 'package:lifetimer/data/models/goal_model.dart' as _i2;
import 'package:lifetimer/data/models/goal_step_model.dart' as _i3;
import 'package:lifetimer/data/models/user_model.dart' as _i4;
import 'package:lifetimer/data/repositories/auth_repository.dart' as _i6;
import 'package:lifetimer/data/repositories/countdown_repository.dart' as _i10;
import 'package:lifetimer/data/repositories/goals_repository.dart' as _i9;
import 'package:lifetimer/data/repositories/notifications_repository.dart'
    as _i13;
import 'package:lifetimer/data/repositories/social_repository.dart' as _i12;
import 'package:lifetimer/data/repositories/user_repository.dart' as _i11;
import 'package:mockito/mockito.dart' as _i1;
import 'package:supabase_flutter/supabase_flutter.dart' as _i8;

// ignore_for_file: type=lint
// ignore_for_file: avoid_redundant_argument_values
// ignore_for_file: avoid_setters_without_getters
// ignore_for_file: comment_references
// ignore_for_file: deprecated_member_use
// ignore_for_file: deprecated_member_use_from_same_package
// ignore_for_file: implementation_imports
// ignore_for_file: invalid_use_of_visible_for_testing_member
// ignore_for_file: prefer_const_constructors
// ignore_for_file: unnecessary_parenthesis
// ignore_for_file: camel_case_types
// ignore_for_file: subtype_of_sealed_class

class _FakeGoal_0 extends _i1.SmartFake implements _i2.Goal {
  _FakeGoal_0(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _FakeGoalStep_1 extends _i1.SmartFake implements _i3.GoalStep {
  _FakeGoalStep_1(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _FakeUser_2 extends _i1.SmartFake implements _i4.User {
  _FakeUser_2(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _FakeActivity_3 extends _i1.SmartFake implements _i5.Activity {
  _FakeActivity_3(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

/// A class which mocks [AuthRepository].
///
/// See the documentation for Mockito's code generation for more information.
class MockAuthRepository extends _i1.Mock implements _i6.AuthRepository {
  MockAuthRepository() {
    _i1.throwOnMissingStub(this);
  }

  @override
  _i7.Stream<_i4.User?> get authStateChanges => (super.noSuchMethod(
        Invocation.getter(#authStateChanges),
        returnValue: _i7.Stream<_i4.User?>.empty(),
      ) as _i7.Stream<_i4.User?>);

  @override
  bool get isAuthenticated => (super.noSuchMethod(
        Invocation.getter(#isAuthenticated),
        returnValue: false,
      ) as bool);

  @override
  _i7.Future<bool> isSessionValid() => (super.noSuchMethod(
        Invocation.method(
          #isSessionValid,
          [],
        ),
        returnValue: _i7.Future<bool>.value(false),
      ) as _i7.Future<bool>);

  @override
  _i7.Future<void> refreshSession() => (super.noSuchMethod(
        Invocation.method(
          #refreshSession,
          [],
        ),
        returnValue: _i7.Future<void>.value(),
        returnValueForMissingStub: _i7.Future<void>.value(),
      ) as _i7.Future<void>);

  @override
  _i7.Future<_i8.Session?> getCurrentSession() => (super.noSuchMethod(
        Invocation.method(
          #getCurrentSession,
          [],
        ),
        returnValue: _i7.Future<_i8.Session?>.value(),
      ) as _i7.Future<_i8.Session?>);

  @override
  void listenToAuthStateChanges(dynamic Function(_i4.User?)? callback) =>
      super.noSuchMethod(
        Invocation.method(
          #listenToAuthStateChanges,
          [callback],
        ),
        returnValueForMissingStub: null,
      );

  @override
  void dispose() => super.noSuchMethod(
        Invocation.method(
          #dispose,
          [],
        ),
        returnValueForMissingStub: null,
      );

  @override
  _i7.Future<void> signInWithEmail(
    String? email,
    String? password,
  ) =>
      (super.noSuchMethod(
        Invocation.method(
          #signInWithEmail,
          [
            email,
            password,
          ],
        ),
        returnValue: _i7.Future<void>.value(),
        returnValueForMissingStub: _i7.Future<void>.value(),
      ) as _i7.Future<void>);

  @override
  _i7.Future<void> signUpWithEmail(
    String? email,
    String? password,
    String? username,
  ) =>
      (super.noSuchMethod(
        Invocation.method(
          #signUpWithEmail,
          [
            email,
            password,
            username,
          ],
        ),
        returnValue: _i7.Future<void>.value(),
        returnValueForMissingStub: _i7.Future<void>.value(),
      ) as _i7.Future<void>);

  @override
  _i7.Future<void> signInWithGoogle() => (super.noSuchMethod(
        Invocation.method(
          #signInWithGoogle,
          [],
        ),
        returnValue: _i7.Future<void>.value(),
        returnValueForMissingStub: _i7.Future<void>.value(),
      ) as _i7.Future<void>);

  @override
  _i7.Future<void> signInWithGithub() => (super.noSuchMethod(
        Invocation.method(
          #signInWithGithub,
          [],
        ),
        returnValue: _i7.Future<void>.value(),
        returnValueForMissingStub: _i7.Future<void>.value(),
      ) as _i7.Future<void>);

  @override
  _i7.Future<void> signInWithApple() => (super.noSuchMethod(
        Invocation.method(
          #signInWithApple,
          [],
        ),
        returnValue: _i7.Future<void>.value(),
        returnValueForMissingStub: _i7.Future<void>.value(),
      ) as _i7.Future<void>);

  @override
  _i7.Future<void> signOut() => (super.noSuchMethod(
        Invocation.method(
          #signOut,
          [],
        ),
        returnValue: _i7.Future<void>.value(),
        returnValueForMissingStub: _i7.Future<void>.value(),
      ) as _i7.Future<void>);

  @override
  _i7.Future<void> resetPassword(String? email) => (super.noSuchMethod(
        Invocation.method(
          #resetPassword,
          [email],
        ),
        returnValue: _i7.Future<void>.value(),
        returnValueForMissingStub: _i7.Future<void>.value(),
      ) as _i7.Future<void>);

  @override
  _i7.Future<void> updateProfile({
    String? username,
    String? bio,
    String? avatarUrl,
    bool? isPublicProfile,
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #updateProfile,
          [],
          {
            #username: username,
            #bio: bio,
            #avatarUrl: avatarUrl,
            #isPublicProfile: isPublicProfile,
          },
        ),
        returnValue: _i7.Future<void>.value(),
        returnValueForMissingStub: _i7.Future<void>.value(),
      ) as _i7.Future<void>);
}

/// A class which mocks [GoalsRepository].
///
/// See the documentation for Mockito's code generation for more information.
class MockGoalsRepository extends _i1.Mock implements _i9.GoalsRepository {
  MockGoalsRepository() {
    _i1.throwOnMissingStub(this);
  }

  @override
  _i7.Future<List<_i2.Goal>> getGoals(String? userId) => (super.noSuchMethod(
        Invocation.method(
          #getGoals,
          [userId],
        ),
        returnValue: _i7.Future<List<_i2.Goal>>.value(<_i2.Goal>[]),
      ) as _i7.Future<List<_i2.Goal>>);

  @override
  _i7.Future<_i2.Goal> getGoal(String? goalId) => (super.noSuchMethod(
        Invocation.method(
          #getGoal,
          [goalId],
        ),
        returnValue: _i7.Future<_i2.Goal>.value(_FakeGoal_0(
          this,
          Invocation.method(
            #getGoal,
            [goalId],
          ),
        )),
      ) as _i7.Future<_i2.Goal>);

  @override
  _i7.Future<_i2.Goal> createGoal(_i2.Goal? goal) => (super.noSuchMethod(
        Invocation.method(
          #createGoal,
          [goal],
        ),
        returnValue: _i7.Future<_i2.Goal>.value(_FakeGoal_0(
          this,
          Invocation.method(
            #createGoal,
            [goal],
          ),
        )),
      ) as _i7.Future<_i2.Goal>);

  @override
  _i7.Future<_i2.Goal> updateGoal(_i2.Goal? goal) => (super.noSuchMethod(
        Invocation.method(
          #updateGoal,
          [goal],
        ),
        returnValue: _i7.Future<_i2.Goal>.value(_FakeGoal_0(
          this,
          Invocation.method(
            #updateGoal,
            [goal],
          ),
        )),
      ) as _i7.Future<_i2.Goal>);

  @override
  _i7.Future<bool> canModifyGoals(String? userId) => (super.noSuchMethod(
        Invocation.method(
          #canModifyGoals,
          [userId],
        ),
        returnValue: _i7.Future<bool>.value(false),
      ) as _i7.Future<bool>);

  @override
  _i7.Future<void> deleteGoal(String? goalId) => (super.noSuchMethod(
        Invocation.method(
          #deleteGoal,
          [goalId],
        ),
        returnValue: _i7.Future<void>.value(),
        returnValueForMissingStub: _i7.Future<void>.value(),
      ) as _i7.Future<void>);

  @override
  _i7.Future<List<_i3.GoalStep>> getGoalSteps(String? goalId) =>
      (super.noSuchMethod(
        Invocation.method(
          #getGoalSteps,
          [goalId],
        ),
        returnValue: _i7.Future<List<_i3.GoalStep>>.value(<_i3.GoalStep>[]),
      ) as _i7.Future<List<_i3.GoalStep>>);

  @override
  _i7.Future<_i3.GoalStep> createGoalStep(_i3.GoalStep? step) =>
      (super.noSuchMethod(
        Invocation.method(
          #createGoalStep,
          [step],
        ),
        returnValue: _i7.Future<_i3.GoalStep>.value(_FakeGoalStep_1(
          this,
          Invocation.method(
            #createGoalStep,
            [step],
          ),
        )),
      ) as _i7.Future<_i3.GoalStep>);

  @override
  _i7.Future<_i3.GoalStep> updateGoalStep(_i3.GoalStep? step) =>
      (super.noSuchMethod(
        Invocation.method(
          #updateGoalStep,
          [step],
        ),
        returnValue: _i7.Future<_i3.GoalStep>.value(_FakeGoalStep_1(
          this,
          Invocation.method(
            #updateGoalStep,
            [step],
          ),
        )),
      ) as _i7.Future<_i3.GoalStep>);

  @override
  _i7.Future<void> deleteGoalStep(String? stepId) => (super.noSuchMethod(
        Invocation.method(
          #deleteGoalStep,
          [stepId],
        ),
        returnValue: _i7.Future<void>.value(),
        returnValueForMissingStub: _i7.Future<void>.value(),
      ) as _i7.Future<void>);

  @override
  _i7.Future<int> getGoalsCount(String? userId) => (super.noSuchMethod(
        Invocation.method(
          #getGoalsCount,
          [userId],
        ),
        returnValue: _i7.Future<int>.value(0),
      ) as _i7.Future<int>);
}

/// A class which mocks [CountdownRepository].
///
/// See the documentation for Mockito's code generation for more information.
class MockCountdownRepository extends _i1.Mock
    implements _i10.CountdownRepository {
  MockCountdownRepository() {
    _i1.throwOnMissingStub(this);
  }

  @override
  _i7.Future<_i4.User> startCountdown(String? userId) => (super.noSuchMethod(
        Invocation.method(
          #startCountdown,
          [userId],
        ),
        returnValue: _i7.Future<_i4.User>.value(_FakeUser_2(
          this,
          Invocation.method(
            #startCountdown,
            [userId],
          ),
        )),
      ) as _i7.Future<_i4.User>);

  @override
  _i7.Future<_i4.User> getCountdownInfo(String? userId) => (super.noSuchMethod(
        Invocation.method(
          #getCountdownInfo,
          [userId],
        ),
        returnValue: _i7.Future<_i4.User>.value(_FakeUser_2(
          this,
          Invocation.method(
            #getCountdownInfo,
            [userId],
          ),
        )),
      ) as _i7.Future<_i4.User>);

  @override
  _i7.Future<bool> hasCountdownStarted(String? userId) => (super.noSuchMethod(
        Invocation.method(
          #hasCountdownStarted,
          [userId],
        ),
        returnValue: _i7.Future<bool>.value(false),
      ) as _i7.Future<bool>);
}

/// A class which mocks [UserRepository].
///
/// See the documentation for Mockito's code generation for more information.
class MockUserRepository extends _i1.Mock implements _i11.UserRepository {
  MockUserRepository() {
    _i1.throwOnMissingStub(this);
  }

  @override
  _i7.Future<_i4.User> getProfile(String? userId) => (super.noSuchMethod(
        Invocation.method(
          #getProfile,
          [userId],
        ),
        returnValue: _i7.Future<_i4.User>.value(_FakeUser_2(
          this,
          Invocation.method(
            #getProfile,
            [userId],
          ),
        )),
      ) as _i7.Future<_i4.User>);

  @override
  _i7.Future<_i4.User> updateProfile({
    required String? userId,
    String? username,
    String? avatarUrl,
    String? bio,
    bool? isPublicProfile,
    String? twitterHandle,
    String? instagramHandle,
    String? tiktokHandle,
    String? websiteUrl,
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #updateProfile,
          [],
          {
            #userId: userId,
            #username: username,
            #avatarUrl: avatarUrl,
            #bio: bio,
            #isPublicProfile: isPublicProfile,
            #twitterHandle: twitterHandle,
            #instagramHandle: instagramHandle,
            #tiktokHandle: tiktokHandle,
            #websiteUrl: websiteUrl,
          },
        ),
        returnValue: _i7.Future<_i4.User>.value(_FakeUser_2(
          this,
          Invocation.method(
            #updateProfile,
            [],
            {
              #userId: userId,
              #username: username,
              #avatarUrl: avatarUrl,
              #bio: bio,
              #isPublicProfile: isPublicProfile,
              #twitterHandle: twitterHandle,
              #instagramHandle: instagramHandle,
              #tiktokHandle: tiktokHandle,
              #websiteUrl: websiteUrl,
            },
          ),
        )),
      ) as _i7.Future<_i4.User>);

  @override
  _i7.Future<bool> isUsernameAvailable(String? username) => (super.noSuchMethod(
        Invocation.method(
          #isUsernameAvailable,
          [username],
        ),
        returnValue: _i7.Future<bool>.value(false),
      ) as _i7.Future<bool>);

  @override
  _i7.Future<void> deleteAccount(String? userId) => (super.noSuchMethod(
        Invocation.method(
          #deleteAccount,
          [userId],
        ),
        returnValue: _i7.Future<void>.value(),
        returnValueForMissingStub: _i7.Future<void>.value(),
      ) as _i7.Future<void>);
}

/// A class which mocks [SocialRepository].
///
/// See the documentation for Mockito's code generation for more information.
class MockSocialRepository extends _i1.Mock implements _i12.SocialRepository {
  MockSocialRepository() {
    _i1.throwOnMissingStub(this);
  }

  @override
  _i7.Future<void> followUser(
    String? userId,
    String? targetUserId,
  ) =>
      (super.noSuchMethod(
        Invocation.method(
          #followUser,
          [
            userId,
            targetUserId,
          ],
        ),
        returnValue: _i7.Future<void>.value(),
        returnValueForMissingStub: _i7.Future<void>.value(),
      ) as _i7.Future<void>);

  @override
  _i7.Future<void> unfollowUser(
    String? userId,
    String? targetUserId,
  ) =>
      (super.noSuchMethod(
        Invocation.method(
          #unfollowUser,
          [
            userId,
            targetUserId,
          ],
        ),
        returnValue: _i7.Future<void>.value(),
        returnValueForMissingStub: _i7.Future<void>.value(),
      ) as _i7.Future<void>);

  @override
  _i7.Future<bool> isFollowing(
    String? userId,
    String? targetUserId,
  ) =>
      (super.noSuchMethod(
        Invocation.method(
          #isFollowing,
          [
            userId,
            targetUserId,
          ],
        ),
        returnValue: _i7.Future<bool>.value(false),
      ) as _i7.Future<bool>);

  @override
  _i7.Future<List<_i4.User>> getFollowers(String? userId) =>
      (super.noSuchMethod(
        Invocation.method(
          #getFollowers,
          [userId],
        ),
        returnValue: _i7.Future<List<_i4.User>>.value(<_i4.User>[]),
      ) as _i7.Future<List<_i4.User>>);

  @override
  _i7.Future<List<_i4.User>> getFollowing(String? userId) =>
      (super.noSuchMethod(
        Invocation.method(
          #getFollowing,
          [userId],
        ),
        returnValue: _i7.Future<List<_i4.User>>.value(<_i4.User>[]),
      ) as _i7.Future<List<_i4.User>>);

  @override
  _i7.Future<List<_i5.Activity>> getActivityFeed(String? userId) =>
      (super.noSuchMethod(
        Invocation.method(
          #getActivityFeed,
          [userId],
        ),
        returnValue: _i7.Future<List<_i5.Activity>>.value(<_i5.Activity>[]),
      ) as _i7.Future<List<_i5.Activity>>);

  @override
  _i7.Future<_i5.Activity> logActivity({
    required String? userId,
    required String? type,
    Map<String, dynamic>? payload,
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #logActivity,
          [],
          {
            #userId: userId,
            #type: type,
            #payload: payload,
          },
        ),
        returnValue: _i7.Future<_i5.Activity>.value(_FakeActivity_3(
          this,
          Invocation.method(
            #logActivity,
            [],
            {
              #userId: userId,
              #type: type,
              #payload: payload,
            },
          ),
        )),
      ) as _i7.Future<_i5.Activity>);

  @override
  _i7.Future<List<_i4.User>> getLeaderboard({
    required String? sortBy,
    int? limit = 50,
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #getLeaderboard,
          [],
          {
            #sortBy: sortBy,
            #limit: limit,
          },
        ),
        returnValue: _i7.Future<List<_i4.User>>.value(<_i4.User>[]),
      ) as _i7.Future<List<_i4.User>>);
}

/// A class which mocks [NotificationsRepository].
///
/// See the documentation for Mockito's code generation for more information.
class MockNotificationsRepository extends _i1.Mock
    implements _i13.NotificationsRepository {
  MockNotificationsRepository() {
    _i1.throwOnMissingStub(this);
  }

  @override
  _i7.Future<void> showNotification({
    required int? id,
    required String? title,
    required String? body,
    String? payload,
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #showNotification,
          [],
          {
            #id: id,
            #title: title,
            #body: body,
            #payload: payload,
          },
        ),
        returnValue: _i7.Future<void>.value(),
        returnValueForMissingStub: _i7.Future<void>.value(),
      ) as _i7.Future<void>);

  @override
  _i7.Future<void> scheduleNotification({
    required int? id,
    required String? title,
    required String? body,
    required DateTime? scheduledDate,
    String? payload,
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #scheduleNotification,
          [],
          {
            #id: id,
            #title: title,
            #body: body,
            #scheduledDate: scheduledDate,
            #payload: payload,
          },
        ),
        returnValue: _i7.Future<void>.value(),
        returnValueForMissingStub: _i7.Future<void>.value(),
      ) as _i7.Future<void>);

  @override
  _i7.Future<void> scheduleDailyReminder({
    required int? id,
    required String? title,
    required String? body,
    required int? hour,
    required int? minute,
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #scheduleDailyReminder,
          [],
          {
            #id: id,
            #title: title,
            #body: body,
            #hour: hour,
            #minute: minute,
          },
        ),
        returnValue: _i7.Future<void>.value(),
        returnValueForMissingStub: _i7.Future<void>.value(),
      ) as _i7.Future<void>);

  @override
  _i7.Future<void> cancelNotification(int? id) => (super.noSuchMethod(
        Invocation.method(
          #cancelNotification,
          [id],
        ),
        returnValue: _i7.Future<void>.value(),
        returnValueForMissingStub: _i7.Future<void>.value(),
      ) as _i7.Future<void>);

  @override
  _i7.Future<void> cancelAllNotifications() => (super.noSuchMethod(
        Invocation.method(
          #cancelAllNotifications,
          [],
        ),
        returnValue: _i7.Future<void>.value(),
        returnValueForMissingStub: _i7.Future<void>.value(),
      ) as _i7.Future<void>);

  @override
  _i7.Future<List<_i14.PendingNotificationRequest>> getPendingNotifications() =>
      (super.noSuchMethod(
        Invocation.method(
          #getPendingNotifications,
          [],
        ),
        returnValue: _i7.Future<List<_i14.PendingNotificationRequest>>.value(
            <_i14.PendingNotificationRequest>[]),
      ) as _i7.Future<List<_i14.PendingNotificationRequest>>);
}
