feat: implement product attributes and tenant properties management with CRUD controllers, requests, and domain models

This commit is contained in:
2026-06-26 11:40:07 -03:00
parent edb4c128d6
commit 4c237fb729
14 changed files with 102 additions and 74 deletions

View File

@@ -2,7 +2,7 @@
namespace App\Domains\Tenant\Models;
use App\Domains\Tenant\Support\TenantPropDataType;
use App\Domains\Shared\Enums\FieldType;
use Illuminate\Database\Eloquent\Attributes\Fillable;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
@@ -28,7 +28,7 @@ class TenantProp extends Model
{
return [
'is_required' => 'boolean',
'data_type' => TenantPropDataType::class,
'data_type' => FieldType::class,
];
}

View File

@@ -2,7 +2,7 @@
namespace App\Domains\Tenant\Requests;
use App\Domains\Tenant\Support\TenantPropDataType;
use App\Domains\Shared\Enums\FieldType;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
@@ -23,7 +23,7 @@ class StoreTenantPropRequest extends FormRequest
'nombre' => ['required', 'string', 'max:255'],
'descripcion' => ['nullable', 'string'],
'is_required' => ['sometimes', 'boolean'],
'data_type' => ['required', Rule::enum(TenantPropDataType::class)],
'data_type' => ['required', Rule::enum(FieldType::class)],
];
}
}

View File

@@ -3,7 +3,7 @@
namespace App\Domains\Tenant\Requests;
use App\Domains\Tenant\Models\TenantProp;
use App\Domains\Tenant\Support\TenantPropDataType;
use App\Domains\Shared\Enums\FieldType;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
@@ -27,7 +27,7 @@ class UpdateTenantPropRequest extends FormRequest
'nombre' => ['required', 'string', 'max:255'],
'descripcion' => ['nullable', 'string'],
'is_required' => ['sometimes', 'boolean'],
'data_type' => ['required', Rule::enum(TenantPropDataType::class)],
'data_type' => ['required', Rule::enum(FieldType::class)],
];
}
}

View File

@@ -1,18 +0,0 @@
<?php
namespace App\Domains\Tenant\Support;
enum TenantPropDataType: string
{
case String = 'string';
case Number = 'number';
case Boolean = 'boolean';
/**
* @return list<string>
*/
public static function values(): array
{
return array_column(self::cases(), 'value');
}
}