diff --git a/README.md b/README.md index 18b1eaf..2916643 100644 Binary files a/README.md and b/README.md differ diff --git a/src/database/psql-entity-framework/entity-relationships.js b/src/database/psql-entity-framework/entity-relationships.js index e69de29..591e735 100644 --- a/src/database/psql-entity-framework/entity-relationships.js +++ b/src/database/psql-entity-framework/entity-relationships.js @@ -0,0 +1,29 @@ +const DataTypes = require('./types.js'); + +class PSQLObjectRelation { + constructor(psqlConnection) { + this.connection = psqlConnection; + } + + async AddModel(name, model) { + Logger.database(`ORM Adding ${name}`); + let sql = `CREATE TABLE IF NOT EXISTS ${name} (`; + let keys = Object.keys(model); + for (let i = 0; i < keys.length; i++) { + let key = keys[i]; + let value = model[key]; + sql += `${key} ${value}`; + if (i < keys.length - 1) sql += ', '; + } + sql += ');'; + Logger.database(sql); + await this.connection.query(sql); + } + + async SyncModels() { + Logger.database('ORM Syncing...'); + + } +} + +module.exports = PSQLObjectRelation; diff --git a/src/database/psql-entity-framework/model.js b/src/database/psql-entity-framework/model.js new file mode 100644 index 0000000..e69de29 diff --git a/src/database/psql-entity-framework/relationships.js b/src/database/psql-entity-framework/relationships.js new file mode 100644 index 0000000..f242c8c --- /dev/null +++ b/src/database/psql-entity-framework/relationships.js @@ -0,0 +1,19 @@ +class RelationshipTypes { + static get UNIQUE() { + return 'UNIQUE'; + } + + static get NOT_NULL() { + return 'NOT NULL'; + } + + static get REFERENCES() { + return 'REFERENCES'; + } + + static FOREIGN_KEY(localKey, foreignKey) { + return `FOREIGN KEY (${localKey}) REFERENCES ${foreignKey}`; + } +} + +module.exports = DataTypes; diff --git a/src/database/psql-entity-framework/types.js b/src/database/psql-entity-framework/types.js new file mode 100644 index 0000000..9bd3ce5 --- /dev/null +++ b/src/database/psql-entity-framework/types.js @@ -0,0 +1,27 @@ +class DataTypes { + static VARCHAR(length) { + return `VARCHAR(${length})`; + } + + static get INTEGER() { + return 'INT'; + } + + static get BIGINT() { + return 'BIGINT'; + } + + static get TEXT() { + return 'TEXT'; + } + + static get BOOLEAN() { + return 'BOOLEAN'; + } + + static get TIMESTAMP() { + return 'TIMESTAMP WITHOUT TIME ZONE'; + } +} + +module.exports = DataTypes;