Module 13: Enums and Annotations
Mini-Project: Enum-Powered State Machine
Model ticket lifecycle states with enums, transitions, and annotations for validation.
Define an enum TicketState with allowed transitions stored as EnumSet per constant.
Annotate service methods with custom @RequiresState to enforce preconditions via reflection or AOP.
Implement command objects that move tickets through states, logging transitions and preventing invalid moves.