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!"); } } }