namespace Netina.Domain.Models.Settings;

public class SiteSettings
{
    public JwtSettings JwtSettings { get; set; } = new JwtSettings();
    public string BaseUrl { get; set; } = string.Empty;
    public string WebSiteUrl { get; set; } = string.Empty;  
    public string AdminPanelBaseUrl { get; set; } = string.Empty;
    public string StorageBaseUrl { get; set; } = string.Empty;
    public RedisSettings MasterRedisConfiguration { get; set; } = new RedisSettings();
    public UserSetting UserSetting { get; set; } = new UserSetting();
    public UserSetting Manager { get; set; } = new UserSetting();
    public string KaveNegarApiKey { get; set; } = string.Empty;
    public string LoginOtpTemplate { get; set; } = string.Empty;
    public StorageSettings StorageSetting { get; set; } = new StorageSettings();
}
public class RedisSettings
{
    public string Password { get; set; } = string.Empty;
    public string ServiceName { get; set; } = string.Empty;
    public string Host { get; set; } = string.Empty;
    public int Port { get; set; }
}

public class StorageSettings
{
    public string AccessKey { get; set; } = string.Empty;
    public string SecretKey { get; set; } = string.Empty;
    public string BucketKey { get; set; } = string.Empty;
}

public class JwtSettings
{
    public string SecretKey { get; set; } = string.Empty;
    public string Issuer { get; set; } = string.Empty;
    public string Audience { get; set; } = string.Empty;
    public int ExpireAddDay { get; set; }
}

public class UserSetting
{
    public string Username { get; set; } = string.Empty;
    public string Password { get; set; } = string.Empty;
    public string Email { get; set; } = string.Empty;
    public string RoleName { get; set; } = string.Empty;
    public string FirstName { get; set; } = string.Empty;
    public string LastName { get; set; } = string.Empty;
    public string Phone { get; set; } = string.Empty;
}