package user type mockRepository struct { createFunc func(u *User) error findAllFunc func() ([]User, error) findAllPaginatedFunc func(page, limit int, query ListUserQuery) ([]User, int64, error) findByIDFunc func(id uint) (*User, error) findByEmailFunc func(email string) (*User, error) findByGoogleIDFunc func(googleID string) (*User, error) findByVerificationTokenFunc func(token string) (*User, error) findByResetTokenFunc func(token string) (*User, error) updateFunc func(u *User) error deleteFunc func(id uint) error } func (m *mockRepository) Create(u *User) error { if m.createFunc != nil { return m.createFunc(u) } return nil } func (m *mockRepository) FindAll() ([]User, error) { if m.findAllFunc != nil { return m.findAllFunc() } return nil, nil } func (m *mockRepository) FindAllPaginated(page, limit int, query ListUserQuery) ([]User, int64, error) { if m.findAllPaginatedFunc != nil { return m.findAllPaginatedFunc(page, limit, query) } return nil, 0, nil } func (m *mockRepository) FindByID(id uint) (*User, error) { if m.findByIDFunc != nil { return m.findByIDFunc(id) } return nil, nil } func (m *mockRepository) FindByEmail(email string) (*User, error) { if m.findByEmailFunc != nil { return m.findByEmailFunc(email) } return nil, nil } func (m *mockRepository) FindByGoogleID(googleID string) (*User, error) { if m.findByGoogleIDFunc != nil { return m.findByGoogleIDFunc(googleID) } return nil, nil } func (m *mockRepository) FindByVerificationToken(token string) (*User, error) { if m.findByVerificationTokenFunc != nil { return m.findByVerificationTokenFunc(token) } return nil, nil } func (m *mockRepository) FindByResetToken(token string) (*User, error) { if m.findByResetTokenFunc != nil { return m.findByResetTokenFunc(token) } return nil, nil } func (m *mockRepository) Update(u *User) error { if m.updateFunc != nil { return m.updateFunc(u) } return nil } func (m *mockRepository) Delete(id uint) error { if m.deleteFunc != nil { return m.deleteFunc(id) } return nil }