Repository navigation
Tags
Tags
feat: Event and Participant typed apis with status classification Adds ClockInterface + SystemClock for injectable time, ParticipantStatus backed string enum with isPositive/isPending/isNegative classification, Event and Participant entity DTOs, EventApi (upcoming/between/isFull/ participantCount with injected clock), and ParticipantApi (register/ markAttended/cancel/checkIn/forEvent/forContact/countByStatus). cancel() and checkIn() mirror the refund() pattern and create an Activity when a reason / timestamp is provided. countByStatus() issues one grouped transport call. isFull() compares positive-class participant count against max_participants using a single row_count Participant.get request. 576 tests, 99.4% line coverage, PHPStan level max clean, Rector clean.
test: improve mutation score from 80% to 95% Kill surviving mutations across entity DTOs, API methods and Result: - Entity: assert isBilling/locationType defaults, toBool with int/string/'1', toInt fallback 0, wrong-type fields returning null (Tag, Group, Activity), toArray() omits optional keys when null/empty - API: verify select/limit/where params in Tag.get, Group.get, CustomField.get and Contact.get; primary() non-primary-first fixtures; isPrimary default false; updateById/add empty-response ValidationException; fallback id=0 from create; resolveStateProvinceId query params - Result: non-list API response re-indexing, non-array row skipped, negative count clamped to zero
PreviousNext