<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\HasManyThrough;

class Company extends Model
{
    use HasFactory;

    protected $table = 'companies';

    protected $fillable = [
        'name',
    ];

    /**
     * কোম্পানির আন্ডারে অনেকগুলো ফোল্ডার থাকে।
     * Folder মডেলটি একই নেমস্পেসে থাকলেও এটি নিশ্চিত করুন।
     */
    public function folders(): HasMany
    {
        return $this->hasMany(Folder::class, 'company_id');
    }

    /**
     * Folders টেবিলের মাধ্যমে Documents টেবিলের সাথে কানেক্ট হওয়া।
     * এটি Class "App\Models\Folder" not found এররটি সমাধান করবে।
     */
    public function documents(): HasManyThrough
    {
        return $this->hasManyThrough(
            Document::class, // চূড়ান্ত মডেল
            Folder::class,   // মাধ্যম মডেল
            'company_id',    // folders টেবিলের ফরেন কি
            'folder_id',     // documents টেবিলের ফরেন কি
            'id',            // companies টেবিলের লোকাল কি
            'id'             // folders টেবিলের লোকাল কি
        );
    }
}