Files
portal/app/app/Models/ClientSmsSettings.php
T
Дмитрий 5240cfbdd9 style: пробел перед @mixin в шапках моделей — так их пишет форматтер
Правка целиком в комментариях: 37 файлов, ни строки кода.
Её дописал сам pre-commit форматтер во время предыдущей записи и оставил
неподтверждённой. Записываю, чтобы папка ветки не оставалась грязной.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-01 19:57:50 +03:00

61 lines
2.6 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
declare(strict_types=1);
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
/**
* Общие настройки клиентских СМС (плата за именной отправителя, льготный
* срок долга по имени, границы окна отправки, срок «рассылка зависла»).
*
* Общая справочная таблица (не tenant-aware, без RLS), одна строка.
*
* Источник: db/schema.sql, table `client_sms_settings`.
*
* «Кому шлём» (строка листа 4.14) лежит в jsonb, а jsonb хранит и объект —
* поэтому тип не список, а массив с любыми ключами: к списку его приводит
* AllowedSmsOperators::list().
*
* @property int $quiet_from_hour
* @property int $quiet_to_hour
* @property int $stuck_after_minutes
* @property array<array-key, string>|null $allowed_operators
* @property int $max_upload_phones
*
* @mixin IdeHelperClientSmsSettings
*/
class ClientSmsSettings extends Model
{
protected $fillable = [
'name_fee_rub_per_operator',
'name_debt_grace_days',
'quiet_from_hour',
'quiet_to_hour',
'stuck_after_minutes',
'allowed_operators',
'max_upload_phones',
];
protected function casts(): array
{
return [
'name_fee_rub_per_operator' => 'decimal:2',
'name_debt_grace_days' => 'integer',
'quiet_from_hour' => 'integer',
'quiet_to_hour' => 'integer',
'stuck_after_minutes' => 'integer',
// Кому вообще шлём (строка листа 4.14). 🔴 НЕ путать со списком
// операторов, с которыми согласовано имя отправителя: тот лежит в
// `client_sms_senders.operators`, и от него считается плата за имя
// (В-150). Связать их = поднять плату всем клиентам вчетверо.
'allowed_operators' => 'array',
// Сколько номеров можно прислать за ОДНУ загрузку базы (строка листа 4.6).
// 🔴 НЕ потолок наших расходов на ДаДату: их держит дневной потолок портала
// services.dadata.daily_cap_rub (В-90 — потолка на клиента владелец не захотел).
'max_upload_phones' => 'integer',
];
}
}