@startuml state-enrollment !theme plain skinparam stateBackgroundColor #F8F9FA skinparam stateBorderColor #495057 title Estado de Inscripción del Estudiante [*] --> SinMaterias : Registro inicial 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] note right of Completa No puede inscribir más materias end note note left of Parcial Validaciones en cada inscripción: - Límite de créditos - No repetir profesor - Materia no duplicada end note state validacion <> SinMaterias --> validacion : intenta inscribir Parcial --> validacion : intenta inscribir validacion --> Parcial : [válido] validacion --> [*] : [inválido]\nmuestra error @enduml