<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Storage;

class VillageProfile extends Model
{
    protected $fillable = [
        'nama_desa', 'kecamatan', 'kabupaten', 'provinsi', 'slogan',
        'foto_utama', 'sambutan_kepala_desa', 'foto_kepala_desa',
        'sejarah_singkat', 'asal_usul', 'visi', 'misi', 'motto',
        'letak_geografis', 'luas_wilayah', 'ketinggian', 'batas_wilayah',
        'kondisi_umum_wilayah',
    ];

    /**
     * Ambil data profil desa (singleton).
     */
    public static function current(): self
    {
        return static::firstOrCreate([], [
            'nama_desa'  => 'Desa Suka Baru',
            'kecamatan'  => 'Marga Sakti Sebelat',
            'kabupaten'  => 'Bengkulu Utara',
            'provinsi'   => 'Bengkulu',
        ]);
    }

    public function getFotoUtamaUrlAttribute(): ?string
    {
        if (!$this->foto_utama) return asset('images/kantor desa.jpeg');
        if (str_starts_with($this->foto_utama, 'http')) return $this->foto_utama;
        if (str_starts_with($this->foto_utama, 'images/')) return asset($this->foto_utama);
        if (file_exists(public_path('images/' . $this->foto_utama))) return asset('images/' . $this->foto_utama);
        return Storage::url($this->foto_utama);
    }

    public function getFotoKepalaDasaUrlAttribute(): ?string
    {
        if (!$this->foto_kepala_desa) return null;
        if (str_starts_with($this->foto_kepala_desa, 'http')) return $this->foto_kepala_desa;
        return Storage::url($this->foto_kepala_desa);
    }
}
