<?php

namespace common\logic\Ticket\TicketMessage\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;

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

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

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

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