<?php

namespace App\Models;

use App\Models\Backoffice\MediaItem;
use App\Models\Backoffice\Support\ContentTypeModel;
use App\Models\Backoffice\Traits\LanguageSupportTrait;
use Illuminate\Database\Eloquent\Builder;

class Advertisement extends ContentTypeModel
{
    use LanguageSupportTrait;

    protected $hidden = ['languages', "websites"];
    protected $with = ['languages', "websites"];

    public function largeMobileBanner()
    {
        return $this->belongsTo(MediaItem::class, 'large_mobile_banner_id');
    }

    public function mediumRectangle()
    {
        return $this->belongsTo(MediaItem::class, 'medium_rectangle_id');
    }

    public function largeLeaderboard()
    {
        return $this->belongsTo(MediaItem::class, 'large_leaderboard_id');
    }

    public function superBanner()
    {
        return $this->belongsTo(MediaItem::class, 'super_banner_id');
    }

    public function largeBanner()
    {
        return $this->belongsTo(MediaItem::class, 'large_banner_id');
    }

    public function sliderBanner()
    {
        return $this->belongsTo(MediaItem::class, 'slider_banner_id');
    }

    /**
     * Scope a query to only include active users.
     */
    public function scopeActive(Builder $query): void
    {
        $query->where(function ($query) {
            $query->where('expire_date', '>=', now()->startOfDay())
                ->orWhereNull('expire_date');
        });
    }
}
