Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2
3declare(strict_types=1);
4
5namespace ImovelZapAi\Publishing\Connectors\GroupOlx\Application\Ports;
6
7use ImovelZapAi\Publishing\Connectors\GroupOlx\Application\Data\GroupOlxFeedBuildResultData;
8use ImovelZapAi\Publishing\Connectors\GroupOlx\Application\Data\GroupOlxFeedValidationResult;
9use ImovelZapAi\Publishing\Connectors\GroupOlx\Application\Data\GroupOlxMappedListingData;
10use ImovelZapAi\Publishing\Domain\Feeds\VrSync\ListingDataFeed;
11use ImovelZapAi\Publishing\Domain\Feeds\VrSync\ListingDataFeedHeader;
12
13/**
14 * Valida o feed no formato esperado pelo Grupo OLX (VRSync).
15 *
16 * Erros de validação retornam lista — nunca Exception.
17 */
18interface GroupOlxFeedValidatorInterface
19{
20    public function validateXml(string $xml): GroupOlxFeedValidationResult;
21
22    public function validateFeed(ListingDataFeed $feed): GroupOlxFeedValidationResult;
23
24    public function validateBuild(GroupOlxFeedBuildResultData $build): GroupOlxFeedValidationResult;
25
26    public function validateMapped(GroupOlxMappedListingData $mapped): GroupOlxFeedValidationResult;
27
28    /**
29     * @param  list<GroupOlxMappedListingData>  $listings
30     */
31    public function validateMappedFeed(ListingDataFeedHeader $header, array $listings): GroupOlxFeedValidationResult;
32}