Este modelo representa la entidad User en la base de datos y define sus atributos junto con sus restricciones. A continuación se describe el código y las propiedades de cada campo:
import { DataTypes } from 'sequelize';
import sequelize from '../config/database.js';
const User = sequelize.define('User', {
username: {
type: DataTypes.STRING,
allowNull: false,
unique: true,
},
email: {
type: DataTypes.STRING,
allowNull: false,
unique: true,
validate: {
isEmail: true,
},
},
password: {
type: DataTypes.STRING,
allowNull: false,
},
telefono: {
type: DataTypes.STRING,
allowNull: true,
},
}, {
timestamps: true,
tableName: 'users',
});
export default User;
username:
type: DataTypes.STRING: Define username como una cadena de texto.allowNull: false: Este campo es obligatorio.unique: true: El valor debe ser único en la base de datos para evitar duplicados.email:
type: DataTypes.STRING: Define email como una cadena de texto.allowNull: false: Este campo es obligatorio.unique: true: El valor debe ser único para cada usuario.validate: { isEmail: true }: Aplica una validación para asegurar que el valor sea un formato de correo electrónico válido.password:
type: DataTypes.STRING: Define password como una cadena de texto.allowNull: false: Este campo es obligatorio y debe almacenarse de forma segura.telefono:
type: DataTypes.STRING: Define telefono como una cadena de texto.allowNull: true: Este campo es opcional, permitiendo nulos.timestamps: true: Agrega automáticamente los campos createdAt y updatedAt para gestionar los tiempos de creación y actualización.tableName: 'users': Define el nombre de la tabla como users, asegurando que Sequelize utilice este nombre en la base de datos.