<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('businesses', function (Blueprint $table) {

            $table->bigIncrements('id');

            //* Harsi Data
                $table->char('harsi_id', 50)->nullable();

            //* Establishment Data
                $table->string('business_name', 200);
                $table->string('business_phone', 25);
                $table->string('business_address', 200);

            //* Settings
                $table->string('currency')->default('MXN'); // Código de moneda ISO 4217
                $table->enum('currency_position', ['before', 'after'])->default('before'); // Posición del símbolo
                $table->string('language', 5)->default('es'); // Idioma del Sistema

                $table->boolean('enable_modules_panel')->default(0); // ¿El hotel contrato módulos especiales?
                $table->boolean('show_modules_panel')->default(1); // ¿El panel de control de los módulos se podrá visualizar?
                $table->json('modules_configuration'); // Configuración Dinámica de Módulos en el Sistema

                $table->boolean('enable_features_panel')->default(1); // ¿El hotel maneja comportamientos especiales?
                $table->boolean('show_features_panel')->default(1); // ¿El panel de control de los features se podrá visualizar?
                $table->json('features_configuration'); // Configuración Dinámica de Features en el Sistema

                $table->json('parameters_configuration'); // Configuración Dinámica de Comportamientos o Valores de Control Específicos en el sistema

                $table->json('record_limits_configuration'); // Configuración Dinámica de Limites de Registros por entidad

            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('businesses');
    }
};
