<?php

namespace Shm\ShmPayment\TBankPayment\TBankCollections;

use Shm\Collection\Collection;
use Shm\Shm;
use Shm\ShmPayment\TBankPayment\TBankNominal\TBankNominal;
use Shm\ShmTypes\StructureType;

class TNominalCharge extends Collection
{

    public function schema(): StructureType
    {
        return Shm::structure([

            "TerminalKey" => Shm::static(TBankNominal::$TerminalKey),
            "PaymentId" => Shm::string()->title("Идентификатор платежа"),
            "RebillId" => Shm::string()->title("Идентификатор рекуррентного платежа"),
            "Token" => Shm::string()->title("Токен (Подпись запроса)"),
            "IP" => Shm::string()->title("IP-адрес покупателя"),
            "SendEmail" => Shm::boolean()->title("Отправлять email"),
            "InfoEmail" => Shm::email()->title("Email покупателя"),
            'response' => Shm::structure([
                "TerminalKey" => Shm::string()->title("Идентификатор терминала"),
                "Amount" => Shm::float()->title("Сумма в копейках"),
                "OrderId" => Shm::string()->title("Идентификатор заказа"),
                "Success" => Shm::boolean()->title("Успешность операции"),
                "Status" => Shm::enum([
                    'CONFIRMED' => 'Подтвержден',
                    'REJECTED' => 'Отклонен',
                ])->title("Статус платежа"),
                "PaymentId" => Shm::string()->title("Идентификатор платежа"),
                "Message" => Shm::string()->title("Краткое описание ошибки."),
                "Details" => Shm::string()->title("Подробное описание ошибки."),

            ])
        ]);
    }
}