
PK 
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::create('employees', function (Blueprint $table) {
$table->id();
/* ======================
| Basic Details
|======================*/
$table->string('emp_code')->unique();
$table->string('name');
$table->string('email')->nullable();
$table->string('phone', 20)->nullable();
$table->string('department')->nullable();
$table->string('designation')->nullable();
$table->date('date_of_joining');
$table->enum('status', ['Active','Inactive'])->default('Active');
/* ======================
| Identity
|======================*/
$table->string('pan', 10)->nullable();
$table->string('aadhaar', 12)->nullable();
/* ======================
| Bank
|======================*/
$table->string('bank_account')->nullable();
$table->string('ifsc', 11)->nullable();
/* ======================
| Statutory Applicability
|======================*/
$table->boolean('pf_applicable')->default(true);
$table->boolean('voluntary_pf')->default(false);
$table->decimal('voluntary_pf_rate', 5, 2)->nullable(); // %
$table->boolean('esi_applicable')->default(true);
$table->boolean('professional_tax_applicable')->default(true);
/* ======================
| Payroll Control
|======================*/
$table->boolean('is_director')->default(false);
$table->boolean('exclude_from_payroll')->default(false);
$table->timestamps();
});
}
public function down(): void
{
Schema::dropIfExists('employees');
}
};


PK 99