import jwt from 'jsonwebtoken';
 
const env: string = process.env.NODE_ENV || 'development';
 
interface User {
    [key: string]: any;
}
 
export const generateToken = async (user: User): Promise<string> => {
    try {
        const {
            id,
            first_name,
            last_name,
            mobile,
            role_id,
            email,
            isActive,
        } = user;
        const accessToken = jwt.sign(
            {
                user_data: {
                    id,
                    first_name,
                    last_name,
                    mobile,
                    role_id,
                    email,
                    isActive,
                },
            },
            process.env.JWT_SECRET as string,
            {
                expiresIn: '365d',
            }
        );
 
        return accessToken;
    } catch (err) {
        throw err;
    }
};
 
export const generateCompleteToken = async (user: User): Promise<string> => {
    try {
        const accessToken = jwt.sign(user, process.env.JWT_SECRET as string, {
            expiresIn: '365d',
        });
 
        return accessToken;
    } catch (err) {
        throw err;
    }
};
 
 