module.exports = { up: async (queryInterface, Sequelize) => { await queryInterface.createTable('teams', { id: { type: 'UUID', allowNull: false, primaryKey: true, }, name: { type: 'CHARACTER VARYING', allowNull: true, }, slackId: { type: 'CHARACTER VARYING', allowNull: true, unique: true, }, slackData: { type: 'JSONB', allowNull: true, }, createdAt: { type: 'TIMESTAMP WITH TIME ZONE', allowNull: false, }, updatedAt: { type: 'TIMESTAMP WITH TIME ZONE', allowNull: false, }, }); await queryInterface.createTable('atlases', { id: { type: 'UUID', allowNull: false, primaryKey: true, }, name: { type: 'CHARACTER VARYING', allowNull: true, }, description: { type: 'CHARACTER VARYING', allowNull: true, }, type: { type: 'CHARACTER VARYING', allowNull: true, }, navigationTree: { type: 'JSONB', allowNull: true, }, createdAt: { type: 'TIMESTAMP WITH TIME ZONE', allowNull: false, }, updatedAt: { type: 'TIMESTAMP WITH TIME ZONE', allowNull: false, }, teamId: { type: 'UUID', allowNull: false }, }); await queryInterface.createTable('users', { id: { type: 'UUID', allowNull: false, primaryKey: true, }, email: { type: 'CHARACTER VARYING', allowNull: false, }, username: { type: 'CHARACTER VARYING', allowNull: false, }, name: { type: 'CHARACTER VARYING', allowNull: false, }, isAdmin: { type: 'BOOLEAN', allowNull: true, defaultValue: false, }, slackAccessToken: { type: 'bytea', allowNull: true, }, slackId: { type: 'CHARACTER VARYING', unique: true, allowNull: false, }, slackData: { type: 'JSONB', allowNull: true, }, jwtSecret: { type: 'bytea', allowNull: true, }, createdAt: { type: 'TIMESTAMP WITH TIME ZONE', allowNull: false, }, updatedAt: { type: 'TIMESTAMP WITH TIME ZONE', allowNull: false, }, teamId: { type: 'UUID', allowNull: true }, }); await queryInterface.createTable('documents', { id: { type: 'UUID', allowNull: false, primaryKey: true, }, urlId: { type: 'CHARACTER VARYING', allowNull: false, unique: true, }, private: { type: 'BOOLEAN', allowNull: false, defaultValue: true, }, title: { type: 'CHARACTER VARYING', allowNull: false, }, text: { type: 'TEXT', allowNull: true, }, html: { type: 'TEXT', allowNull: true, }, preview: { type: 'TEXT', allowNull: true, }, createdAt: { type: 'TIMESTAMP WITH TIME ZONE', allowNull: false, }, updatedAt: { type: 'TIMESTAMP WITH TIME ZONE', allowNull: false, }, userId: { type: 'UUID', allowNull: true }, atlasId: { type: 'UUID', allowNull: true }, teamId: { type: 'UUID', allowNull: true }, }); }, down: async (queryInterface, Sequelize) => { await queryInterface.dropAllTables(); }, };