import { UserId } from "@/server/user/domain/models"; import { DeleteTool, Tool, UserTool, UserToolQuery } from "../domain/models"; import { ToolRepository } from "../domain/repositories"; import { ToolService } from "./tool-service-definition"; import { defaultToolRepository } from "../infrastructure/repositories-impl"; import { DeleteUserToolDto } from "./dto"; class ToolServiceImpl implements ToolService{ constructor( private toolRepository:ToolRepository ){} getAllTools(): Promise { return this.toolRepository.getAll() } getUserTools(userId: UserId): Promise { return this.toolRepository.getUserTools(userId) } createTool(data: Tool, userId: UserId): Promise { return this.toolRepository.create(data,userId) } updateTools(data: Partial, userId: UserId): Promise> { return this.toolRepository.update(data,userId) } deleteTools(data: DeleteTool, userId: UserId): Promise { return this.toolRepository.delete(data,userId) } assignUserToolsToUser(data: UserTool[]): Promise { return this.toolRepository.assignUserTools(data) } updateAssignUserTools(data: UserTool[]): Promise { return this.toolRepository.updateAssignUserTools(data) } deleteUserTools(data: DeleteUserToolDto[]): Promise { return this.toolRepository.deleteUserTools(data) } } export const defaultToolService = new ToolServiceImpl(defaultToolRepository)