<?php

namespace FSPoster\App\TelegramNotification\App\DTOs\Response;

use JsonSerializable;

class TelegramNotificationResponse implements JsonSerializable
{
    private array $channels = [];
    private string $message = '';
    private array $shortCodes = [];
    private array $availableChannels = [];
    private bool $isActive = true;

    public function getChannels(): array
    {
        return $this->channels;
    }

    public function setChannels(array $channels): void
    {
        $this->channels = $channels;
    }

    public function getMessage(): string
    {
        return $this->message;
    }

    public function setMessage(string $message): void
    {
        $this->message = $message;
    }

    public function getShortCodes(): array
    {
        return $this->shortCodes;
    }

    public function setShortCodes(array $shortCodes): void
    {
        $this->shortCodes = $shortCodes;
    }

    public function getAvailableChannels(): array
    {
        return $this->availableChannels;
    }

    public function setAvailableChannels(array $availableChannels): void
    {
        $this->availableChannels = $availableChannels;
    }

    public function getIsActive(): bool
    {
        return $this->isActive;
    }

    public function setIsActive(bool $isActive): void
    {
        $this->isActive = $isActive;
    }

    public function jsonSerialize(): array
    {
        return [
            'channels'          => $this->getChannels(),
            'message'           => $this->getMessage(),
            'shortCodes'        => $this->getShortCodes(),
            'availableChannels' => $this->getAvailableChannels(),
            'is_active'         => $this->getIsActive(),
        ];
    }
}
