Commit Graph

2 Commits

Author SHA1 Message Date
Marco Gallegos
51dc8f607e docs: Add granular permissions system to Aperture specs
TASK 4.2: Document granular permissions system - COMPLETED
- Add Section 7: Granular Permissions System to APERTURE_SPECS.md
- Defines flexible permission system allowing granular permission assignment to ANY user
- Only users with admin role can assign permissions
- Permissions are independent of user roles (not inherited)

Key Features:
- User-based permissions (not role-based)
- Admin-only permission assignment
- Audit logging of permission changes
- Reusable UI components for permission checking

Permissions Categories Documented:
1. Dashboard & Stats (8 permissions)
2. Calendar & Bookings (6 permissions)
3. Staff Management (10 permissions)
4. Client Management (11 permissions)
5. POS & Sales (8 permissions)
6. Finance (6 permissions)
7. Marketing (9 permissions)
8. Configuration (4 permissions)

Database Schema Added:
- user_permissions table
- Supports user_id, permission_key, granted, granted_by, granted_at
- Unique constraint on (user_id, permission_key)
- Check constraint to verify user exists in auth.users

API Endpoints:
- GET /api/aperture/permissions/check - Check single permission
- GET /api/aperture/permissions/user - Get user permissions
- POST /api/aperture/permissions/assign - Assign permissions (admin only)
- GET /api/aperture/permissions/list - Get all available permissions

Helper Functions Documented:
- hasPermission(user_id, permission_key) - Check single permission
- hasPermissions(user_id, permission_keys) - Check multiple permissions
- isAdmin(user_id) - Check if user is admin role

UI Components Documented:
- PermissionChecker - Single permission check with fallback
- MultiPermissionChecker - Multiple permissions check (all/any mode)
- Usage examples for Staff, POS, Dashboard pages

Security Considerations:
- Row Level Security (RLS) for all sensitive tables
- Only admin can assign permissions
- All financial actions must be audited
- Validation before allowing actions

Files Modified:
- docs/APERTURE_SPECS.md

Next: Task 4 - Update APERTURE_SQUARE_UI.md with Radix UI
2026-01-17 10:58:02 -06:00
Marco Gallegos
197f07df7f docs: Create Aperture technical specifications document
TASK 4.1: Create technical specifications document - COMPLETED
- Create docs/APERTURE_SPECS.md with complete technical specifications:
  - Response to Question 9: Hours worked (automatic from bookings)
  - Complete POS structure with multiple cashiers
  - Granular permissions system documentation
- Includes:
  - Hours worked calculation logic (automatic vs manual)
  - POS architecture (6 payment methods, receipt options)
  - Multiple cashiers system with individual tracking
  - Financial management (expenses, profit margin)
  - Database schemas for POS, cashiers, expenses
  - API endpoints for POS operations

Specifications Documented:
- Hours worked: Automatic from bookings (scheduled vs actual duration)
- Time adjustments: Manual updates allowed by staff
- Payroll: Base salary + service commissions + product commissions + tips
- POS payment methods: Cash, Transfer, Membership, Card, Giftcard, PIA
- Receipts: Email or client dashboard only (no physical printing)
- Cashiers: Individual tracking with movement logs for error resolution
- Dynamic pricing: Configurable by service, both channels (booking + POS)
- Giftcards: Purchaseable, redeemable, balance tracking
- PIA (Paid in Advance): Apply previously paid deposits
- Recurring expenses: Daily, weekly, monthly, yearly frequencies

Database Schemas:
- staff_time_tracking (NEW) - Track scheduled vs actual duration
- pos_sales (NEW) - All POS transactions
- giftcards (NEW) - Giftcard management
- daily_cash_close (NEW) - Individual cashier closing
- expenses (NEW) - Financial expense tracking

API Endpoints:
- POST /api/aperture/pos/sales
- GET /api/aperture/pos/daily-summary
- POST /api/aperture/pos/open-cash-register
- POST /api/aperture/pos/close-cash-register
- GET /api/aperture/pos/active-cash-registers
- POST /api/aperture/finance/expenses
- GET /api/aperture/finance/report

Impact:
- Complete technical foundation for POS implementation
- Clear data model for hours worked calculation
- Granular permissions architecture defined
- Multiple cashiers system fully specified

Files Created:
- docs/APERTURE_SPECS.md

Next: Task 2 - Document POS structure and multiple cashiers
2026-01-17 10:55:05 -06:00