<?php

namespace common\logic\Ticket\TicketUser\Module;

use common\logic\AbstractModule;
use common\logic\Ticket\TicketMessage\Repository\TicketMessageRepository;
use common\logic\Ticket\TicketMessage\Service\TicketMessageBuilder;
use common\logic\Ticket\TicketMessage\Service\TicketMessageDefinition;
use common\logic\Ticket\TicketUser\Repository\TicketUserRepository;
use common\logic\Ticket\TicketUser\Service\TicketUserBuilder;
use common\logic\Ticket\TicketUser\Service\TicketUserDefinition;

/**
 * @mixin TicketMessageDefinition
 * @mixin TicketMessageRepository
 * @mixin TicketMessageBuilder
 */
class TicketUserModule extends AbstractModule
{
    public function getServices(): array
    {
        return [
            TicketUserDefinition::class,
            TicketUserRepository::class,
            TicketUserBuilder::class
        ];
    }

    public function getDefinition(): TicketUserDefinition
    {
        return TicketUserDefinition::getInstance();
    }

    public function getRepository(): TicketUserRepository
    {
        return TicketUserRepository::getInstance();
    }

    public function getBuilder(): TicketUserBuilder
    {
        return TicketUserBuilder::getInstance();
    }
}