<?php  namespace App\Models;  use App\Enums\StatusGroup; use App\Traits\HasStorage; use App\Contracts\HasMedia; use App\Traits\HasComments; use App\Traits\HasStatuses; use App\Contracts\HasAuthor; use App\Contracts\Commentable; use App\Contracts\RestrictUpdates; use Illuminate\Support\Collection; use App\Contracts\HasNotifications; use App\Observers\BuyerReturnObserver; use Illuminate\Database\Eloquent\Builder; use App\Traits\HasAuthor as TraitsHasAuthor; use Illuminate\Database\Eloquent\Relations\HasOne; use Illuminate\Database\Eloquent\Relations\MorphTo; use Illuminate\Database\Eloquent\Relations\BelongsTo; use App\Traits\HasNotifications as TraitsHasNotifications;  class BuyerReturn extends Model implements Commentable, HasAuthor, HasMedia, HasNotifications, RestrictUpdates { 	use HasStorage, HasStatuses, HasComments, TraitsHasNotifications, TraitsHasAuthor;  	final public const DEFAULT_STATUS_NAME = 'Novo';  	protected $casts = [ 		'is_being_repaired' => 'boolean', 		'is_replaced' => 'boolean', 		'is_reclamation' => 'boolean', 		'buyer_details' => 'array', 		'repair_service_details' => 'array', 	];  	public static function getDefaultStatus(StatusGroup $statusGroup = StatusGroup::Service): Status 	{ 		return Status::firstOrCreate(['status_group' => $statusGroup, 'name' => self::DEFAULT_STATUS_NAME]); 	}  	protected static function initObservers(): string 	{ 		return BuyerReturnObserver::class; 	}  	public function item(): HasOne{}  	public function buyer(): BelongsTo{}  	public function repairService(): BelongsTo{}  	public function author(): MorphTo{}  	public function mediaConfig(): array{}  	public function getBuyerDetails(): object{}  	public function getRepairServiceDetails(): ?object{}  	public function getDefaultMediaPrefix(): string{}  	public function isReclamation(): bool{}  	public function scopeByType(Builder $query, bool $isReclamation): Builder{}  	public function scopeFilterStatuses(Builder $query, ?array $statuses = []): Builder{}  	public function scopeSearch(Builder $query, ?string $search = null): Builder{}  	public function scopeIncludeCounts(Builder $query): Builder{}  	public function getBuyerName(): string{}  	public function getAuthorName(): ?string{}  	public function getLastStatusName(): string{}  	public function getRepairServiceName(): ?string{}  	public function getStatusGroup(): StatusGroup{}  	public function getCommentRoutePrefix(): string{}  	public function getEditView(): string{}  	public function getAppDeeplinkUrl(?string $uri = null): string{}  	public function getAlwaysUpdateableFields(): array{}  	public function attributeMapper(?string $attribute): null|string|callable{}  	public function getProducts(): Collection{}  	public function defaultStatusName(): string{}  	protected function getIncludes(): array{} }