mirror of
https://github.com/marcogll/AnchorOS.git
synced 2026-03-15 18:24:31 +00:00
feat: Add kiosk management, artist selection, and schedule management
- Add KiosksManagement component with full CRUD for kiosks - Add ScheduleManagement for staff schedules with break reminders - Update booking flow to allow artist selection by customers - Add staff_services API for assigning services to artists - Update staff management UI with service assignment dialog - Add auto-break reminder when schedule >= 8 hours - Update availability API to filter artists by service - Add kiosk management to Aperture dashboard - Clean up ralphy artifacts and logs
This commit is contained in:
@@ -1,10 +1,16 @@
|
||||
/**
|
||||
* @description Cash register closure API for daily financial reconciliation
|
||||
* @audit BUSINESS RULE: Daily cash closure ensures financial accountability
|
||||
* @audit SECURITY: Only admin/manager can close cash registers
|
||||
* @audit Validate: All payments for the day must be accounted for
|
||||
* @audit AUDIT: Cash closure logged with detailed reconciliation
|
||||
* @audit COMPLIANCE: Financial records must be immutable after closure
|
||||
* @description Processes end-of-day cash register closure with financial reconciliation
|
||||
* @param {NextRequest} request - HTTP request containing date, location_id, cash_count object, expected_totals, and optional notes
|
||||
* @returns {NextResponse} JSON with success status, reconciliation report including actual totals, discrepancies, and closure record
|
||||
* @example POST /api/aperture/pos/close-day { date: "2026-01-21", location_id: "...", cash_count: { cash_amount: 5000, card_amount: 8000, transfer_amount: 2000 }, notes: "Day closure" }
|
||||
* @audit BUSINESS RULE: Compares physical cash count with system-recorded transactions to identify discrepancies
|
||||
* @audit BUSINESS RULE: Creates immutable daily_closing_report record after successful reconciliation
|
||||
* @audit SECURITY: Requires authenticated manager/admin role
|
||||
* @audit Validate: Ensures date is valid and location exists
|
||||
* @audit Validate: Calculates discrepancies for each payment method
|
||||
* @audit PERFORMANCE: Uses audit_logs for transaction aggregation (single source of truth)
|
||||
* @audit AUDIT: Daily closure creates permanent financial record with all discrepancies documented
|
||||
* @audit COMPLIANCE: Closure records are immutable and used for financial reporting
|
||||
*/
|
||||
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
/**
|
||||
* @description Point of Sale API for processing sales and payments
|
||||
* @audit BUSINESS RULE: POS handles service/product sales with multiple payment methods
|
||||
* @audit SECURITY: Only admin/manager can process sales via this API
|
||||
* @audit Validate: Payment methods must be valid and amounts must match totals
|
||||
* @audit AUDIT: All sales transactions logged in audit_logs table
|
||||
* @audit PERFORMANCE: Transaction processing must be atomic and fast
|
||||
* @description Processes a point-of-sale transaction with items and multiple payment methods
|
||||
* @param {NextRequest} request - HTTP request containing customer_id (optional), items array, payments array, staff_id, location_id, and optional notes
|
||||
* @returns {NextResponse} JSON with success status and transaction details
|
||||
* @example POST /api/aperture/pos { customer_id: "...", items: [{ type: "service", id: "...", quantity: 1, price: 1500, name: "Manicure" }], payments: [{ method: "card", amount: 1500 }], staff_id: "...", location_id: "..." }
|
||||
* @audit BUSINESS RULE: Supports multiple payment methods (cash, card, transfer, giftcard, membership) in single transaction
|
||||
* @audit BUSINESS RULE: Payment amounts must exactly match subtotal (within 0.01 tolerance)
|
||||
* @audit SECURITY: Requires authenticated staff member (cashier) via Supabase Auth
|
||||
* @audit Validate: Ensures items and payments arrays are non-empty
|
||||
* @audit Validate: Validates payment method types and reference numbers
|
||||
* @audit PERFORMANCE: Uses database transaction for atomic sale processing
|
||||
* @audit AUDIT: All sales transactions logged in audit_logs with full transaction details
|
||||
*/
|
||||
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
Reference in New Issue
Block a user