using TakeoutSaaS.Shared.Abstractions.Data;

namespace TakeoutSaaS.Infrastructure.Common.Persistence;

/// <summary>
/// 数据库连接工厂，负责按读写角色选择对应连接串及配置。
/// </summary>
public interface IDatabaseConnectionFactory
{
    /// <summary>
    /// 获取指定数据源与读写角色的连接信息。
    /// </summary>
    /// <param name="dataSourceName">逻辑数据源名称。</param>
    /// <param name="role">连接角色（读/写）。</param>
    /// <returns>连接串与相关配置。</returns>
    DatabaseConnectionDetails GetConnection(string dataSourceName, DatabaseConnectionRole role);
}
