from dotenv import load_dotenv
from datetime import datetime
from dateutil.relativedelta import relativedelta
import os
import jwt


load_dotenv()

class MyApp:
    def __init__(self):
        self.config = {}

# Criar uma instância de MyApp
app = MyApp()

app.secret_key = os.getenv("APP_SECRET")

def gerar_token(user):
    id = user['id']
    nome = user['nome']
    username = user['username']

    expire = datetime.utcnow() + relativedelta(years=3)

    payload = {
        'user': {'id':id, 'nome': nome, 'username': username},
        'exp': expire
    }

    token = jwt.encode(payload, os.getenv("APP_SECRET"), algorithm="HS256")
    return token
    
if __name__ == "__main__":
    user = {"id":1, "nome":"Linkcerto", "username":"Linkcerto"}
    print(gerar_token(user))