'datetime', 'updated_at' => 'datetime', 'deleted_at' => 'datetime', ]; // Связь один-ко-многим: у заявки могут быть комментарии public function comments() { return $this->hasMany(Comment::class); } // Связь многие-ко-многим: заявка может иметь несколько тегов public function tags() { return $this->belongsToMany(Tag::class, 'submission_tag'); } // Полиморфная связь: заявка может иметь вложения public function attachments() { return $this->morphMany(Attachment::class, 'attachable'); } // Query Scope: только активные заявки public function scopeActive(Builder $query) { return $query->where('status', 'active'); } // Query Scope: только архивные заявки public function scopeArchived(Builder $query) { return $query->where('status', 'archived'); } // Query Scope: поиск по имени или email public function scopeSearch(Builder $query, $search) { return $query->where(function ($q) use ($search) { $q->where('name', 'like', "%{$search}%") ->orWhere('email', 'like', "%{$search}%"); }); } // Query Scope: недавние заявки (за последние N дней) public function scopeRecent(Builder $query, $days = 7) { return $query->where('created_at', '>=', now()->subDays($days)); } }