Company Resource
unknown
php
24 days ago
5.6 kB
13
Indexable
<?php namespace App\Filament\Resources; use App\Filament\Resources\CompanyResource\Pages; use App\Filament\Resources\CompanyResource\RelationManagers; use App\Models\Company; use App\Models\User; use Filament\Forms; use Filament\Forms\Form; use Filament\Resources\Resource; use Filament\Tables; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\SoftDeletingScope; use Leandrocfe\FilamentPtbrFormFields\Document; use Leandrocfe\FilamentPtbrFormFields\PhoneNumber; use Filament\Tables\Columns\TextColumn; use Rawilk\FilamentPasswordInput\Password; use Filament\Forms\Components\Select; use App\Enums\Status; use Filament\Forms\Components\FileUpload; class CompanyResource extends Resource { protected static ?string $model = Company::class; protected static ?string $navigationIcon = 'heroicon-s-briefcase'; public static function getLabel(): string { return 'Empresas'; } public static function form(Form $form): Form { return $form ->schema([ Forms\Components\TextInput::make('user.name') ->label('Empresa') ->required() ->maxLength(255), Forms\Components\TextInput::make('user.email') ->label('E-mail') ->required() ->email() ->unique(User::class, 'email', ignoreRecord: true), Document::make('document') ->dynamic() ->label('Documento (CNPJ/CPF)') ->required() ->maxLength(255), Forms\Components\TextInput::make('corporate_name') ->label('Razão Social') ->required() ->maxLength(255), Forms\Components\TextInput::make('fantasy_name') ->label('Nome Fantasia') ->required() ->maxLength(255), Password::make('user.password') ->label('Senha') ->copyable() ->copyMessage('Copiado') ->copyMessageDuration(5000) ->regeneratePassword() ->dehydrated(fn ($state) => filled($state)) ->required(fn($context) => $context === 'create') ->minLength(8), Select::make('user.status') ->label('Status') ->required() ->options(Status::toArray()), PhoneNumber::make('phone') ->mask('(99) 99999-9999') ->label('Telefone') ->maxLength(255), PhoneNumber::make('mobile_phone') ->mask('(99) 99999-9999') ->label('Telefone celular') ->maxLength(255), FileUpload::make('image') ->label('Logo da Empresa') ->avatar() ]); } public static function table(Table $table): Table { return $table ->columns([ TextColumn::make('user.name') ->label('Empresa') ->sortable() ->searchable(), TextColumn::make('document') ->label('Documento (CNPJ/CPF)') ->sortable() ->searchable(), TextColumn::make('user.email') ->label('E-mail') ->sortable() ->searchable(), TextColumn::make('user.status') ->label('Status') ->sortable() ->searchable(), Tables\Columns\TextColumn::make('created_at') ->label('Criado em') ->dateTime() ->sortable() ->toggleable(isToggledHiddenByDefault: true), Tables\Columns\TextColumn::make('updated_at') ->label('Alterado em') ->dateTime() ->sortable() ->toggleable(isToggledHiddenByDefault: true), Tables\Columns\TextColumn::make('deleted_at') ->label('Deletado em') ->dateTime() ->sortable() ->toggleable(isToggledHiddenByDefault: true), ]) ->filters([ Tables\Filters\TrashedFilter::make(), ]) ->actions([ Tables\Actions\EditAction::make(), ]) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ Tables\Actions\DeleteBulkAction::make(), Tables\Actions\ForceDeleteBulkAction::make(), Tables\Actions\RestoreBulkAction::make(), ]), ]); } public static function getRelations(): array { return [ // ]; } public static function getPages(): array { return [ 'index' => Pages\ListCompanies::route('/'), 'create' => Pages\CreateCompany::route('/create'), 'edit' => Pages\EditCompany::route('/{record}/edit'), ]; } }
Editor is loading...
Leave a Comment