import { UserEntity } from '@app/infra/db/entities'; export interface UserListFilter { excludeId?: string; } export interface UserStatsQueryResponse { userId: string; userFirstName: string; userLastName: string; photos: number; videos: number; usage: number; } export const IUserRepository = 'IUserRepository'; export interface IUserRepository { get(id: string, withDeleted?: boolean): Promise; getAdmin(): Promise; getByEmail(email: string, withPassword?: boolean): Promise; getByOAuthId(oauthId: string): Promise; getDeletedUsers(): Promise; getList(filter?: UserListFilter): Promise; getUserStats(): Promise; create(user: Partial): Promise; update(id: string, user: Partial): Promise; delete(user: UserEntity, hard?: boolean): Promise; restore(user: UserEntity): Promise; }