KamoCRM

Lift the free/busy engine out of the webinar feature

Refactorkamo-shared-library
Ya
26 Agosti 2026, 06:46 UTC
Mwandishi
Kamo
Ahadi ya
97ae24c

The interval arithmetic — expand, restrictionMask, candidateStarts, and the whole of AvailabilityInterval — was never webinar-specific. All the coupling sat in one method, blockersFor, which is now the BusySource interface. Moved verbatim: the +/-1 day expansion pad, the midnight-crossing rule, the clip-don't-drop trimming and the empty-mask-means-no-mask rule each encode a bug someone already found. The 30 tests moved with them, unchanged. MemberAvailabilityWindow implements AvailabilityWindowSpec without a body change; the entity stays in its package, since moving a mapped class buys boot risk and nothing else.

Mabadiliko yote

Je, unaona nini kuhusu usafiri?

Kila kitu kinaingia kwenye tovuti yako mwenyewe. Anza kwenye mpango wa bure na usome ukurasa huu tena katika mwezi mmoja.

Kuwa Huru MileleMtazamo wa bei