async function defineModel({keys, columns = ["email", "secret"], encryption = "aes-128-cbc", keyringIdColumn = "keyring_id", digestSalt = ""}) { const model = await sequelize.define("users", { id: { type: Sequelize.UUIDV4, primaryKey: true, allowNull: false, defaultValue: Sequelize.UUIDV4 }, encrypted_email: Sequelize.TEXT, email_digest: Sequelize.TEXT, email: Sequelize.VIRTUAL, encrypted_secret: Sequelize.TEXT, secret: Sequelize.VIRTUAL, keyring_id: Sequelize.INTEGER, custom_keyring_id: Sequelize.INTEGER }, {timestamps: false}); Keyring(model, {keys, columns, encryption, keyringIdColumn, digestSalt}); return model; }
async init() { if (Database.created) { return; } const UserGroup = sequelize.define("UserGroup", { warnsNumber: { type: Sequelize.INTEGER.UNSIGNED, defaultValue: 0 } }); User.belongsToMany(Group, { through: UserGroup }); Group.belongsToMany(User, { through: UserGroup }); Spam.belongsToMany(Group, { through: "SpamGroup" }); Group.belongsToMany(Spam, { through: "SpamGroup" }); Rule.belongsToMany(Group, { through: "GroupRule" }); Group.belongsToMany(Rule, { through: "GroupRule" }); Group.hasMany(ClearPeriod); await sequelize.sync(); _created = true; }
sequelize.define('Count', { value: DataTypes.INTEGER, updated_at: DataTypes.DATE }, { underscored: true, tableName: 'counts', classMethods: { findTheOne: function *() { var data = yield Count.findOrCreate({ where: ['id > ?', 0], defaults: { value: 0 } }); return data[0]; } } })
static init ({ db }) { super.init({ // attributes content: { type: Sequelize.TEXT, defaultValue: '', trim: true }, slideId: { type: Sequelize.INTEGER, field: 'slide_id' }, visible: { type: Sequelize.BOOLEAN, defaultValue: true }, sequence: { type: Sequelize.INTEGER, defaultValue: 0, trim: true }, // timestamp createdAt: { type: Sequelize.DATE, field: 'created_at' }, updatedAt: { type: Sequelize.DATE, field: 'updated_at' }, deletedAt: { type: Sequelize.DATE, field: 'deleted_at' } }, { // configuration modelName: 'Page', sequelize: db, timestamps: true, paranoid: true, // updatedAt: false, // underscored: true, freezeTableName: true, tableName: 'pages' }) return this }
sql.define('profile', { id: { type: Sequelize.INTEGER, autoIncrement: true, primaryKey: true }, displayName: Sequelize.STRING, firstName: Sequelize.STRING, lastName: Sequelize.STRING, email: Sequelize.STRING }, { classMethods: { associate: function associate(user){ profile.belongsTo(user); } } })
function defineModel(name, attributes, opts = {}) { var attrs = {}; attrs.id = { type: Sequelize.INTEGER, primaryKey: true, autoIncrement: true,
id: { primaryKey: true, type: Sequelize.INTEGER, allowNull: false },
const getDB = async () => { const Op = SQL.Op; const operatorsAliases = { $in: Op.in, }; const db = new SQL('', '', '', { dialect: 'sqlite', storage: './db.sqlite', operatorsAliases, logging: false, }); const users = db.define('user', { id: { type: SQL.INTEGER, primaryKey: true, autoIncrement: true, }, name: SQL.STRING, createdAt: SQL.DATE, updatedAt: SQL.DATE, }); return { users }; }
sql.define('profile', { id: { type: Sequelize.INTEGER, autoIncrement: true, primaryKey: true }, displayName: Sequelize.STRING, firstName: Sequelize.STRING, lastName: Sequelize.STRING, email: Sequelize.STRING }, { classMethods: { associate: function associate(user){ profile.belongsTo(user); } } })