package models import ( "time" "github.com/google/uuid" ) type Usuario struct { ID uuid.UUID `json:"id"` Email string `json:"email"` Username string `json:"username"` PasswordHash string `json:"-"` Nombre string `json:"nombre"` Rol string `json:"rol"` // admin, estudiante CreadoEn time.Time `json:"creado_en"` UltimoLogin *time.Time `json:"ultimo_login"` Activo bool `json:"activo"` } type UsuarioCreate struct { Username string `json:"username" binding:"required"` Email string `json:"email"` Password string `json:"password"` Nombre string `json:"nombre" binding:"required"` Rol string `json:"rol"` } type UsuarioUpdate struct { Email string `json:"email"` Nombre string `json:"nombre"` Activo *bool `json:"activo"` } type LoginRequest struct { Email string `json:"email"` Username string `json:"username"` Password string `json:"password" binding:"required"` } type LoginResponse struct { AccessToken string `json:"access_token"` RefreshToken string `json:"refresh_token"` ExpiresIn int `json:"expires_in"` // seconds User *Usuario `json:"user"` } type RefreshRequest struct { RefreshToken string `json:"refresh_token" binding:"required"` }