mirror of
https://github.com/marcogll/AnchorOS.git
synced 2026-03-15 16:24:30 +00:00
feat: implement customer registration flow and business hours system
Major changes: - Add customer registration with email/phone lookup (app/booking/registro) - Add customers API endpoint (app/api/customers/route) - Implement business hours for locations (mon-fri 10-7, sat 10-6, sun closed) - Fix availability function type casting issues - Add business hours utilities (lib/utils/business-hours.ts) - Update Location type to include business_hours JSONB - Add mock payment component for testing - Remove Supabase auth from booking flow - Fix /cita redirect path in booking flow Database migrations: - Add category column to services table - Add business_hours JSONB column to locations table - Fix availability functions with proper type casting - Update get_detailed_availability to use business_hours Features: - Customer lookup by email or phone - Auto-redirect to registration if customer not found - Pre-fill customer data if exists - Business hours per day of week - Location-specific opening/closing times
This commit is contained in:
@@ -43,7 +43,7 @@ CREATE TABLE IF NOT EXISTS booking_blocks (
|
||||
end_time_utc TIMESTAMPTZ NOT NULL,
|
||||
reason TEXT,
|
||||
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||||
created_by UUID REFERENCES users(id) ON DELETE SET NULL,
|
||||
created_by UUID REFERENCES staff(id) ON DELETE SET NULL,
|
||||
CONSTRAINT booking_blocks_time_check CHECK (end_time_utc > start_time_utc)
|
||||
);
|
||||
|
||||
@@ -193,6 +193,8 @@ $$ LANGUAGE plpgsql SECURITY DEFINER;
|
||||
-- Obtiene staff disponible para un rango de tiempo
|
||||
-- ============================================
|
||||
|
||||
DROP FUNCTION IF EXISTS get_available_staff(p_location_id UUID, p_start_time_utc TIMESTAMPTZ, p_end_time_utc TIMESTAMPTZ) CASCADE;
|
||||
|
||||
CREATE OR REPLACE FUNCTION get_available_staff(
|
||||
p_location_id UUID,
|
||||
p_start_time_utc TIMESTAMPTZ,
|
||||
@@ -237,6 +239,8 @@ $$ LANGUAGE plpgsql SECURITY DEFINER;
|
||||
-- Obtiene slots de tiempo disponibles
|
||||
-- ============================================
|
||||
|
||||
DROP FUNCTION IF EXISTS get_detailed_availability(p_location_id UUID, p_service_id UUID, p_date DATE, p_time_slot_duration_minutes INTEGER) CASCADE;
|
||||
|
||||
CREATE OR REPLACE FUNCTION get_detailed_availability(
|
||||
p_location_id UUID,
|
||||
p_service_id UUID,
|
||||
|
||||
Reference in New Issue
Block a user