academia/docs/architecture/diagrams/06-state-enrollment.puml

75 lines
1.8 KiB
Plaintext
Raw Permalink Normal View History

@startuml state-enrollment
!theme plain
skinparam stateBackgroundColor #F8F9FA
skinparam stateBorderColor #495057
title Estados del Estudiante y sus Inscripciones
[*] --> Registrado : Registro inicial
state "Cuenta" as cuenta {
state "Registrado\n(Pendiente Activación)" as Registrado
state "Activo" as Activo
Registrado --> Activo : activar(código)
Registrado --> Registrado : código expirado\n[regenerar código]
}
state "Inscripciones" as inscripciones {
state "Sin Materias" as SinMaterias {
state "0 créditos" as cred0
}
state "Inscripción Parcial" as Parcial {
state "3 créditos\n(1 materia)" as cred3
state "6 créditos\n(2 materias)" as cred6
}
state "Inscripción Completa" as Completa {
state "9 créditos\n(3 materias)" as cred9
}
SinMaterias --> Parcial : inscribir(materia)
Parcial --> Parcial : inscribir(materia)\n[créditos < 9]
Parcial --> Completa : inscribir(materia)\n[créditos = 6]
Completa --> Parcial : cancelar(inscripción)
Parcial --> SinMaterias : cancelar(inscripción)\n[única materia]
}
Activo --> SinMaterias : cuenta activa
state validacion <<choice>>
SinMaterias --> validacion : intenta inscribir
Parcial --> validacion : intenta inscribir
validacion --> Parcial : [válido y cuenta activa]
validacion --> [*] : [inválido]\nmuestra error
note right of Registrado
El estudiante recibe
código de activación
por email (24h validez)
end note
note right of Completa
No puede inscribir
más materias
end note
note left of Parcial
<b>Validaciones en cada inscripción:</b>
- Cuenta activa
- Límite de créditos
- No repetir profesor
- Materia no duplicada
end note
note bottom of validacion
Si la cuenta no está
activa, redirige a
página de activación
end note
@enduml