package models

import (
	"time"

	"github.com/google/uuid"
)

type Progreso struct {
	ID           uuid.UUID `json:"id"`
	UsuarioID    uuid.UUID `json:"usuario_id"`
	ModuloNumero int       `json:"modulo_numero"`
	EjercicioID  string    `json:"ejercicio_id"`
	Completado   bool      `json:"completado"`
	Puntuacion   int       `json:"puntuacion"`
	Intentos     int       `json:"intentos"`
	UltimaVez    time.Time `json:"ultima_vez"`
}

type Badge struct {
	ID           string `json:"id"`
	Nombre       string `json:"nombre"`
	Descripcion  string `json:"descripcion"`
	Icono        string `json:"icono"`
	Desbloqueado bool   `json:"desbloqueado"`
}

type ResumenProgreso struct {
	PuntosTotales         int     `json:"puntos_totales"`
	EjerciciosCompletados int     `json:"ejercicios_completados"`
	TotalEjercicios       int     `json:"total_ejercicios"`
	TotalPuntuacion       int     `json:"totalPuntuacion"`
	Badges                []Badge `json:"badges"`
	Nivel                 string  `json:"nivel"`
}

type ProgresoUpdate struct {
	Completado    bool   `json:"completado"`
	Puntuacion    int    `json:"puntuacion"`
	RespuestaJSON string `json:"respuesta_json,omitempty"`
}

type ProgresoResumen struct {
	TotalEjercicios       int `json:"total_ejercicios"`
	EjerciciosCompletados int `json:"ejercicios_completados"`
	PromedioPuntuacion    int `json:"promedio_puntuacion"`
	ModulosCompletados    int `json:"modulos_completados"`
}
