Prepare modules
This commit is contained in:
@ -59,8 +59,8 @@
|
||||
"admin.attendance.absences.view",
|
||||
"admin.inventory.product-categories.view",
|
||||
"admin.inventory.product-catalogs.view",
|
||||
"admin.inventory.products.view",
|
||||
"admin.inventory.products.create",
|
||||
"admin.products.products.view",
|
||||
"admin.products.products.create",
|
||||
"admin.sales.dashboard.allow",
|
||||
"admin.contacts.customers.view",
|
||||
"admin.sales.sales.view",
|
||||
@ -99,21 +99,21 @@
|
||||
"admin.billing.nomina.view",
|
||||
"admin.billing.verify-cfdi.allow",
|
||||
"admin.contacts.suppliers.view",
|
||||
"admin.inventory.orders.view",
|
||||
"admin.inventory.reception.view",
|
||||
"admin.inventory.materials.view",
|
||||
"admin.purchase-orders.orders.view",
|
||||
"admin.purchase-orders.reception.view",
|
||||
"admin.purchase-orders.materials.view",
|
||||
"admin.inventory.warehouse.view",
|
||||
"admin.inventory.stock.view",
|
||||
"admin.inventory.movements.view",
|
||||
"admin.inventory.transfers.view",
|
||||
"admin.inventory.shipping-orders.view",
|
||||
"admin.inventory.shipping-tracking.view",
|
||||
"admin.inventory.shipping-carriers.view",
|
||||
"admin.inventory.shipping-rates.view",
|
||||
"admin.inventory.assets.view",
|
||||
"admin.inventory.asset-maintenance.view",
|
||||
"admin.inventory.asset-lifecycle.view",
|
||||
"admin.inventory.asset-assignments.view",
|
||||
"admin.shipping.orders.view",
|
||||
"admin.shipping.tracking.view",
|
||||
"admin.shipping.carriers.view",
|
||||
"admin.shipping.rates.view",
|
||||
"admin.assets.assets.view",
|
||||
"admin.assets.maintenance.view",
|
||||
"admin.assets.lifecycle.view",
|
||||
"admin.assets.assignments.view",
|
||||
"admin.projects.dashboard.view",
|
||||
"admin.projects.view",
|
||||
"admin.projects.create",
|
||||
@ -167,21 +167,21 @@
|
||||
"admin.rrhh.organization.view",
|
||||
"admin.inventory.product-categories.view",
|
||||
"admin.inventory.product-catalogs.view",
|
||||
"admin.inventory.products.view",
|
||||
"admin.inventory.products.create",
|
||||
"admin.products.products.view",
|
||||
"admin.products.products.create",
|
||||
"admin.contacts.suppliers.view",
|
||||
"admin.contacts.suppliers.create",
|
||||
"admin.inventory.warehouse.view",
|
||||
"admin.inventory.orders.view",
|
||||
"admin.inventory.reception.view",
|
||||
"admin.inventory.materials.view",
|
||||
"admin.purchase-orders.orders.view",
|
||||
"admin.purchase-orders.reception.view",
|
||||
"admin.purchase-orders.materials.view",
|
||||
"admin.inventory.stock.view",
|
||||
"admin.inventory.movements.view",
|
||||
"admin.inventory.transfers.view",
|
||||
"admin.inventory.assets.view",
|
||||
"admin.inventory.asset-maintenance.view",
|
||||
"admin.inventory.asset-lifecycle.view",
|
||||
"admin.inventory.asset-assignments.view"
|
||||
"admin.assets.assets.view",
|
||||
"admin.assets.maintenance.view",
|
||||
"admin.assets.lifecycle.view",
|
||||
"admin.assets.assignments.view"
|
||||
]
|
||||
},
|
||||
"Administrador Web" : {
|
||||
@ -197,8 +197,8 @@
|
||||
"permissions" : [
|
||||
"admin.inventory.product-categories.view",
|
||||
"admin.inventory.product-catalogs.view",
|
||||
"admin.inventory.products.view",
|
||||
"admin.inventory.products.create",
|
||||
"admin.products.products.view",
|
||||
"admin.products.products.create",
|
||||
"admin.inventory.warehouse.view",
|
||||
"admin.inventory.stock.view",
|
||||
"admin.inventory.movements.view",
|
||||
@ -293,7 +293,7 @@
|
||||
"admin.attendance.absences.view",
|
||||
"admin.inventory.product-categories.view",
|
||||
"admin.inventory.product-catalogs.view",
|
||||
"admin.inventory.products.view",
|
||||
"admin.products.products.view",
|
||||
"admin.contacts.customers.view",
|
||||
"admin.sales.sales.view",
|
||||
"admin.sales.quotes.view",
|
||||
@ -322,21 +322,21 @@
|
||||
"admin.billing.pagos.view",
|
||||
"admin.billing.nomina.view",
|
||||
"admin.contacts.suppliers.view",
|
||||
"admin.inventory.orders.view",
|
||||
"admin.inventory.reception.view",
|
||||
"admin.inventory.materials.view",
|
||||
"admin.purchase-orders.orders.view",
|
||||
"admin.purchase-orders.reception.view",
|
||||
"admin.purchase-orders.materials.view",
|
||||
"admin.inventory.warehouse.view",
|
||||
"admin.inventory.stock.view",
|
||||
"admin.inventory.movements.view",
|
||||
"admin.inventory.transfers.view",
|
||||
"admin.inventory.shipping-orders.view",
|
||||
"admin.inventory.shipping-tracking.view",
|
||||
"admin.inventory.shipping-carriers.view",
|
||||
"admin.inventory.shipping-rates.view",
|
||||
"admin.inventory.assets.view",
|
||||
"admin.inventory.asset-maintenance.view",
|
||||
"admin.inventory.asset-lifecycle.view",
|
||||
"admin.inventory.asset-assignments.view",
|
||||
"admin.shipping.orders.view",
|
||||
"admin.shipping.tracking.view",
|
||||
"admin.shipping.carriers.view",
|
||||
"admin.shipping.rates.view",
|
||||
"admin.assets.assets.view",
|
||||
"admin.assets.maintenance.view",
|
||||
"admin.assets.lifecycle.view",
|
||||
"admin.assets.assignments.view",
|
||||
"admin.projects.dashboard.view",
|
||||
"admin.projects.view",
|
||||
"admin.projects.tasks.view",
|
||||
@ -421,8 +421,8 @@
|
||||
"admin.attendance.absences.view",
|
||||
"admin.inventory.product-categories.view",
|
||||
"admin.inventory.product-catalogs.view",
|
||||
"admin.inventory.products.view",
|
||||
"admin.inventory.products.create",
|
||||
"admin.products.products.view",
|
||||
"admin.products.products.create",
|
||||
"admin.sales.dashboard.allow",
|
||||
"admin.contacts.customers.view",
|
||||
"admin.contacts.customers.create",
|
||||
@ -463,21 +463,21 @@
|
||||
"admin.billing.verify-cfdi.allow",
|
||||
"admin.contacts.suppliers.view",
|
||||
"admin.contacts.suppliers.create",
|
||||
"admin.inventory.orders.view",
|
||||
"admin.inventory.reception.view",
|
||||
"admin.inventory.materials.view",
|
||||
"admin.purchase-orders.orders.view",
|
||||
"admin.purchase-orders.reception.view",
|
||||
"admin.purchase-orders.materials.view",
|
||||
"admin.inventory.warehouse.view",
|
||||
"admin.inventory.stock.view",
|
||||
"admin.inventory.movements.view",
|
||||
"admin.inventory.transfers.view",
|
||||
"admin.inventory.shipping-orders.view",
|
||||
"admin.inventory.shipping-tracking.view",
|
||||
"admin.inventory.shipping-carriers.view",
|
||||
"admin.inventory.shipping-rates.view",
|
||||
"admin.inventory.assets.view",
|
||||
"admin.inventory.asset-maintenance.view",
|
||||
"admin.inventory.asset-lifecycle.view",
|
||||
"admin.inventory.asset-assignments.view",
|
||||
"admin.shipping.orders.view",
|
||||
"admin.shipping.tracking.view",
|
||||
"admin.shipping.carriers.view",
|
||||
"admin.shipping.rates.view",
|
||||
"admin.assets.assets.view",
|
||||
"admin.assets.maintenance.view",
|
||||
"admin.assets.lifecycle.view",
|
||||
"admin.assets.assignments.view",
|
||||
"admin.projects.dashboard.view",
|
||||
"admin.projects.view",
|
||||
"admin.projects.create",
|
||||
|
@ -3,6 +3,7 @@
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
@ -12,18 +13,50 @@ return new class extends Migration
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('settings', function (Blueprint $table) {
|
||||
$table->mediumIncrements('id');
|
||||
$table->smallIncrements('id');
|
||||
|
||||
// Clave del setting
|
||||
$table->string('key')->index();
|
||||
$table->text('value');
|
||||
|
||||
// Categoría (opcional pero recomendable)
|
||||
$table->string('category')->nullable()->index();
|
||||
|
||||
// Usuario (null para globales)
|
||||
$table->unsignedMediumInteger('user_id')->nullable()->index();
|
||||
|
||||
// Unique constraints
|
||||
$table->unique(['user_id', 'key']);
|
||||
// Valores segmentados por tipo para mejor rendimiento
|
||||
$table->string('value_string')->nullable();
|
||||
$table->integer('value_integer')->nullable();
|
||||
$table->boolean('value_boolean')->nullable();
|
||||
$table->float('value_float', 16, 8)->nullable();
|
||||
$table->text('value_text')->nullable();
|
||||
$table->binary('value_binary')->nullable();
|
||||
$table->string('mime_type', 50)->nullable();
|
||||
$table->string('file_name')->nullable();
|
||||
|
||||
// Auditoría
|
||||
$table->timestamps();
|
||||
$table->unsignedMediumInteger('updated_by')->nullable();
|
||||
|
||||
// Unique constraint para evitar duplicados
|
||||
$table->unique(['key', 'user_id', 'category']);
|
||||
|
||||
// Relaciones
|
||||
$table->foreign('user_id')->references('id')->on('users');
|
||||
$table->foreign('user_id')->references('id')->on('users')->cascadeOnDelete();
|
||||
});
|
||||
|
||||
// Agregar columna virtual unificada
|
||||
DB::statement("ALTER TABLE settings ADD COLUMN value VARCHAR(255) GENERATED ALWAYS AS (
|
||||
CASE
|
||||
WHEN value_string IS NOT NULL THEN value_string
|
||||
WHEN value_integer IS NOT NULL THEN CAST(value_integer AS CHAR)
|
||||
WHEN value_boolean IS NOT NULL THEN IF(value_boolean, 'true', 'false')
|
||||
WHEN value_float IS NOT NULL THEN CAST(value_float AS CHAR)
|
||||
WHEN value_text IS NOT NULL THEN LEFT(value_text, 255)
|
||||
WHEN value_binary IS NOT NULL THEN '[binary_data]'
|
||||
ELSE NULL
|
||||
END
|
||||
) VIRTUAL");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,48 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('media_items', function (Blueprint $table) {
|
||||
$table->mediumIncrements('id');
|
||||
|
||||
// Relación polimórfica
|
||||
$table->unsignedMediumInteger('mediaable_id');
|
||||
$table->string('mediaable_type');
|
||||
|
||||
$table->unsignedTinyInteger('type')->index(); // Tipo de medio: 'image', 'video', 'file', 'youtube'
|
||||
$table->unsignedTinyInteger('sub_type')->index(); // Subtipo de medio: 'thumbnail', 'main', 'additional'
|
||||
|
||||
$table->string('url', 255)->nullable(); // URL del medio
|
||||
$table->string('path')->nullable(); // Ruta del archivo si está almacenado localmente
|
||||
|
||||
$table->string('title')->nullable()->index(); // Título del medio
|
||||
$table->mediumText('description')->nullable(); // Descripción del medio
|
||||
$table->unsignedTinyInteger('order')->nullable(); // Orden de presentación
|
||||
|
||||
// Authoría
|
||||
$table->timestamps();
|
||||
|
||||
// Índices
|
||||
$table->index(['mediaable_type', 'mediaable_id']);
|
||||
$table->index(['mediaable_type', 'mediaable_id', 'type']);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('images');
|
||||
}
|
||||
};
|
@ -1,29 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
use Illuminate\Support\Facades\Crypt;
|
||||
use Koneko\VuexyAdmin\Models\Setting;
|
||||
|
||||
class SettingSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function run()
|
||||
{
|
||||
$settings_array = [
|
||||
//
|
||||
];
|
||||
|
||||
foreach ($settings_array as $key => $value) {
|
||||
Setting::create([
|
||||
'key' => $key,
|
||||
'value' => $value,
|
||||
]);
|
||||
};
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user