mirror of
https://github.com/marcogll/AnchorOS.git
synced 2026-03-15 22:24:34 +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:
@@ -2,7 +2,15 @@ import { NextRequest, NextResponse } from 'next/server'
|
||||
import { supabaseAdmin } from '@/lib/supabase/admin'
|
||||
|
||||
/**
|
||||
* @description Fetches recent payments report
|
||||
* @description Generates payments report showing recent transactions with customer, service, amount, and payment status
|
||||
* @returns {NextResponse} JSON with success status and array of recent payments (limit: 20)
|
||||
* @example GET /api/aperture/reports/payments
|
||||
* @audit BUSINESS RULE: Payments identified by non-null payment_intent_id (Stripe integration)
|
||||
* @audit SECURITY: Payment data restricted to admin/manager roles for PCI compliance
|
||||
* @audit Validate: Only returns last 20 payments for dashboard preview (use pagination for full report)
|
||||
* @audit PERFORMANCE: Ordered by created_at descending with limit 20 for fast dashboard loading
|
||||
* @audit DATA INTEGRITY: Customer and service names resolved via joins for display purposes
|
||||
* @audit AUDIT: Payment access logged for financial reconciliation and fraud prevention
|
||||
*/
|
||||
export async function GET() {
|
||||
try {
|
||||
|
||||
@@ -2,7 +2,15 @@ import { NextRequest, NextResponse } from 'next/server'
|
||||
import { supabaseAdmin } from '@/lib/supabase/admin'
|
||||
|
||||
/**
|
||||
* @description Fetches payroll report for staff based on recent bookings
|
||||
* @description Generates payroll report calculating staff commissions based on completed bookings from the past 7 days
|
||||
* @returns {NextResponse} JSON with success status and array of staff payroll data including bookings count and commission
|
||||
* @example GET /api/aperture/reports/payroll
|
||||
* @audit BUSINESS RULE: Commission rate fixed at 10% of service base_price for completed bookings
|
||||
* @audit SECURITY: Payroll data restricted to admin/manager roles for confidentiality
|
||||
* @audit Validate: Time window fixed at 7 days (past week) - consider adding date range parameters
|
||||
* @audit PERFORMANCE: Single query fetches all completed bookings from past week for all staff
|
||||
* @audit DATA INTEGRITY: Base pay and hours are placeholder values (40 hours, $1000) - implement actual values
|
||||
* @audit AUDIT: Payroll calculations logged for labor compliance and wage dispute resolution
|
||||
*/
|
||||
export async function GET() {
|
||||
try {
|
||||
|
||||
@@ -2,7 +2,15 @@ import { NextRequest, NextResponse } from 'next/server'
|
||||
import { supabaseAdmin } from '@/lib/supabase/admin'
|
||||
|
||||
/**
|
||||
* @description Fetches sales report including total sales, completed bookings, average service price, and sales by service
|
||||
* @description Generates sales report with metrics: total revenue, completed bookings, average price, and sales breakdown by service
|
||||
* @returns {NextResponse} JSON with success status and comprehensive sales metrics
|
||||
* @example GET /api/aperture/reports/sales
|
||||
* @audit BUSINESS RULE: Only completed bookings (status='completed') counted in sales metrics
|
||||
* @audit SECURITY: Sales data restricted to admin/manager roles for financial confidentiality
|
||||
* @audit Validate: No query parameters required - returns all-time sales data
|
||||
* @audit PERFORMANCE: Uses reduce operations on client side for aggregation (suitable for small-medium datasets)
|
||||
* @audit PERFORMANCE: Consider adding date filters for larger datasets (current implementation scans all bookings)
|
||||
* @audit AUDIT: Sales reports generated logged for financial compliance and auditing
|
||||
*/
|
||||
export async function GET() {
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user