namespace UtopiaCanteenSystem.Services;
///
/// Provides persisted configuration values for the app.
///
public interface IConfigService
{
string GetSyncApiEndpoint();
void SetSyncApiEndpoint(string endpoint);
bool GetSyncServiceEnabled();
void SetSyncServiceEnabled(bool enabled);
bool GetScannerConnected();
void SetScannerConnected(bool connected);
/// Scan interval: minimum time between scans. Days (0–365), Hours (0–23), Minutes (0–59), Seconds (0–59).
int GetScanIntervalDays();
void SetScanIntervalDays(int value);
int GetScanIntervalHours();
void SetScanIntervalHours(int value);
int GetScanIntervalMinutes();
void SetScanIntervalMinutes(int value);
int GetScanIntervalSeconds();
void SetScanIntervalSeconds(int value);
/// Computed interval from D+H+M+S with clamping. If all zero, returns default (1 minute).
TimeSpan GetScanInterval();
string GetAdminCardId();
void SetAdminCardId(string cardId);
string GetSiteId();
void SetSiteId(string siteId);
/// Persist HRMS location_site_id in the same format as the scanner dashboard (digits → "SITE : …").
void ApplyLocationSiteIdFromAuth(string? locationSiteId);
string GetDeviceId();
void SetDeviceId(string deviceId);
bool GetRememberAdminCredentials();
void SetRememberAdminCredentials(bool remember);
string GetSavedAdminUsername();
void SetSavedAdminUsername(string username);
string GetSavedAdminPassword();
void SetSavedAdminPassword(string password);
string GetMySqlConnectionString();
void SetMySqlConnectionString(string connectionString);
/// Connection string for local HRMS MySQL (employee lookup by RFID). Separate from production sync.
string GetHrmsLookupConnectionString();
void SetHrmsLookupConnectionString(string connectionString);
}