<?php

declare(strict_types=1);

namespace App\Models\Barangay;

use App\Models\Model;
use Hypervel\Database\Eloquent\SoftDeletes;

class BarangayProject extends Model
{
    use SoftDeletes;

    protected ?string $table = 'barangay_projects';

    protected array $fillable = [
        'hashkey', 'project_name', 'description', 'type', 'budget',
        'fund_source', 'start_date', 'end_date', 'status',
        'implementing_office', 'contractor', 'location',
        'beneficiaries_count', 'created_by', 'updated_by',
    ];

    protected array $casts = [
        'budget'             => 'decimal:2',
        'start_date'         => 'date',
        'end_date'           => 'date',
        'beneficiaries_count' => 'integer',
    ];

    public function createdBy()
    {
        return $this->belongsTo(\App\Models\User::class, 'created_by');
    }

    public function scopeActive($query)
    {
        return $query->whereNotIn('status', ['CANCELLED', 'COMPLETED']);
    }

    public function scopeByType($query, string $type)
    {
        return $query->where('type', $type);
    }
}
