Commit Graph

53 Commits

Author SHA1 Message Date
Andrés Eduardo García Márquez 68e420fdf2 feat(application): add CQRS application layer
Commands:
- CreateStudent, UpdateStudent, DeleteStudent
- EnrollStudent, UnenrollStudent

Queries:
- GetStudents, GetStudentById, GetStudentsPaged
- GetSubjects, GetAvailableSubjects
- GetProfessors
- GetClassmates

DTOs:
- StudentDto, SubjectDto, ProfessorDto, EnrollmentDtos

Validation:
- FluentValidation with ValidationBehavior pipeline
- EnrollStudentValidator for input validation

Uses MediatR for command/query dispatching
2026-01-07 22:59:23 -05:00
Andrés Eduardo García Márquez 2d6c08e14a feat(domain): add core domain layer
Entities:
- Student: core entity with email validation
- Subject: course with credits (3 each)
- Professor: instructor managing 2 subjects
- Enrollment: student-subject relationship

Value Objects:
- Email: validated email with domain rules

Domain Services:
- EnrollmentDomainService: validates business rules
  - Max 3 subjects per student (9 credits)
  - No duplicate professor constraint

Ports:
- Repository interfaces for dependency inversion
2026-01-07 22:59:10 -05:00
Andrés Eduardo García Márquez dfcfca0b4e chore: add initial project configuration
- Add .gitignore for .NET, Node.js, and IDE files
- Add README.md with project overview
2026-01-07 22:58:56 -05:00