task-managment / src / server / user / application / service-definition.ts
service-definition.ts
Raw
import { FilterTasks } from "@/server/task/domain/models";
import { SendInvitation, UpdateUserMetadata, User, UserById, UserId } from "../domain/models";

export interface UserService {
  getAllUsers(userId: UserId): Promise<User[]>;
  getUserWithTaskById(userId: UserId, filter: FilterTasks): Promise<UserById>;
  sendInvitation(data: SendInvitation): Promise<void>;
  updateUserClerk(data: Partial<User>): Promise<User>;
  createUserDb(data: User): Promise<User>;
  updateUserDb(data: User): Promise<User>;
  unbanUser(userId: UserId): Promise<void>;
  banUser(userId: UserId): Promise<void>;
  getUserById(userId: UserId): Promise<User>;
  deleteUserClerk(userId: UserId): Promise<void>;
  deleteUserDb(userId: UserId): Promise<User>;
  findOrCreateUser(user: User): Promise<User>;
  updateUserMetadataClerk(data: UpdateUserMetadata): Promise<void>
}

export interface UserFacade {
  getAllUsers(userId: UserId): Promise<User[]>;
  getUserById(userId: UserId): Promise<User>;
  getUserWithTaskById(userId: UserId, filter: FilterTasks): Promise<UserById>;
  sendInvitation(data: SendInvitation): Promise<void>;
  updateUserClerk(data: Partial<User>): Promise<User>;
  createUserDb(data: User): Promise<User>;
  updateUserDb(data: User): Promise<User>;
  unbanUser(userId: UserId): Promise<void>;
  banUser(userId: UserId): Promise<void>;
  deleteUserClerk(userId: UserId): Promise<void>;
  deleteUserDb(userId: UserId): Promise<User>;
  findOrCreateUser(user:User): Promise<User>;
}