<commit_before><?php

namespace CultuurNet\UDB3\Variations;

use CultuurNet\UDB3\Variations\Model\EventVariation;
use CultuurNet\UDB3\Variations\Model\Properties\Description;
use CultuurNet\UDB3\Variations\Model\Properties\Id;
use CultuurNet\UDB3\Variations\Model\Properties\OwnerId;
use CultuurNet\UDB3\Variations\Model\Properties\Purpose;
use CultuurNet\UDB3\Variations\Model\Properties\Url;

interface EventVariationServiceInterface
{
    /**
     * @param Url $eventUrl
     * @param OwnerId $ownerId
     * @param Purpose $purpose
     * @param Description $description
     *
     * @return EventVariation
     */
    public function createEventVariation(
        Url $eventUrl,
        OwnerId $ownerId,
        Purpose $purpose,
        Description $description
    );

    /**
     * @param Id $id
     * @param Description $description
     */
    public function editDescription(Id $id, Description $description);

    /**
     * Delete a variation
     *
     * @param Id $id
     */
    public function deleteEventVariation(Id $id);
}<commit_msg>III-321: Document exceptions expected to be thrown by EventVariationServiceInterface implementations<commit_after><?php

namespace CultuurNet\UDB3\Variations;

use Broadway\Repository\AggregateNotFoundException;
use CultuurNet\UDB3\Variations\Model\EventVariation;
use CultuurNet\UDB3\Variations\Model\Properties\Description;
use CultuurNet\UDB3\Variations\Model\Properties\Id;
use CultuurNet\UDB3\Variations\Model\Properties\OwnerId;
use CultuurNet\UDB3\Variations\Model\Properties\Purpose;
use CultuurNet\UDB3\Variations\Model\Properties\Url;

interface EventVariationServiceInterface
{
    /**
     * @param Url $eventUrl
     * @param OwnerId $ownerId
     * @param Purpose $purpose
     * @param Description $description
     *
     * @return EventVariation
     */
    public function createEventVariation(
        Url $eventUrl,
        OwnerId $ownerId,
        Purpose $purpose,
        Description $description
    );

    /**
     * @param Id $id
     * @param Description $description
     *
     * @throws AggregateNotFoundException
     * @throws AggregateDeletedException
     */
    public function editDescription(Id $id, Description $description);

    /**
     * Delete a variation
     *
     * @param Id $id
     *
     * @throws AggregateNotFoundException
     * @throws AggregateDeletedException
     */
    public function deleteEventVariation(Id $id);
}
{'fraction_non_alphanumeric': 0.09314731226918342, 'fraction_numerical': 0.006975789905621666, 'mean_word_length': 3.2847100175746924, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6265022', 'n_tokens_mistral': 743, 'n_tokens_neox': 725, 'n_words': 147}