namespace Noctalk_server.Server.Tor;

public sealed class Tor_file_layout
{
    public Tor_file_layout(string The_executable_directory)
    {
        Tor__directory = Path.Combine(The_executable_directory, "darknet", "tor");
        Tor__data_directory = Path.Combine(The_executable_directory, "darknet", "data");
        Tor__exe_path = Path.Combine(Tor__directory, "tor.exe");
        Tor__geoip_path = Path.Combine(Tor__directory, "geoip");
        Tor__geoip6_path = Path.Combine(Tor__directory, "geoip6");
        Tor__torrc_path = Path.Combine(Tor__directory, "torrc");
        Onion_service__directory = Path.Combine(Tor__data_directory, "onion_service");
        Onion_service__hostname_path = Path.Combine(Onion_service__directory, "hostname");
    }

    public string Tor__directory { get; }

    public string Tor__data_directory { get; }

    public string Tor__exe_path { get; }

    public string Tor__geoip_path { get; }

    public string Tor__geoip6_path { get; }

    public string Tor__torrc_path { get; }

    public string Onion_service__directory { get; }

    public string Onion_service__hostname_path { get; }

    public bool Is__tor_placed_correctly => File.Exists(Tor__exe_path) && File.Exists(Tor__geoip_path) && File.Exists(Tor__geoip6_path) && File.Exists(Tor__torrc_path);
}
