<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class SitePage extends Model
{
    use HasFactory;
    protected $table = 'site_pages';

    protected $casts = [
        'post_date' => 'datetime:Y-m-d'
    ];



    public function tags()
    {
        return $this->belongsToMany(
            SitePageTag::class,
            'site_pages_tag_relationship',
            'pages_id',
            'tag_id'
        );
    }


    // 根据 ID 获取文章
    public static function getPageById($id)
    {
        return self::where('dist_id', getDistId())->find($id);
    }

    // 根据标题获取文章
    public static function getPageByTitle($title)
    {
        return self::where('dist_id', getDistId())->where('title', $title)->first();
    }

    // 根据 Slug 获取文章
    public static function getPageBySlug($slug)
    {
        return self::where('dist_id', getDistId())->where('slug', $slug)->first();
    }

    // 获取多个文章
    public static function getPages($limit = 10)
    {
        return self::where('dist_id', getDistId())
            ->where('status', 1)
            ->limit($limit)   // 限制结果数量
            ->orderBy('post_date', 'desc')  // 按照发布日期降序排序
            ->get();  // 返回结果集合
    }

}