<?php
// File: database/migrations/xxxx_create_detail_penggajians_table.php

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

return new class extends Migration
{
    /**
     * Run the migrations.
     * 
     * Tabel detail untuk tracking ongkos dari setiap penugasan
     * Berguna untuk transparansi dan audit gaji
     */
    public function up(): void
    {
        Schema::create('detail_penggajians', function (Blueprint $table) {
            $table->id('id_detail');
            
            $table->unsignedBigInteger('id_penggajian')
                  ->comment('ID penggajian');
            
            $table->unsignedBigInteger('id_penugasan')
                  ->comment('ID penugasan yang jadi sumber ongkos');
            
            $table->date('tanggal_selesai')
                  ->comment('Tanggal penugasan selesai');
            
            $table->string('lokasi')
                  ->comment('Lokasi pekerjaan');
            
            $table->decimal('ongkos_penugasan', 12, 2)
                  ->comment('Total ongkos dari penugasan ini (kotor)');
            
            $table->integer('jumlah_tim')
                  ->comment('Jumlah anggota tim yang hadir');
            
            $table->decimal('bagian_ongkos', 12, 2)
                  ->comment('Bagian ongkos untuk teknisi ini (ongkos ÷ jumlah tim)');
            
            $table->timestamps();
            
            // Foreign Keys
            $table->foreign('id_penggajian')
                  ->references('id_penggajian')
                  ->on('penggajians')
                  ->onDelete('cascade');
            
            $table->foreign('id_penugasan')
                  ->references('id_penugasan')
                  ->on('penugasans')
                  ->onDelete('cascade');
            
            // Index
            $table->index('id_penggajian');
            $table->index('id_penugasan');
        });
    }

    public function down(): void
    {
        Schema::dropIfExists('detail_penggajians');
    }
};