using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Exceptions.Database;
using SPTarkov.Server.Core.Models.Spt.Server;
namespace SPTarkov.Server.Core.Servers;
[Injectable(InjectionType.Singleton)]
public class DatabaseServer
{
protected DatabaseTables? TableData { get; private set; }
///
/// Gets the database tables.
///
/// The database tables if they have been initialized.
/// Thrown when the database tables have not been initialized.
public DatabaseTables GetTables()
{
if (TableData is null)
{
throw new DatabaseNullException("The database has not been initialized!");
}
return TableData;
}
///
/// Sets the database tables for this instance. Can only be called once.
///
/// The database tables to set.
/// Thrown if the database tables are already set.
internal void SetTables(DatabaseTables tables)
{
if (TableData is null)
{
TableData = tables;
}
else
{
throw new DatabaseTablesAlreadySetException("The database is already initialized!");
}
}
}