feat: clean credits users
CI / 🧪 Tests Laravel (push) Successful in 2m0s
CI / 🐳 Build & Push Image (push) Successful in 35s

This commit is contained in:
2026-08-07 15:32:40 +02:00
parent eac86afa53
commit 68560655f3
44 changed files with 417 additions and 661 deletions
@@ -0,0 +1,68 @@
<?php
namespace App\Filament\Resources\BillingProducts\Schemas;
use App\Enums\BillingProductPurpose;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\Textarea;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Components\Toggle;
use Filament\Schemas\Components\Section;
use Filament\Schemas\Schema;
class BillingProductForm
{
public static function configure(Schema $schema): Schema
{
return $schema
->components([
Section::make(__('admin.billing_products.sections.product'))
->columns(2)
->schema([
TextInput::make('name')
->label(__('admin.billing_products.fields.name'))
->required()
->maxLength(255),
Select::make('purpose')
->label(__('admin.billing_products.fields.purpose'))
->options(BillingProductPurpose::class)
->unique(ignoreRecord: true)
->required(),
TextInput::make('amount')
->label(__('admin.billing_products.fields.amount'))
->helperText(__('admin.billing_products.helpers.amount'))
->integer()
->minValue(1)
->required(),
TextInput::make('currency')
->label(__('admin.billing_products.fields.currency'))
->default('eur')
->required()
->maxLength(3),
TextInput::make('sort_order')
->label(__('admin.billing_products.fields.sort_order'))
->integer()
->default(0)
->required(),
Textarea::make('description')
->label(__('admin.billing_products.fields.description'))
->rows(3)
->columnSpanFull(),
Toggle::make('is_active')
->label(__('admin.billing_products.fields.is_active'))
->default(true),
]),
Section::make(__('admin.billing_products.sections.stripe'))
->columns(2)
->schema([
TextInput::make('stripe_product_id')
->label(__('admin.billing_products.fields.stripe_product_id'))
->maxLength(255),
TextInput::make('stripe_price_id')
->label(__('admin.billing_products.fields.stripe_price_id'))
->unique(ignoreRecord: true)
->maxLength(255),
]),
]);
}
}