sequelize.define("ModelName", { fields }, { options });

Example:

const User = sequelize.define("User", {
  name: DataTypes.STRING,
}, {
  tableName: "users",
  timestamps: true,
});

✅ 2.2 Field (Column) Definitions Syntax

Every column follows:

fieldName: {
  type: DataTypes.<TYPE>,
  allowNull: true/false,
  unique: true/false,
  defaultValue: <VALUE>,
  validate: { ...validators }
}

Example with multiple constraints:

email: {
  type: DataTypes.STRING(100),
  allowNull: false,
  unique: true,
  validate: {
    isEmail: true,   // built-in validator
  }
}

✅ 2.3 Common Data Types (Must Know)

Sequelize SQL Equivalent Use Case
STRING(255) VARCHAR(255) Names, Text
TEXT TEXT Long text (posts, descriptions)
INTEGER INT Count values
BOOLEAN BOOLEAN true/false
UUID UUID Primary keys
DATE TIMESTAMP createdAt, updatedAt
JSON JSON Nested metadata
ENUM("A","B") ENUM Controlled value sets

Example ENUM:

role: {
  type: DataTypes.ENUM("user", "admin", "moderator"),
  defaultValue: "user",
}