<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class LibrarySetting extends Model
{
    use HasFactory;

    protected $table = 'library_settings';
    
    protected $fillable = [
        'key',
        'value',
        'description'
    ];

    // Get setting value
    public static function get($key, $default = null)
    {
        $setting = self::where('key', $key)->first();
        return $setting ? $setting->value : $default;
    }

    // Set setting value
    public static function set($key, $value, $description = null)
    {
        return self::updateOrCreate(
            ['key' => $key],
            ['value' => $value, 'description' => $description]
        );
    }

    // Default settings
    public static function getDefaultSettings()
    {
        return [
            ['key' => 'max_books_per_student', 'value' => '3', 'description' => 'প্রতি ছাত্রের জন্য সর্বোচ্চ বই'],
            ['key' => 'max_books_per_teacher', 'value' => '10', 'description' => 'প্রতি শিক্ষকের জন্য সর্বোচ্চ বই'],
            ['key' => 'loan_days_student', 'value' => '15', 'description' => 'ছাত্রদের জন্য বই রাখার দিন'],
            ['key' => 'loan_days_teacher', 'value' => '30', 'description' => 'শিক্ষকদের জন্য বই রাখার দিন'],
            ['key' => 'fine_per_day', 'value' => '5', 'description' => 'প্রতিদিন জরিমানা (টাকা)'],
            ['key' => 'library_open_time', 'value' => '09:00', 'description' => 'লাইব্রেরি খোলার সময়'],
            ['key' => 'library_close_time', 'value' => '17:00', 'description' => 'লাইব্রেরি বন্ধের সময়'],
            ['key' => 'librarian_name', 'value' => '', 'description' => 'গ্রন্থাগারিকের নাম'],
            ['key' => 'librarian_phone', 'value' => '', 'description' => 'গ্রন্থাগারিকের ফোন']
        ];
    }
}