import { Profile, ProfilePaginated } from '@app/domain/profiles/profile.model';
import { Observable } from 'rxjs';
import { SearchFilters } from '@app/domain/search/search-filters';
import { SettingsProfileDto } from '@app/domain/profiles/dto/settings-profile.dto';

export interface ProfileRepository {
  list(params?: SearchFilters): Observable<ProfilePaginated>;
  getById(profileId: string): Observable<Profile>;
  getByUserId(userId: string): Observable<Profile>;
  create(profile: Profile): Observable<Profile>;
  update(profileId: string, profile: Partial<Profile>): Observable<Profile>;
  updateCoordinates(profileId: string, latitude: number, longitude: number): Observable<Profile>;
  updateSettings(profileId: string, settings: SettingsProfileDto): Observable<Profile>;
}
