chore: update composer dependencies to include phppresentation chore: update composer.lock after adding phppresentation feat: create categories migration for category management feat: create templates migration for template storage feat: create template generations migration for tracking template usage feat: create template keys migration for template customization feat: create notifications migration for user notifications feat: update API routes for categories, templates, and user profile management docs: update API documentation to include new endpoints for profile and wallet
37 lines
1.1 KiB
PHP
37 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace App\Filament\Resources\Notifications\Schemas;
|
|
|
|
use App\Enums\NotificationType;
|
|
use Filament\Forms\Components\Select;
|
|
use Filament\Forms\Components\Textarea;
|
|
use Filament\Forms\Components\TextInput;
|
|
use Filament\Schemas\Schema;
|
|
|
|
class NotificationForm
|
|
{
|
|
public static function configure(Schema $schema): Schema
|
|
{
|
|
return $schema
|
|
->components([
|
|
Select::make('user_id')
|
|
->label('کاربر')
|
|
->relationship('user', 'name')
|
|
->searchable()
|
|
->required(),
|
|
Select::make('type')
|
|
->label('نوع')
|
|
->options(collect(NotificationType::cases())->mapWithKeys(fn (NotificationType $type) => [$type->value => $type->label()]))
|
|
->required(),
|
|
TextInput::make('title')
|
|
->label('عنوان')
|
|
->required()
|
|
->maxLength(255),
|
|
Textarea::make('body')
|
|
->label('متن')
|
|
->required()
|
|
->rows(4),
|
|
]);
|
|
}
|
|
}
|