<?php

namespace App\Models;

use App\Models\Concerns\BelongsToCompany;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Relations\HasMany;

class Shift extends Model
{
    use BelongsToCompany;

    protected $table = 'shifts';

    protected $fillable = [
        'company_id',
        'name',
        'description',
        'clock_in_time',
        'clock_out_time',
        'is_night_shift',
        'is_active',
        'grace_period_minutes',
        'early_going_grace_minutes',
        'minimum_hours_full_day',
    ];

    protected $casts = [
        'clock_in_time' => 'datetime:H:i',
        'clock_out_time' => 'datetime:H:i',
        'is_night_shift' => 'boolean',
        'is_active' => 'boolean',
        'grace_period_minutes' => 'integer',
        'early_going_grace_minutes' => 'integer',
        'minimum_hours_full_day' => 'decimal:2',
    ];

    public function users(): HasMany
    {
        return $this->hasMany(User::class, 'shift_id');
    }

    public function scopeActive(Builder $query): Builder
    {
        return $query->where('is_active', true);
    }
}
