- Add transactional product registration and modification with COA assignment
- Store invoice-item unit prices and require a chart-of-accounts relation
- Remove defaults from client credentials and chart-of-account status
- Remove legacy invoicing actions and DTOs
- Introduced Billing-specific models (Invoice, Product, Discount) and DTOs for catalog, discount, and invoicing functionalities.
- Implemented runtime relationships using RelationshipServiceProvider.
- Refactored `DataPayloadMapper` to `DataPayloadMapper` under `Contract` for improved consistency.
- Added `AcademicProductGenerator` for dynamic product identifiers.
- Streamlined API registry and mapper dependencies across domains.
- Enhanced `AdmissionFeeRateWasSetUp` event to dispatch enriched product data.
- Migrate localization keys and files to improved hierarchical paths.
- Refactor relationship naming (e.g., `admission_schedules` to `admissionSchedules`) for consistency.
- Enhance FeeType to support `code` attribute and update related actions, DTOs, and mappers.
- Introduce `AdmissionFeeRateWasSetUp` event for better event-driven architecture.
- Standardize migration scripts and nullable constraints for clarity and accuracy.
- Update DataTables queries to use term filters with fallback to current term settings.
- Implement mappers for Academic (Faculty, StudyProgram, Term) and Admission (AcademicProgram, AdmissionTrack, AdmissionSchedule, FeeType) domains.
- Add registry bindings in service providers for API synchronization.
- Enhance models to use HasPublicUlid and clean up ULID-related traits.
- Update DTOs and actions to accommodate integration features and improve mapping flexibility.
- Standardize billing cycle parsing with PMB label support.