Feature #382
openBilling: land internal attendant-charge endpoints for Canteen
0%
Description
Cantens DietChargeAccrualService/AttendantChargeService already call the real IAttendantChargeBillingContract HTTP client (merged in nuvita-shared-kernel dev), but the Billing-side InternalAttendantBillingController it needs only existed on an unmerged, unreviewed proposal branch (feat/canteen-attendant-billing-internal, 2026-09-29) -- so diet/attendant charges had no endpoint to post to. Brought that branch current with Billings dev (134 commits, clean merge, no conflicts). Controller required zero code changes -- it delegates through Billings own in-process IBillingServiceContract, which had not drifted. Also fixed one unrelated pre-existing bug the merge surfaced: the integration test double FakeAdminServiceContract was missing the GetDietTypesAsync stub a kernel contract update now requires (same bug shape as the one already fixed in nuvita-admin this session). Unit suite 2057/2057, integration suite 355/355, both green.