customer-dashboard-api/src/models/session.ts

67 lines
1.3 KiB
TypeScript

import { DataTypes, Model } from "sequelize";
import sequelize from "../database/database";
interface SessionAttributes {
session_id: string;
user_id: string;
// needed in the ui to delete the session
id: string;
browser: string;
os: string;
last_used: Date;
expires: Date;
}
class Session extends Model<SessionAttributes> implements SessionAttributes {
declare session_id: string;
declare user_id: string;
declare id: string;
declare browser: string;
declare os: string;
declare last_used: Date;
declare expires: Date;
}
Session.init(
{
// Model attributes are defined here
session_id: {
primaryKey: true,
type: DataTypes.STRING,
allowNull: false,
},
user_id: {
type: DataTypes.STRING,
allowNull: false,
},
id: {
type: DataTypes.STRING,
allowNull: false,
},
browser: {
type: DataTypes.STRING,
allowNull: false,
},
os: {
type: DataTypes.STRING,
allowNull: false,
},
last_used: {
type: DataTypes.DATE,
allowNull: false,
},
expires: {
type: DataTypes.DATE,
allowNull: false,
},
},
{
tableName: "sessions",
sequelize, // passing the `sequelize` instance is required
createdAt: "created_at",
updatedAt: "updated_at",
}
);
export default Session;