@startuml use-cases
!theme plain
skinparam actorStyle awesome
skinparam packageStyle rectangle
skinparam usecaseBackgroundColor #F8F9FA
skinparam usecaseBorderColor #495057
skinparam actorBackgroundColor #007AFF

title Sistema de Registro de Estudiantes - Diagrama de Casos de Uso

actor "Estudiante" as student

rectangle "Sistema de Inscripción" {
    usecase "Registrarse en el sistema" as UC1
    usecase "Iniciar sesión" as UC2
    usecase "Ver materias disponibles" as UC3
    usecase "Inscribirse en materia" as UC4
    usecase "Cancelar inscripción" as UC5
    usecase "Ver mis inscripciones" as UC6
    usecase "Ver compañeros de clase" as UC7
    usecase "Actualizar perfil" as UC8

    usecase "Validar límite de créditos\n(máx 9 créditos)" as UC4a
    usecase "Validar restricción de profesor\n(no repetir profesor)" as UC4b
}

student --> UC1
student --> UC2
student --> UC3
student --> UC4
student --> UC5
student --> UC6
student --> UC7
student --> UC8

UC4 ..> UC4a : <<include>>
UC4 ..> UC4b : <<include>>

note right of UC4
  Reglas de negocio:
  - Máximo 3 materias (9 créditos)
  - No puede tener 2 materias
    del mismo profesor
end note

note right of UC7
  Solo muestra nombres
  de compañeros por materia
end note

@enduml
