<?php
// +----------------------------------------------------------------------
// | onezan-admin 快速开发的管理平台
// +----------------------------------------------------------------------
// | 官方网址：https://www.onezan.cn
// +----------------------------------------------------------------------
// | onezan团队 版权所有 开源版本可自由商用
// +----------------------------------------------------------------------
// | Author: 543885307@qq.com
// +----------------------------------------------------------------------
namespace app\repository\media;

use app\repository\BaseRepository;
use think\facade\Db;


/**
 * Media Group Repository
 * @package app\repository\media
 */
class MediaGroupRepository extends BaseRepository
{

    /**
     * 获取所有媒体分组列表
     * @return array
     */
    public function listAll(): array
    {
        return Db::name('sys_media_groups')->order('sort', 'asc')->order('id', 'asc')->select()->toArray();
    }


    /**
     * 按ID查找分组
     * @param int $id
     * @return array|null
     */
    public function findById(int $id): ?array
    {
        $row = Db::name('sys_media_groups')->where('id', $id)->find();
        return is_array($row) ? $row : null;
    }


    /**
     * 插入媒体分组并返回自增ID
     * @param array $data
     * @return int
     */
    public function insert(array $data): int
    {
        return (int)Db::name('sys_media_groups')->insertGetId($data);
    }


    /**
     * 按主键更新媒体分组
     * @param int $id
     * @param array $data
     * @return void
     */
    public function updateById(int $id, array $data): void
    {
        Db::name('sys_media_groups')->where('id', $id)->update($data);
    }


    /**
     * 按主键删除媒体分组
     * @param int $id
     * @return void
     */
    public function deleteById(int $id): void
    {
        Db::name('sys_media_groups')->where('id', $id)->delete();
    }
}