import json
import time
from prometheus_client import Gauge, Info
from global_conf import METRICS_INITIALIZED

class user_info_struct: 
            user_id: str       
            user_fullname: str
            dick_size: int
            datetimes: str
            attemptsCount: int
            chat_id: int 
        


def metric_wrap(chatID:int, userName: str, length: int, attemptsCount: int):
    """Pass here chat ID, username, pipisa length and attempts count to wrap them into metric."""

    if not METRICS_INITIALIZED:
        pipisa_length_metric = Gauge('user_length_total', 'Pipisa length', labelnames=['ChatID', 'Username'])
        user_attempt_metric = Gauge('user_attempts_total', 'Attempts count', labelnames=['ChatID', 'Username'])
        user_last_attempt_metric = Gauge('user_last_attempt_time', 'Last attempt time', labelnames=['ChatID', 'Username'])
        METRICS_INITIALIZED = True

    pipisa_length_metric.labels(chatID, userName).set(length) 
    user_attempt_metric.labels(chatID, userName).set(attemptsCount)
    user_last_attempt_metric.labels(chatID, userName).set(time.time_ns())