Problem
Per-session resource consumption (printing credits, internet data, locker usage) has no tracking mechanism. Resource abuse goes undetected.
Proposed Solution
Create backend/cntr/resource-usage.service.ts exporting: ResourceType union ('PRINT' | 'INTERNET' | 'LOCKER'), ResourceUsageLog interface ({ sessionId, memberId, resourceType: ResourceType, quantity: number, unit: string, recordedAt: string }), and createUsageLog(sessionId: string, memberId: string, resourceType: ResourceType, quantity: number, unit: string): ResourceUsageLog. Throws RangeError if quantity <= 0. All implementation must live inside backend/cntr/.
Acceptance Criteria
Problem
Per-session resource consumption (printing credits, internet data, locker usage) has no tracking mechanism. Resource abuse goes undetected.
Proposed Solution
Create
backend/cntr/resource-usage.service.tsexporting:ResourceTypeunion ('PRINT' | 'INTERNET' | 'LOCKER'),ResourceUsageLoginterface ({ sessionId, memberId, resourceType: ResourceType, quantity: number, unit: string, recordedAt: string }), andcreateUsageLog(sessionId: string, memberId: string, resourceType: ResourceType, quantity: number, unit: string): ResourceUsageLog. ThrowsRangeErrorifquantity <= 0. All implementation must live insidebackend/cntr/.Acceptance Criteria
backend/cntr/resource-usage.service.tsrecordedAtisnew Date().toISOString()RangeErrorforquantity <= 0ResourceTypeunion andResourceUsageLoginterfacebackend/cntr/resource-usage.service.spec.ts