<?php

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

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        Schema::create('attendance_settings', function (Blueprint $table) {
            $table->id();

            // Jam kerja
            $table->time('checkin_start')->default('07:00:00');  // mulai boleh absen masuk
            $table->time('checkin_end')->default('09:00:00');    // lewat ini dianggap telat (atau bisa tetap masuk telat)
            $table->time('checkout_start')->default('15:00:00'); // mulai boleh absen pulang

            // Opsional: toleransi telat (menit), misal 0 jika tidak ada toleransi
            $table->unsignedSmallInteger('late_grace_minutes')->default(0);

            // Hari kerja efektif: simpan sebagai JSON array angka 1-7 (ISO weekday)
            // 1=Senin ... 7=Minggu. Contoh: [1,2,3,4,5]
            $table->json('effective_workdays')->nullable();

            // Opsional: timezone untuk perhitungan server-side (kalau perlu)
            $table->string('timezone', 50)->default('Asia/Jakarta');

            // Untuk audit/aturan tambahan (opsional)
            $table->boolean('allow_checkin_after_end')->default(true); // jika true: 09:00-14:59 tetap boleh checkin tapi status telat
            $table->boolean('require_checkout')->default(true);         // jika true: checkout missing jadi "hadir_tidak_lengkap"

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

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