CREATE TABLE users (
    id CHAR(36) NOT NULL PRIMARY KEY,

    firstName VARCHAR(100) NOT NULL,
    lastName VARCHAR(100),

    email VARCHAR(150) NOT NULL UNIQUE,
    phone VARCHAR(20),

    passwordHash VARCHAR(255) NOT NULL,

    profileImageUrl VARCHAR(500),

    roleId CHAR(36),

    bloodGroupId CHAR(36),
    batchId CHAR(36),
    passingYearId CHAR(36),
    departmentId CHAR(36),
    memberTypeId CHAR(36),

    status INT DEFAULT 1,
    isActive TINYINT(1) DEFAULT 1,
    isVerified TINYINT(1) DEFAULT 0,
    isDeleted TINYINT(1) DEFAULT 0,

    resetPasswordToken VARCHAR(255),
    resetPasswordExpires DATETIME,

    lastLoginDate DATETIME,

    createdAt DATETIME DEFAULT CURRENT_TIMESTAMP,
    updatedAt DATETIME DEFAULT CURRENT_TIMESTAMP
        ON UPDATE CURRENT_TIMESTAMP
);