Files

41 lines
1007 B
C++
Raw Permalink Normal View History

2026-07-12 14:34:52 +04:00
#ifndef SCHEMA_METADATA_H
#define SCHEMA_METADATA_H
#include "relation_id_config.h"
#include <QMap>
#include <QObject>
#include <mutex>
class SchemaMetadata : QObject {
Q_OBJECT
private:
static QMap<QString, RelationIdConfig> databaseTableNameToConfigMap_;
static std::once_flag initFlag;
public:
SchemaMetadata &operator=(const SchemaMetadata &);
SchemaMetadata(const SchemaMetadata &);
QString modelTableName(const QString &databaseTableName);
QString primaryIdColumnName(const QString &databaseTableName);
QString repositoryTableName(const QString &databaseTableName);
QString translatedTableName(const QString &databaseTableName);
RelationIdConfig relationIdConfig(const QString &databaseTableName);
inline auto asKeyValueRange();
static SchemaMetadata defaultSchema();
private:
SchemaMetadata() noexcept;
static void initialize();
};
auto SchemaMetadata::asKeyValueRange() {
return databaseTableNameToConfigMap_.asKeyValueRange();
}
#endif // SCHEMA_METADATA_H