<?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('tarif_pekerjaans', function (Blueprint $table) {
            $table->id('id_tarif');
            
            // ===================================
            // KATEGORI & JENIS PEKERJAAN
            // ===================================
            $table->enum('jenis_pekerjaan', [
                'sr',                        // 1. Sambungan Rumah (meteran air)
                'pengembangan_jaringan_pipa', // 2. Pengembangan Jaringan Pipa (pipa baru)
                'pengangkatan',              // 3. Pengangkatan meteran/gate valve
                'pemasangan_gate_valve',     // 4. Pemasangan Gate Valve + Pressure
                'gali_urug',                 // 5. Gali Urug
                'perbaikan_jaringan_pipa',   // 6. Perbaikan Jaringan Pipa Bocor
                'pengecatan_pipa_besi',      // 7. Pengecatan Pipa Besi
                'penyempurnaan_jaringan_pipa' // 8. Penyempurnaan Jaringan Pipa
            ])->comment('Jenis pekerjaan');

            // ===================================
            // IDENTITAS TARIF
            // ===================================
            $table->string('nama_item', 100)->comment('Nama item/pekerjaan');
            $table->string('kode_item', 20)->unique()->comment('Kode unik item');

            // ===================================
            // DIMENSI PIPA (untuk pekerjaan yang bergantung diameter)
            // ===================================
            $table->enum('dimensi_pipa', ['1-2', '3', '4', '6', '8', '10', '12'])
                  ->nullable()
                  ->comment('Dimensi/diameter pipa dalam inchi. NULL untuk pekerjaan yang tidak butuh dimensi pipa');

            // ===================================
            // TARIF PEKERJAAN
            // ===================================
            $table->decimal('tarif_per_unit', 12, 2)
                  ->nullable()
                  ->comment('Tarif flat per unit/titik. Dipakai untuk: SR (150k), Pengangkatan (200k), Gate Valve (200k/free), Gali Urug (200k/titik), Perbaikan & Pengecatan per dimensi');

            $table->decimal('tarif_per_meter', 12, 2)
                  ->nullable()
                  ->comment('Tarif per meter. Dipakai untuk: Pengembangan & Penyempurnaan Jaringan Pipa sesuai dimensi');

            // ===================================
            // KONDISI KHUSUS
            // ===================================
            $table->boolean('pakai_pipa_besi')
                  ->nullable()
                  ->comment('Khusus Pemasangan Gate Valve: TRUE=ada pipa besi(200k), FALSE=tanpa pipa besi(free/0)');

            // ===================================
            // GARANSI (Khusus SR - Pemasangan Meteran Air)
            // ===================================
            $table->boolean('ada_garansi')
                  ->default(false)
                  ->comment('Apakah pekerjaan ini memiliki garansi?');

            $table->integer('durasi_garansi_bulan')
                  ->nullable()
                  ->comment('Durasi garansi dalam bulan (3 bulan untuk SR)');

            // ===================================
            // INFO TAMBAHAN
            // ===================================
            $table->text('deskripsi')->nullable()->comment('Keterangan tambahan');

            $table->boolean('is_active')
                  ->default(true)
                  ->comment('Status aktif tarif');

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

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