<?php

namespace App\Contracts;

use App\Models\Setting;
use Illuminate\Support\Collection;

interface SettingRepositoryContract
{
    public function all(): Collection;

    public function getByCategory(string $category): Collection;

    public function findByKey(string $key): ?Setting;

    public function set(string $key, mixed $value, string $category, string $type = 'string'): Setting;

    public function setMany(array $settings): void;

    public function deleteByKey(string $key): bool;
}
