import { FilterTasks } from "@/server/task/domain/models";
import { SendInvitation, UpdateUserMetadata, User, UserById, UserId } from "./models";
export interface UserRepository {
getAll(userId: UserId): Promise<User[]>;
getWithTaskById(userId: UserId, filter: FilterTasks): Promise<UserById>;
getBy(params: Partial<User>): Promise<User>
createDb(data: User): Promise<User>;
sendInvitation(data: SendInvitation): Promise<void>
updateClerk(data: Partial<User>): Promise<User>;
updateDb(data: User): Promise<User>;
deleteClerk(userId: UserId): Promise<void>;
deleteDb(userId: UserId): Promise<User>;
unbanUser(userId: UserId): Promise<void>;
banUser(userId: UserId): Promise<void>;
updateUserMetadataClerk(data: UpdateUserMetadata): Promise<void>
}