"use strict"; module.exports = { up: async (queryInterface, Sequelize) => { await queryInterface.createTable("UserAddresses", { id: { type: Sequelize.UUID, defaultValue: Sequelize.UUIDV4, primaryKey: true, }, userId: { type: Sequelize.UUID, allowNull: false, references: { model: "Users", key: "id", }, onUpdate: "CASCADE", onDelete: "CASCADE", }, address1: { type: Sequelize.STRING, allowNull: false, }, address2: { type: Sequelize.STRING, }, city: { type: Sequelize.STRING, allowNull: false, }, state: { type: Sequelize.STRING, allowNull: false, }, zipCode: { type: Sequelize.STRING, allowNull: false, }, country: { type: Sequelize.STRING, allowNull: false, defaultValue: "US", }, latitude: { type: Sequelize.DECIMAL(10, 8), }, longitude: { type: Sequelize.DECIMAL(11, 8), }, isPrimary: { type: Sequelize.BOOLEAN, defaultValue: false, }, createdAt: { type: Sequelize.DATE, allowNull: false, }, updatedAt: { type: Sequelize.DATE, allowNull: false, }, }); // Add indexes await queryInterface.addIndex("UserAddresses", ["userId"]); }, down: async (queryInterface, Sequelize) => { await queryInterface.dropTable("UserAddresses"); }, };