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<Tool[]> {
return this.toolRepository.getAll()
}
getUserTools(userId: UserId): Promise<UserToolQuery[]> {
return this.toolRepository.getUserTools(userId)
}
createTool(data: Tool, userId: UserId): Promise<Tool> {
return this.toolRepository.create(data,userId)
}
updateTools(data: Partial<Tool[]>, userId: UserId): Promise<Partial<Tool[]>> {
return this.toolRepository.update(data,userId)
}
deleteTools(data: DeleteTool, userId: UserId): Promise<Tool[]> {
return this.toolRepository.delete(data,userId)
}
assignUserToolsToUser(data: UserTool[]): Promise<UserTool[]> {
return this.toolRepository.assignUserTools(data)
}
updateAssignUserTools(data: UserTool[]): Promise<UserTool[]> {
return this.toolRepository.updateAssignUserTools(data)
}
deleteUserTools(data: DeleteUserToolDto[]): Promise<UserTool[]> {
return this.toolRepository.deleteUserTools(data)
}
}
export const defaultToolService = new ToolServiceImpl(defaultToolRepository)