package ports

import (
	"Yimaru-Backend/internal/domain"
	"context"
)

type SettingStore interface {
	GetGlobalSettingList(ctx context.Context) (domain.SettingList, error)
	GetGlobalSettings(ctx context.Context) ([]domain.Setting, error)
	GetGlobalSetting(ctx context.Context, key string) (domain.Setting, error)
	UpdateGlobalSetting(ctx context.Context, key, value string) error
	UpdateGlobalSettingList(ctx context.Context, settingList domain.ValidSettingList) error

	// InsertCompanySetting(ctx context.Context, key, value string, companyID int64) error
	// InsertCompanySettingList(ctx context.Context, settingList domain.ValidSettingList, companyID int64) error
	// GetAllCompanySettings(ctx context.Context) ([]domain.CompanySetting, error)
	// GetCompanySettingsByKey(ctx context.Context, key string) ([]domain.CompanySetting, error)
	// GetOverrideSettings(ctx context.Context, companyID int64) ([]domain.Setting, error)
	// GetOverrideSettingsList(ctx context.Context, companyID int64) (domain.SettingList, error)
	// DeleteCompanySetting(ctx context.Context, companyID int64, key string) error
	// DeleteAllCompanySetting(ctx context.Context, companyID int64) error
	EnsureAllSettingsExist(ctx context.Context) error
}
