LMS/E-Learning-Backend-main/app/models/users.model.js
2025-09-01 19:37:35 +05:30

138 lines
3.2 KiB
JavaScript

module.exports = (sequelize, Sequelize) => {
const User = sequelize.define("users", {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
},
name: {
type: Sequelize.STRING
},
email: {
type: Sequelize.STRING,
allowNull: false,
validate: {
isEmail: true
},
unique: {
args: true,
msg: 'Oops. Looks like email already exist.'
}
},
roll_id: Sequelize.INTEGER,
email_verified_at: {
type: Sequelize.STRING,
defaultValue: null,
allowNull: true
},
email_verified: {
type: Sequelize.STRING,
defaultValue: "false"
},
email_otp: {
type: Sequelize.STRING,
defaultValue: null
},
calling_code: Sequelize.STRING,
mobile: Sequelize.STRING,
profile_img: Sequelize.TEXT,
permissions: { type: Sequelize.STRING, defaultValue: 0 }, //permission 0=free,1=Inapp,2=purchesed
password: Sequelize.STRING,
remember_token: Sequelize.STRING,
free_flashcard: Sequelize.STRING,
free_practque: Sequelize.STRING,
free_flashccsp: Sequelize.STRING,
pass_rest_code: Sequelize.STRING,
avatar_url: Sequelize.TEXT,
is_first: Sequelize.INTEGER,
opt_in: Sequelize.INTEGER, //opt_in=1 then opt_in, opt_in=0 then opt_out
aliasname: {
type: Sequelize.STRING,
unique: {
args: true,
msg: 'Someone already has that username. Try another?'
}
},
is_temp: Sequelize.INTEGER,
status: {
type: Sequelize.INTEGER,
defaultValue: 0
},
address: {
type: Sequelize.STRING,
defaultValue: null,
allowNull: true
},
notes: {
type: Sequelize.STRING,
defaultValue: null,
allowNull: true
},
company_id: {
type: Sequelize.INTEGER,
defaultValue: null,
allowNull: true
},
course_id: {
type: Sequelize.STRING,
defaultValue: null,
allowNull: true
},
onboard_cohort: Sequelize.INTEGER,
schedule_date: Sequelize.STRING,
welcome_flow: {
type: Sequelize.INTEGER,
defaultValue: 0
},
allow_access: {
type: Sequelize.INTEGER,
defaultValue: 1
},
authy_id: {
type: Sequelize.STRING,
defaultValue: null,
allowNull: true
},
show_resources: {
type: Sequelize.INTEGER,
defaultValue: 1
},
two_fact_tab: {
type: Sequelize.INTEGER,
defaultValue: 0
},
is_live: {
type: Sequelize.INTEGER,
defaultValue: 0
},
is_selfpaced: {
type: Sequelize.INTEGER,
defaultValue: 0
},
stripe_customer_id: Sequelize.STRING,
user_time_zone: Sequelize.STRING,
is_flashcard_user: {
type: Sequelize.INTEGER,
defaultValue: 0
},
expire_password: {
type: Sequelize.INTEGER,
defaultValue: 0
},
onbording_date: Sequelize.TEXT, //onbording completion date
signup_platform: Sequelize.TEXT,
overdue_notification: {
type: Sequelize.INTEGER,
defaultValue: 1
},
mentor_id: Sequelize.INTEGER,
mentor_notes: Sequelize.TEXT,
is_mini_masterclass_email_sent: {
type: Sequelize.INTEGER,
defaultValue: 1
}
});
return User;
};