id(); $table->string('name',50); $table->string('description',125)->nullable(); $table->unsignedTinyInteger('deleted')->default(0); $table->timestamps(); }); Schema::create('person_groups', function(Blueprint $table){ $table->id(); $table->string('name',50); $table->string('description',125)->nullable(); $table->unsignedTinyInteger('deleted')->default(0); $table->timestamps(); }); Schema::create('phone_types', function(Blueprint $table){ $table->id(); $table->string('name',50); $table->string('description',125)->nullable(); $table->unsignedTinyInteger('deleted')->default(0); $table->timestamps(); }); Schema::create('address_types', function(Blueprint $table){ $table->id(); $table->string('name',50); $table->string('description',125)->nullable(); $table->unsignedTinyInteger('deleted')->default(0); $table->timestamps(); }); Schema::create('person', function (Blueprint $table) { $table->id(); $table->uuid('uuid')->unique(); $table->unsignedBigInteger('nu')->default(0); $table->string('first_name', 255)->nullable(); $table->string('last_name', 255)->nullable(); $table->string('full_name', 255)->nullable(); $table->enum('gender', ['m','w'])->nullable(); $table->date('birthday')->nullable(); $table->string('tax_number', 99)->nullable(); $table->string('social_security_number',99)->nullable(); $table->string('description',500)->nullable(); $table->foreignId('group_id')->references('id')->on('person_groups'); $table->foreignId('type_id')->references('id')->on('person_types'); $table->unsignedTinyInteger('active')->default(1); $table->unsignedTinyInteger('deleted')->default(0); $table->foreignIdFor(\App\Models\User::class); $table->timestamps(); }); Schema::create('person_phones', function(Blueprint $table){ $table->id(); $table->string('nu',50); $table->unsignedInteger('country_code')->nullable(); $table->foreignId('type_id')->references('id')->on('phone_types'); $table->string('description',125)->nullable(); $table->foreignIdFor(\App\Models\Person\Person::class); $table->unsignedTinyInteger('active')->default(1); $table->unsignedTinyInteger('deleted')->default(0); $table->foreignIdFor(\App\Models\User::class); $table->timestamps(); }); Schema::create('person_addresses', function(Blueprint $table){ $table->id(); $table->string('address',150); $table->string('country')->nullable(); $table->foreignId('type_id')->references('id')->on('address_types'); $table->string('description',125)->nullable(); $table->foreignIdFor(\App\Models\Person\Person::class); $table->unsignedTinyInteger('active')->default(1); $table->unsignedTinyInteger('deleted')->default(0); $table->foreignIdFor(\App\Models\User::class); $table->timestamps(); }); } /** * Reverse the migrations. */ public function down(): void { Schema::dropIfExists('person_types'); Schema::dropIfExists('person_groups'); Schema::dropIfExists('phone_types'); Schema::dropIfExists('address_types'); Schema::dropIfExists('person'); Schema::dropIfExists('person_phones'); Schema::dropIfExists('person_addresses'); } };