File "CreateAccountRequest.php"

Full Path: /var/www/html/back/app/Domain/Account/Requests/CreateAccountRequest.php
File size: 3.43 KB
MIME-type: text/x-php
Charset: utf-8

<?php

declare(strict_types=1);

namespace App\Domain\Account\Requests;

use App\BaseClasses\BaseApiRequest;

class CreateAccountRequest extends BaseApiRequest
{
    /**
     * Описание параметров тела запроса для документации API.
     *
     * @return array[]
     */
    public static function bodyParameters(): array
    {
        return [
            'name' => [
                'description' => 'Название счета',
                'example' => 'Основной счет',
            ],
            'organization_id' => [
                'description' => 'ID организации, связанной со счетом',
                'example' => 2,
            ],
            'deposit' => [
                'description' => 'Начальный депозит счета',
                'example' => 1000.50,
            ],
            'is_cash' => [
                'description' => 'Кассовый счет',
                'example' => false,
            ],
            'number' => [
                'description' => 'Номер счета',
                'example' => 123321,
            ],
            'added' => [
                'description' => 'Дата добавления',
                'example' => "2025-12-07",
            ],
            'balance_of_the_date' => [
                'description' => 'Остаток на дату',
                'example' => 1000,
            ],
            'bank_name' => [
                'description' => 'Наименование банка',
                'example' => "ККК",
            ],
            'bank_bic' => [
                'description' => 'БИК',
                'example' => 123321,
            ],
            'bank_city' => [
                'description' => 'Город банка',
                'example' => "Казань",
            ],
            'cor_number' => [
                'description' => 'Корреспондентский счет',
                'example' => 40101810100000000321,
            ],
        ];
    }

    public static function example(): array
    {
        return [
            'name' => 'Резервный счет',
            'organization_id' => 3,
            'deposit' => 5000.00,
            'is_cash' => false,
            'number' => 123321,
            'added' => "2025-12-07",
            'balance_of_the_date' => 1000,
            'bank_name' => "ККК",
            'bank_bic' => 123321,
            'bank_city' => "Казань",
            'cor_number' => 40101810100000000321,
        ];
    }

    public function authorize(): bool
    {
        return true;
    }

    public function rules(): array
    {
        return [
            'organization_id'       => 'integer|nullable|exists:organizations,id',
            'organization_name'     => 'string|nullable|max:255',
            'deposit'               => 'numeric|nullable',
            'number'                => 'numeric|nullable',
            'name'                  => 'required|string|max:255',
            'added'                 => 'date|nullable',
            'balance_of_the_date'   => 'numeric|nullable',
            'is_cash'               => 'boolean|nullable',
            'bank_name'             => 'string|max:255|nullable',
            'bank_bic'              => 'numeric|nullable',
            'bank_city'             => 'string|max:255|nullable',
            'cor_number'            => 'numeric|nullable',
        ];
    }
}