Initial commit

This commit is contained in:
user
2026-07-12 14:34:52 +04:00
commit 3abf6bd9c2
557 changed files with 68706 additions and 0 deletions
+137
View File
@@ -0,0 +1,137 @@
#include "schema_metadata.h"
#include <QDebug>
QMap<QString, RelationIdConfig> SchemaMetadata::databaseTableNameToConfigMap_;
std::once_flag SchemaMetadata::initFlag;
void SchemaMetadata::initialize() {
qInfo() << "Initializing schema metadata...";
RelationIdConfig genreConfig;
genreConfig.setPrimaryIdColumnName("genre_id");
genreConfig.setTranslatedTableName(tr("Genres"));
genreConfig.setModelTableName("GenresModel");
genreConfig.setRepositoryTableName("GenresRepository");
databaseTableNameToConfigMap_.insert("genres", genreConfig);
RelationIdConfig hallConfig;
hallConfig.setPrimaryIdColumnName("hall_id");
hallConfig.setTranslatedTableName(tr("Halls"));
hallConfig.setModelTableName("HallsModel");
hallConfig.setRepositoryTableName("HallsRepository");
databaseTableNameToConfigMap_.insert("halls", hallConfig);
RelationIdConfig movieConfig;
movieConfig.setPrimaryIdColumnName("movie_id");
movieConfig.setTranslatedTableName(tr("Movies"));
movieConfig.setModelTableName("MoviesModel");
movieConfig.setRepositoryTableName("MoviesRepository");
databaseTableNameToConfigMap_.insert("movies", movieConfig);
RelationIdConfig refundConfig;
refundConfig.setPrimaryIdColumnName("refund_id");
refundConfig.setTranslatedTableName(tr("Refunds"));
refundConfig.setModelTableName("RefundsModel");
refundConfig.setRepositoryTableName("RefundsRepository");
databaseTableNameToConfigMap_.insert("refunds", refundConfig);
RelationIdConfig sessionConfig;
sessionConfig.setPrimaryIdColumnName("session_id");
sessionConfig.setTranslatedTableName(tr("Sessions"));
sessionConfig.setModelTableName("SessionsModel");
sessionConfig.setRepositoryTableName("SessionsRepository");
databaseTableNameToConfigMap_.insert("sessions", sessionConfig);
RelationIdConfig ticketConfig;
ticketConfig.setPrimaryIdColumnName("ticket_id");
ticketConfig.setTranslatedTableName(tr("Tickets"));
ticketConfig.setModelTableName("TicketsModel");
ticketConfig.setRepositoryTableName("TicketsRepository");
databaseTableNameToConfigMap_.insert("tickets", ticketConfig);
RelationIdConfig userConfig;
userConfig.setPrimaryIdColumnName("user_id");
userConfig.setTranslatedTableName(tr("Users"));
userConfig.setRepositoryTableName("UsersRepository");
databaseTableNameToConfigMap_.insert("users", userConfig);
RelationIdConfig roleConfig;
roleConfig.setPrimaryIdColumnName("role_id");
roleConfig.setTranslatedTableName(tr("Roles"));
roleConfig.setRepositoryTableName("RolesRepository");
databaseTableNameToConfigMap_.insert("roles", roleConfig);
RelationIdConfig tableInfoConfig;
tableInfoConfig.setTranslatedTableName(tr("Sessions statistics"));
tableInfoConfig.setRepositoryTableName("SessionsStatisticsRepository");
databaseTableNameToConfigMap_.insert("sessions_statistics", tableInfoConfig);
qInfo() << "Schema metadata initialized successfully";
}
SchemaMetadata::SchemaMetadata() noexcept {
std::call_once(initFlag, &SchemaMetadata::initialize);
}
SchemaMetadata::SchemaMetadata(const SchemaMetadata &) {}
SchemaMetadata &SchemaMetadata::operator=(const SchemaMetadata &) {
return *this;
}
SchemaMetadata SchemaMetadata::defaultSchema() { return SchemaMetadata(); }
QString SchemaMetadata::modelTableName(const QString &databaseTableName) {
QString modelTableName = relationIdConfig(databaseTableName).modelTableName();
if (modelTableName.isEmpty()) {
qFatal() << "Model table name is empty: Database table name:"
<< databaseTableName;
}
return modelTableName;
}
QString SchemaMetadata::primaryIdColumnName(const QString &databaseTableName) {
QString primaryIdColumnName =
relationIdConfig(databaseTableName).primaryIdColumnName();
if (primaryIdColumnName.isEmpty()) {
qFatal() << "Primary id column name is empty: Database table name:"
<< databaseTableName;
}
return primaryIdColumnName;
}
QString SchemaMetadata::repositoryTableName(const QString &databaseTableName) {
QString repositoryTableName =
relationIdConfig(databaseTableName).repositoryTableName();
if (repositoryTableName.isEmpty()) {
qFatal() << "Repository table name is empty: Database table name:"
<< databaseTableName;
}
return repositoryTableName;
}
QString SchemaMetadata::translatedTableName(const QString &databaseTableName) {
QString translatedTableName =
relationIdConfig(databaseTableName).translatedTableName();
if (translatedTableName.isEmpty()) {
qFatal() << "Translated table name is empty: Database table name:"
<< databaseTableName;
}
return translatedTableName;
}
RelationIdConfig
SchemaMetadata::relationIdConfig(const QString &databaseTableName) {
RelationIdConfig config =
databaseTableNameToConfigMap_.value(databaseTableName);
return config;
}