import Stock from "../domain/entities/stock"; import ItemRepository from "../domain/repositories/item.repository"; import StockRepository from "../domain/repositories/stock.repository"; import UserRepository from "../domain/repositories/user.repository"; import AssignStockToUserService from "../domain/services/assignStockToUser"; import { AssignStockAttr } from "../domain/types/stock.type"; import Result from "../utils/result"; export default class AssignStockToUserServiceImpl implements AssignStockToUserService { private repository; private stockRepo; private userRepo; constructor(repository: ItemRepository, stockRepo: StockRepository, userRepo: UserRepository); run(payload: AssignStockAttr, validate?: boolean): Promise>; fromCode(itemId: string, userId: number, encodedCode: string): Promise>; private validateDueDate; private validatePrice; private validateUniqueness; private assignLimited; private assignUnlimited; private assignLottery; private sendSuccessEvent; private sendErrorEvent; }