import { savedViewSchema } from '@pokemon-inventory/validation/saved-view'; import { createApplicationError } from '../../../shared/errors/application-error.js'; export function createSavedViewService({ savedViewRepository }) { return { async list({ sellerId }) { return savedViewRepository.listBySellerId(sellerId); }, async create({ sellerId, view }) { return savedViewRepository.create(sellerId, savedViewSchema.parse(view)); }, async update({ sellerId, viewId, view }) { const updated = await savedViewRepository.updateForSeller(viewId, sellerId, savedViewSchema.parse(view)); if (!updated) throw createApplicationError('SAVED_VIEW_NOT_FOUND', 'Saved view was not found.', 404); return updated; }, async delete({ sellerId, viewId }) { const deleted = await savedViewRepository.deleteForSeller(viewId, sellerId); if (!deleted) throw createApplicationError('SAVED_VIEW_NOT_FOUND', 'Saved view was not found.', 404); return deleted; }, }; }