task-managment / src / server / user / domain / repositories.ts
repositories.ts
Raw
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>
}