Prepare modules

This commit is contained in:
2025-03-22 12:44:30 -06:00
parent 099267ee07
commit 7d8566350d
137 changed files with 3723 additions and 4325 deletions

View File

@ -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",

View File

@ -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");
}
/**

View File

@ -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');
}
};

View File

@ -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,
]);
};
}
}