--
--



ALTER TABLE IF EXISTS ONLY public.webhook_deliveries DROP CONSTRAINT IF EXISTS webhook_deliveries_endpoint_id_foreign;
ALTER TABLE IF EXISTS ONLY public.vehicles DROP CONSTRAINT IF EXISTS vehicles_user_id_foreign;
ALTER TABLE IF EXISTS ONLY public.service_zones DROP CONSTRAINT IF EXISTS service_zones_location_id_foreign;
ALTER TABLE IF EXISTS ONLY public.role_has_permissions DROP CONSTRAINT IF EXISTS role_has_permissions_role_id_foreign;
ALTER TABLE IF EXISTS ONLY public.role_has_permissions DROP CONSTRAINT IF EXISTS role_has_permissions_permission_id_foreign;
ALTER TABLE IF EXISTS ONLY public.package_vehicle_size_prices DROP CONSTRAINT IF EXISTS package_vehicle_size_prices_vehicle_size_category_id_foreign;
ALTER TABLE IF EXISTS ONLY public.package_vehicle_size_prices DROP CONSTRAINT IF EXISTS package_vehicle_size_prices_package_id_foreign;
ALTER TABLE IF EXISTS ONLY public.notification_logs DROP CONSTRAINT IF EXISTS notification_logs_user_id_foreign;
ALTER TABLE IF EXISTS ONLY public.notification_logs DROP CONSTRAINT IF EXISTS notification_logs_booking_id_foreign;
ALTER TABLE IF EXISTS ONLY public.model_has_roles DROP CONSTRAINT IF EXISTS model_has_roles_role_id_foreign;
ALTER TABLE IF EXISTS ONLY public.model_has_permissions DROP CONSTRAINT IF EXISTS model_has_permissions_permission_id_foreign;
ALTER TABLE IF EXISTS ONLY public.location_user DROP CONSTRAINT IF EXISTS location_user_user_id_foreign;
ALTER TABLE IF EXISTS ONLY public.location_user DROP CONSTRAINT IF EXISTS location_user_location_id_foreign;
ALTER TABLE IF EXISTS ONLY public.location_package DROP CONSTRAINT IF EXISTS location_package_package_id_foreign;
ALTER TABLE IF EXISTS ONLY public.location_package DROP CONSTRAINT IF EXISTS location_package_location_id_foreign;
ALTER TABLE IF EXISTS ONLY public.location_closed_dates DROP CONSTRAINT IF EXISTS location_closed_dates_location_id_foreign;
ALTER TABLE IF EXISTS ONLY public.location_availability_slots DROP CONSTRAINT IF EXISTS location_availability_slots_location_id_foreign;
ALTER TABLE IF EXISTS ONLY public.job_status_logs DROP CONSTRAINT IF EXISTS job_status_logs_created_by_foreign;
ALTER TABLE IF EXISTS ONLY public.job_status_logs DROP CONSTRAINT IF EXISTS job_status_logs_booking_id_foreign;
ALTER TABLE IF EXISTS ONLY public.fleet_account_vehicles DROP CONSTRAINT IF EXISTS fleet_account_vehicles_vehicle_id_foreign;
ALTER TABLE IF EXISTS ONLY public.fleet_account_vehicles DROP CONSTRAINT IF EXISTS fleet_account_vehicles_fleet_account_id_foreign;
ALTER TABLE IF EXISTS ONLY public.faq_items DROP CONSTRAINT IF EXISTS faq_items_faq_category_id_foreign;
ALTER TABLE IF EXISTS ONLY public.email_template_recipients DROP CONSTRAINT IF EXISTS email_template_recipients_template_event_id_foreign;
ALTER TABLE IF EXISTS ONLY public.email_template_exceptions DROP CONSTRAINT IF EXISTS email_template_exceptions_template_event_id_foreign;
ALTER TABLE IF EXISTS ONLY public.email_template_events DROP CONSTRAINT IF EXISTS email_template_events_template_id_foreign;
ALTER TABLE IF EXISTS ONLY public.email_template_attachments DROP CONSTRAINT IF EXISTS email_template_attachments_template_id_foreign;
ALTER TABLE IF EXISTS ONLY public.customer_memberships DROP CONSTRAINT IF EXISTS customer_memberships_user_id_foreign;
ALTER TABLE IF EXISTS ONLY public.customer_memberships DROP CONSTRAINT IF EXISTS customer_memberships_plan_id_foreign;
ALTER TABLE IF EXISTS ONLY public.bookings DROP CONSTRAINT IF EXISTS bookings_vehicle_id_foreign;
ALTER TABLE IF EXISTS ONLY public.bookings DROP CONSTRAINT IF EXISTS bookings_technician_id_foreign;
ALTER TABLE IF EXISTS ONLY public.bookings DROP CONSTRAINT IF EXISTS bookings_parent_booking_id_foreign;
ALTER TABLE IF EXISTS ONLY public.bookings DROP CONSTRAINT IF EXISTS bookings_package_id_foreign;
ALTER TABLE IF EXISTS ONLY public.bookings DROP CONSTRAINT IF EXISTS bookings_location_id_foreign;
ALTER TABLE IF EXISTS ONLY public.bookings DROP CONSTRAINT IF EXISTS bookings_customer_id_foreign;
ALTER TABLE IF EXISTS ONLY public.booking_addons DROP CONSTRAINT IF EXISTS booking_addons_booking_id_foreign;
ALTER TABLE IF EXISTS ONLY public.booking_addons DROP CONSTRAINT IF EXISTS booking_addons_addon_id_foreign;
DROP INDEX IF EXISTS public.vehicles_size_index;
DROP INDEX IF EXISTS public.sessions_user_id_index;
DROP INDEX IF EXISTS public.sessions_last_activity_index;
DROP INDEX IF EXISTS public.service_zones_zip_code_index;
DROP INDEX IF EXISTS public.sent_emails_to_email_created_at_index;
DROP INDEX IF EXISTS public.sent_emails_status_index;
DROP INDEX IF EXISTS public.sent_emails_resend_message_id_index;
DROP INDEX IF EXISTS public.sent_emails_event_key_created_at_index;
DROP INDEX IF EXISTS public.personal_access_tokens_tokenable_type_tokenable_id_index;
DROP INDEX IF EXISTS public.passkeys_user_id_index;
DROP INDEX IF EXISTS public.model_has_roles_model_id_model_type_index;
DROP INDEX IF EXISTS public.model_has_permissions_model_id_model_type_index;
DROP INDEX IF EXISTS public.location_closed_dates_location_id_start_date_end_date_index;
DROP INDEX IF EXISTS public.location_availability_slots_location_id_day_of_week_index;
DROP INDEX IF EXISTS public.jobs_queue_index;
DROP INDEX IF EXISTS public.failed_jobs_connection_queue_failed_at_index;
DROP INDEX IF EXISTS public.email_template_events_event_key_is_active_index;
DROP INDEX IF EXISTS public.cache_locks_expiration_index;
DROP INDEX IF EXISTS public.cache_expiration_index;
DROP INDEX IF EXISTS public.bookings_location_schedule_idx;
DROP INDEX IF EXISTS public.admin_notifications_is_read_created_at_index;
DROP INDEX IF EXISTS public.admin_notifications_category_index;
ALTER TABLE IF EXISTS ONLY public.webhook_deliveries DROP CONSTRAINT IF EXISTS webhook_deliveries_pkey;
ALTER TABLE IF EXISTS ONLY public.vehicles DROP CONSTRAINT IF EXISTS vehicles_pkey;
ALTER TABLE IF EXISTS ONLY public.vehicle_size_categories DROP CONSTRAINT IF EXISTS vehicle_size_categories_slug_unique;
ALTER TABLE IF EXISTS ONLY public.vehicle_size_categories DROP CONSTRAINT IF EXISTS vehicle_size_categories_pkey;
ALTER TABLE IF EXISTS ONLY public.sessions DROP CONSTRAINT IF EXISTS sessions_pkey;
ALTER TABLE IF EXISTS ONLY public.service_zones DROP CONSTRAINT IF EXISTS service_zones_pkey;
ALTER TABLE IF EXISTS ONLY public.service_zones DROP CONSTRAINT IF EXISTS service_zones_location_id_zip_code_unique;
ALTER TABLE IF EXISTS ONLY public.roles DROP CONSTRAINT IF EXISTS roles_pkey;
ALTER TABLE IF EXISTS ONLY public.roles DROP CONSTRAINT IF EXISTS roles_name_guard_name_unique;
ALTER TABLE IF EXISTS ONLY public.role_has_permissions DROP CONSTRAINT IF EXISTS role_has_permissions_pkey;
ALTER TABLE IF EXISTS ONLY public.permissions DROP CONSTRAINT IF EXISTS permissions_pkey;
ALTER TABLE IF EXISTS ONLY public.permissions DROP CONSTRAINT IF EXISTS permissions_name_guard_name_unique;
ALTER TABLE IF EXISTS ONLY public.packages DROP CONSTRAINT IF EXISTS packages_pkey;
ALTER TABLE IF EXISTS ONLY public.package_vehicle_size_prices DROP CONSTRAINT IF EXISTS package_vehicle_size_unique;
ALTER TABLE IF EXISTS ONLY public.package_vehicle_size_prices DROP CONSTRAINT IF EXISTS package_vehicle_size_prices_pkey;
ALTER TABLE IF EXISTS ONLY public.notification_logs DROP CONSTRAINT IF EXISTS notification_logs_pkey;
ALTER TABLE IF EXISTS ONLY public.model_has_roles DROP CONSTRAINT IF EXISTS model_has_roles_pkey;
ALTER TABLE IF EXISTS ONLY public.model_has_permissions DROP CONSTRAINT IF EXISTS model_has_permissions_pkey;
ALTER TABLE IF EXISTS ONLY public.migrations DROP CONSTRAINT IF EXISTS migrations_pkey;
ALTER TABLE IF EXISTS ONLY public.membership_plans DROP CONSTRAINT IF EXISTS membership_plans_pkey;
ALTER TABLE IF EXISTS ONLY public.locations DROP CONSTRAINT IF EXISTS locations_pkey;
ALTER TABLE IF EXISTS ONLY public.location_user DROP CONSTRAINT IF EXISTS location_user_pkey;
ALTER TABLE IF EXISTS ONLY public.location_types DROP CONSTRAINT IF EXISTS location_types_slug_unique;
ALTER TABLE IF EXISTS ONLY public.location_types DROP CONSTRAINT IF EXISTS location_types_pkey;
ALTER TABLE IF EXISTS ONLY public.location_package DROP CONSTRAINT IF EXISTS location_package_pkey;
ALTER TABLE IF EXISTS ONLY public.location_closed_dates DROP CONSTRAINT IF EXISTS location_closed_dates_pkey;
ALTER TABLE IF EXISTS ONLY public.location_availability_slots DROP CONSTRAINT IF EXISTS location_availability_slots_pkey;
ALTER TABLE IF EXISTS ONLY public.jobs DROP CONSTRAINT IF EXISTS jobs_pkey;
ALTER TABLE IF EXISTS ONLY public.job_status_logs DROP CONSTRAINT IF EXISTS job_status_logs_pkey;
ALTER TABLE IF EXISTS ONLY public.job_batches DROP CONSTRAINT IF EXISTS job_batches_pkey;
ALTER TABLE IF EXISTS ONLY public.fleet_accounts DROP CONSTRAINT IF EXISTS fleet_accounts_pkey;
ALTER TABLE IF EXISTS ONLY public.fleet_account_vehicles DROP CONSTRAINT IF EXISTS fleet_account_vehicles_pkey;
ALTER TABLE IF EXISTS ONLY public.fleet_account_vehicles DROP CONSTRAINT IF EXISTS fleet_account_vehicles_fleet_account_id_vehicle_id_unique;
ALTER TABLE IF EXISTS ONLY public.faq_items DROP CONSTRAINT IF EXISTS faq_items_pkey;
ALTER TABLE IF EXISTS ONLY public.faq_categories DROP CONSTRAINT IF EXISTS faq_categories_pkey;
ALTER TABLE IF EXISTS ONLY public.failed_jobs DROP CONSTRAINT IF EXISTS failed_jobs_uuid_unique;
ALTER TABLE IF EXISTS ONLY public.failed_jobs DROP CONSTRAINT IF EXISTS failed_jobs_pkey;
ALTER TABLE IF EXISTS ONLY public.email_templates DROP CONSTRAINT IF EXISTS email_templates_slug_unique;
ALTER TABLE IF EXISTS ONLY public.email_templates DROP CONSTRAINT IF EXISTS email_templates_pkey;
ALTER TABLE IF EXISTS ONLY public.email_template_recipients DROP CONSTRAINT IF EXISTS email_template_recipients_pkey;
ALTER TABLE IF EXISTS ONLY public.email_template_exceptions DROP CONSTRAINT IF EXISTS email_template_exceptions_pkey;
ALTER TABLE IF EXISTS ONLY public.email_template_events DROP CONSTRAINT IF EXISTS email_template_events_pkey;
ALTER TABLE IF EXISTS ONLY public.email_template_attachments DROP CONSTRAINT IF EXISTS email_template_attachments_pkey;
ALTER TABLE IF EXISTS ONLY public.customer_memberships DROP CONSTRAINT IF EXISTS customer_memberships_pkey;
ALTER TABLE IF EXISTS ONLY public.bookings DROP CONSTRAINT IF EXISTS bookings_uuid_unique;
ALTER TABLE IF EXISTS ONLY public.bookings DROP CONSTRAINT IF EXISTS bookings_pkey;
ALTER TABLE IF EXISTS ONLY public.booking_addons DROP CONSTRAINT IF EXISTS booking_addons_pkey;
ALTER TABLE IF EXISTS ONLY public.booking_addons DROP CONSTRAINT IF EXISTS booking_addons_booking_id_addon_id_unique;
ALTER TABLE IF EXISTS ONLY public.admin_notifications DROP CONSTRAINT IF EXISTS admin_notifications_pkey;
ALTER TABLE IF EXISTS ONLY public.addons DROP CONSTRAINT IF EXISTS addons_pkey;
ALTER TABLE IF EXISTS public.webhook_deliveries ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.vehicles ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.vehicle_size_categories ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.service_zones ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.roles ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.permissions ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.packages ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.package_vehicle_size_prices ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.notification_logs ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.migrations ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.membership_plans ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.locations ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.location_types ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.location_closed_dates ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.location_availability_slots ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.jobs ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.job_status_logs ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.fleet_accounts ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.fleet_account_vehicles ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.faq_items ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.faq_categories ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.failed_jobs ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.email_templates ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.email_template_recipients ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.email_template_exceptions ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.email_template_events ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.email_template_attachments ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.customer_memberships ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.bookings ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.booking_addons ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.admin_notifications ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.addons ALTER COLUMN id DROP DEFAULT;
DROP SEQUENCE IF EXISTS public.webhook_endpoints_id_seq;
DROP SEQUENCE IF EXISTS public.webhook_deliveries_id_seq;
DROP SEQUENCE IF EXISTS public.vehicles_id_seq;
DROP SEQUENCE IF EXISTS public.vehicle_size_categories_id_seq;
DROP SEQUENCE IF EXISTS public.users_id_seq;
DROP SEQUENCE IF EXISTS public.settings_id_seq;
DROP SEQUENCE IF EXISTS public.service_zones_id_seq;
DROP SEQUENCE IF EXISTS public.sent_emails_url_clicked_id_seq;
DROP SEQUENCE IF EXISTS public.roles_id_seq;
DROP SEQUENCE IF EXISTS public.personal_access_tokens_id_seq;
DROP SEQUENCE IF EXISTS public.permissions_id_seq;
DROP SEQUENCE IF EXISTS public.passkeys_id_seq;
DROP SEQUENCE IF EXISTS public.packages_id_seq;
DROP SEQUENCE IF EXISTS public.package_vehicle_size_prices_id_seq;
DROP SEQUENCE IF EXISTS public.notification_logs_id_seq;
DROP SEQUENCE IF EXISTS public.migrations_id_seq;
DROP SEQUENCE IF EXISTS public.membership_plans_id_seq;
DROP SEQUENCE IF EXISTS public.locations_id_seq;
DROP SEQUENCE IF EXISTS public.location_types_id_seq;
DROP SEQUENCE IF EXISTS public.location_closed_dates_id_seq;
DROP SEQUENCE IF EXISTS public.location_availability_slots_id_seq;
DROP SEQUENCE IF EXISTS public.jobs_id_seq;
DROP SEQUENCE IF EXISTS public.job_status_logs_id_seq;
DROP SEQUENCE IF EXISTS public.fleet_accounts_id_seq;
DROP SEQUENCE IF EXISTS public.fleet_account_vehicles_id_seq;
DROP SEQUENCE IF EXISTS public.faq_items_id_seq;
DROP SEQUENCE IF EXISTS public.faq_categories_id_seq;
DROP SEQUENCE IF EXISTS public.failed_jobs_id_seq;
DROP SEQUENCE IF EXISTS public.email_templates_id_seq;
DROP SEQUENCE IF EXISTS public.email_template_recipients_id_seq;
DROP SEQUENCE IF EXISTS public.email_template_exceptions_id_seq;
DROP SEQUENCE IF EXISTS public.email_template_events_id_seq;
DROP SEQUENCE IF EXISTS public.email_template_attachments_id_seq;
DROP SEQUENCE IF EXISTS public.customer_memberships_id_seq;
DROP SEQUENCE IF EXISTS public.bookings_id_seq;
DROP SEQUENCE IF EXISTS public.booking_addons_id_seq;
DROP SEQUENCE IF EXISTS public.admin_notifications_id_seq;
DROP SEQUENCE IF EXISTS public.addons_id_seq;
DROP EXTENSION IF EXISTS plpgsql;
DROP SCHEMA IF EXISTS public;
--
-- Name: public; Type: SCHEMA; Schema: -; Owner: -
--

CREATE SCHEMA public;


--
-- Name: SCHEMA public; Type: COMMENT; Schema: -; Owner: -
--

COMMENT ON SCHEMA public IS 'standard public schema';


--
-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: -
--

CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;


--
-- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: -
--

COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';




--
-- Name: addons; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.addons (
    id bigint NOT NULL,
    name character varying(255) NOT NULL,
    description text,
    duration_minutes smallint NOT NULL,
    price_sedan integer NOT NULL,
    price_suv integer NOT NULL,
    price_truck integer NOT NULL,
    price_van integer NOT NULL,
    price_oversized integer NOT NULL,
    is_active boolean DEFAULT true NOT NULL,
    display_order integer DEFAULT 0 NOT NULL,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone
);


--
-- Name: addons_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.addons_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: addons_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.addons_id_seq OWNED BY public.addons.id;


--
-- Name: admin_notifications; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.admin_notifications (
    id bigint NOT NULL,
    category character varying(191) NOT NULL,
    title character varying(191) NOT NULL,
    body text NOT NULL,
    action_url character varying(191),
    action_label character varying(191),
    payload json,
    is_read boolean DEFAULT false NOT NULL,
    read_at timestamp(0) without time zone,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone
);


--
-- Name: admin_notifications_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.admin_notifications_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: admin_notifications_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.admin_notifications_id_seq OWNED BY public.admin_notifications.id;


--
-- Name: booking_addons; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.booking_addons (
    id bigint NOT NULL,
    booking_id bigint NOT NULL,
    addon_id bigint NOT NULL,
    price integer NOT NULL,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone
);


--
-- Name: booking_addons_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.booking_addons_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: booking_addons_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.booking_addons_id_seq OWNED BY public.booking_addons.id;


--
-- Name: bookings; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.bookings (
    id bigint NOT NULL,
    uuid uuid NOT NULL,
    customer_id bigint NOT NULL,
    technician_id bigint,
    location_id bigint,
    vehicle_id bigint NOT NULL,
    package_id bigint NOT NULL,
    service_address character varying(255),
    service_city character varying(255),
    service_state character varying(255),
    service_zip character varying(255),
    service_lat numeric(10,7),
    service_lng numeric(10,7),
    service_type character varying(255) NOT NULL,
    scheduled_at timestamp(0) without time zone NOT NULL,
    ends_at timestamp(0) without time zone,
    payment_status character varying(255) DEFAULT 'pending'::character varying NOT NULL,
    service_status character varying(255) DEFAULT 'scheduled'::character varying NOT NULL,
    subtotal integer NOT NULL,
    addons_total integer DEFAULT 0 NOT NULL,
    total integer NOT NULL,
    deposit_amount integer DEFAULT 0 NOT NULL,
    amount_paid integer DEFAULT 0 NOT NULL,
    stripe_payment_intent_id character varying(255),
    stripe_invoice_id character varying(255),
    notes text,
    internal_notes text,
    cancellation_reason character varying(255),
    cancelled_at timestamp(0) without time zone,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone,
    is_recurring boolean DEFAULT false NOT NULL,
    recurrence_frequency character varying(255),
    recurrence_until timestamp(0) without time zone,
    parent_booking_id bigint,
    payment_method character varying(255) DEFAULT 'card'::character varying NOT NULL,
    CONSTRAINT bookings_payment_method_check CHECK (((payment_method)::text = ANY (ARRAY[('card'::character varying)::text, ('pay_at_service'::character varying)::text]))),
    CONSTRAINT bookings_payment_status_check CHECK (((payment_status)::text = ANY (ARRAY[('pending'::character varying)::text, ('paid'::character varying)::text, ('failed'::character varying)::text, ('refunded'::character varying)::text]))),
    CONSTRAINT bookings_service_status_check CHECK (((service_status)::text = ANY (ARRAY['scheduled'::text, 'arrived'::text, 'in_progress'::text, 'completed'::text, 'cancelled'::text, 'no_show'::text]))),
    CONSTRAINT bookings_service_type_check CHECK (((service_type)::text = ANY (ARRAY[('mobile'::character varying)::text, ('fixed'::character varying)::text])))
);


--
-- Name: bookings_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.bookings_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: bookings_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.bookings_id_seq OWNED BY public.bookings.id;


--
-- Name: customer_memberships; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.customer_memberships (
    id bigint NOT NULL,
    user_id bigint NOT NULL,
    plan_id bigint NOT NULL,
    stripe_subscription_id character varying(255),
    status character varying(255) DEFAULT 'active'::character varying NOT NULL,
    current_period_start timestamp(0) without time zone,
    current_period_end timestamp(0) without time zone,
    washes_used_this_period smallint DEFAULT '0'::smallint NOT NULL,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone
);


--
-- Name: customer_memberships_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.customer_memberships_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: customer_memberships_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.customer_memberships_id_seq OWNED BY public.customer_memberships.id;


--
-- Name: email_template_attachments; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.email_template_attachments (
    id bigint NOT NULL,
    template_id bigint NOT NULL,
    attachment_type character varying(255) NOT NULL,
    label character varying(255) NOT NULL,
    file_path character varying(255),
    is_active boolean DEFAULT true NOT NULL,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone
);


--
-- Name: email_template_attachments_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.email_template_attachments_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: email_template_attachments_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.email_template_attachments_id_seq OWNED BY public.email_template_attachments.id;


--
-- Name: email_template_events; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.email_template_events (
    id bigint NOT NULL,
    template_id bigint NOT NULL,
    event_key character varying(255) NOT NULL,
    delay_minutes integer DEFAULT 0 NOT NULL,
    is_active boolean DEFAULT true NOT NULL,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone
);


--
-- Name: email_template_events_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.email_template_events_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: email_template_events_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.email_template_events_id_seq OWNED BY public.email_template_events.id;


--
-- Name: email_template_exceptions; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.email_template_exceptions (
    id bigint NOT NULL,
    template_event_id bigint NOT NULL,
    exception_type character varying(255) NOT NULL,
    condition_value jsonb,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone
);


--
-- Name: email_template_exceptions_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.email_template_exceptions_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: email_template_exceptions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.email_template_exceptions_id_seq OWNED BY public.email_template_exceptions.id;


--
-- Name: email_template_recipients; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.email_template_recipients (
    id bigint NOT NULL,
    template_event_id bigint NOT NULL,
    recipient_type character varying(255) NOT NULL,
    custom_email character varying(255),
    conditions jsonb,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone
);


--
-- Name: email_template_recipients_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.email_template_recipients_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: email_template_recipients_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.email_template_recipients_id_seq OWNED BY public.email_template_recipients.id;


--
-- Name: email_templates; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.email_templates (
    id bigint NOT NULL,
    name character varying(255) NOT NULL,
    slug character varying(255) NOT NULL,
    description text,
    subject character varying(255) NOT NULL,
    body_html text NOT NULL,
    body_text text,
    from_name character varying(255),
    from_email character varying(255),
    reply_to character varying(255),
    is_active boolean DEFAULT true NOT NULL,
    is_system boolean DEFAULT false NOT NULL,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone
);


--
-- Name: email_templates_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.email_templates_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: email_templates_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.email_templates_id_seq OWNED BY public.email_templates.id;


--
-- Name: failed_jobs; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.failed_jobs (
    id bigint NOT NULL,
    uuid character varying(255) NOT NULL,
    connection character varying(255) NOT NULL,
    queue character varying(255) NOT NULL,
    payload text NOT NULL,
    exception text NOT NULL,
    failed_at timestamp(0) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


--
-- Name: failed_jobs_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.failed_jobs_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: failed_jobs_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.failed_jobs_id_seq OWNED BY public.failed_jobs.id;


--
-- Name: faq_categories; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.faq_categories (
    id bigint NOT NULL,
    name character varying(191) NOT NULL,
    display_order integer DEFAULT 0 NOT NULL,
    is_active boolean DEFAULT true NOT NULL,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone
);


--
-- Name: faq_categories_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.faq_categories_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: faq_categories_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.faq_categories_id_seq OWNED BY public.faq_categories.id;


--
-- Name: faq_items; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.faq_items (
    id bigint NOT NULL,
    faq_category_id bigint NOT NULL,
    question character varying(191) NOT NULL,
    answer text NOT NULL,
    display_order integer DEFAULT 0 NOT NULL,
    is_active boolean DEFAULT true NOT NULL,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone
);


--
-- Name: faq_items_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.faq_items_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: faq_items_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.faq_items_id_seq OWNED BY public.faq_items.id;


--
-- Name: fleet_account_vehicles; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.fleet_account_vehicles (
    id bigint NOT NULL,
    fleet_account_id bigint NOT NULL,
    vehicle_id bigint NOT NULL,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone
);


--
-- Name: fleet_account_vehicles_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.fleet_account_vehicles_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: fleet_account_vehicles_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.fleet_account_vehicles_id_seq OWNED BY public.fleet_account_vehicles.id;


--
-- Name: fleet_accounts; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.fleet_accounts (
    id bigint NOT NULL,
    company_name character varying(255) NOT NULL,
    contact_name character varying(255) NOT NULL,
    contact_email character varying(255) NOT NULL,
    contact_phone character varying(255) NOT NULL,
    billing_cycle character varying(255) DEFAULT 'monthly'::character varying NOT NULL,
    discount_percent smallint DEFAULT '0'::smallint NOT NULL,
    net_days smallint DEFAULT '30'::smallint NOT NULL,
    stripe_customer_id character varying(255),
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone,
    CONSTRAINT fleet_accounts_billing_cycle_check CHECK (((billing_cycle)::text = ANY (ARRAY[('monthly'::character varying)::text, ('weekly'::character varying)::text])))
);


--
-- Name: fleet_accounts_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.fleet_accounts_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: fleet_accounts_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.fleet_accounts_id_seq OWNED BY public.fleet_accounts.id;


--
-- Name: job_batches; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.job_batches (
    id character varying(255) NOT NULL,
    name character varying(255) NOT NULL,
    total_jobs integer NOT NULL,
    pending_jobs integer NOT NULL,
    failed_jobs integer NOT NULL,
    failed_job_ids text NOT NULL,
    options text,
    cancelled_at integer,
    created_at integer NOT NULL,
    finished_at integer
);


--
-- Name: job_status_logs; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.job_status_logs (
    id bigint NOT NULL,
    booking_id bigint NOT NULL,
    status character varying(255) NOT NULL,
    note text,
    lat numeric(10,7),
    lng numeric(10,7),
    created_by bigint NOT NULL,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone
);


--
-- Name: job_status_logs_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.job_status_logs_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: job_status_logs_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.job_status_logs_id_seq OWNED BY public.job_status_logs.id;


--
-- Name: jobs; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.jobs (
    id bigint NOT NULL,
    queue character varying(255) NOT NULL,
    payload text NOT NULL,
    attempts smallint NOT NULL,
    reserved_at integer,
    available_at integer NOT NULL,
    created_at integer NOT NULL
);


--
-- Name: jobs_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.jobs_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: jobs_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.jobs_id_seq OWNED BY public.jobs.id;


--
-- Name: location_availability_slots; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.location_availability_slots (
    id bigint NOT NULL,
    location_id bigint NOT NULL,
    day_of_week smallint NOT NULL,
    opens_at character varying(5) NOT NULL,
    closes_at character varying(5) NOT NULL,
    is_active boolean DEFAULT true NOT NULL,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone
);


--
-- Name: location_availability_slots_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.location_availability_slots_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: location_availability_slots_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.location_availability_slots_id_seq OWNED BY public.location_availability_slots.id;


--
-- Name: location_closed_dates; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.location_closed_dates (
    id bigint NOT NULL,
    location_id bigint NOT NULL,
    start_date date NOT NULL,
    end_date date NOT NULL,
    label character varying(191),
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone
);


--
-- Name: location_closed_dates_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.location_closed_dates_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: location_closed_dates_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.location_closed_dates_id_seq OWNED BY public.location_closed_dates.id;


--
-- Name: location_package; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.location_package (
    location_id bigint NOT NULL,
    package_id bigint NOT NULL
);


--
-- Name: location_types; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.location_types (
    id bigint NOT NULL,
    slug character varying(50) NOT NULL,
    label character varying(100) NOT NULL,
    is_active boolean DEFAULT true NOT NULL,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone,
    description character varying(300)
);


--
-- Name: location_types_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.location_types_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: location_types_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.location_types_id_seq OWNED BY public.location_types.id;


--
-- Name: location_user; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.location_user (
    location_id bigint NOT NULL,
    user_id bigint NOT NULL
);


--
-- Name: locations; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.locations (
    id bigint NOT NULL,
    name character varying(255) NOT NULL,
    type character varying(50) NOT NULL,
    address character varying(255),
    city character varying(255),
    state character varying(255),
    zip character varying(255),
    lat numeric(10,7),
    lng numeric(10,7),
    service_radius_miles smallint,
    service_zip_codes json,
    is_active boolean DEFAULT true NOT NULL,
    opens_at time(0) without time zone,
    closes_at time(0) without time zone,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone,
    display_order integer DEFAULT 0 NOT NULL,
    CONSTRAINT locations_type_check CHECK (((type)::text = ANY (ARRAY[('fixed'::character varying)::text, ('mobile_zone'::character varying)::text])))
);


--
-- Name: locations_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.locations_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: locations_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.locations_id_seq OWNED BY public.locations.id;


--
-- Name: membership_plans; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.membership_plans (
    id bigint NOT NULL,
    name character varying(255) NOT NULL,
    description text,
    washes_per_month smallint,
    price_monthly integer NOT NULL,
    stripe_price_id character varying(255),
    eligible_vehicle_sizes json,
    is_active boolean DEFAULT true NOT NULL,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone
);


--
-- Name: membership_plans_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.membership_plans_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: membership_plans_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.membership_plans_id_seq OWNED BY public.membership_plans.id;


--
-- Name: migrations; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.migrations (
    id integer NOT NULL,
    migration character varying(255) NOT NULL,
    batch integer NOT NULL
);


--
-- Name: migrations_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.migrations_id_seq
    AS integer
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: migrations_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.migrations_id_seq OWNED BY public.migrations.id;


--
-- Name: model_has_permissions; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.model_has_permissions (
    permission_id bigint NOT NULL,
    model_type character varying(255) NOT NULL,
    model_id bigint NOT NULL
);


--
-- Name: model_has_roles; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.model_has_roles (
    role_id bigint NOT NULL,
    model_type character varying(255) NOT NULL,
    model_id bigint NOT NULL
);


--
-- Name: notification_logs; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.notification_logs (
    id bigint NOT NULL,
    booking_id bigint NOT NULL,
    user_id bigint NOT NULL,
    channel character varying(255) NOT NULL,
    type character varying(255) NOT NULL,
    message text,
    sent_at timestamp(0) without time zone,
    status character varying(255) DEFAULT 'sent'::character varying NOT NULL,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone,
    CONSTRAINT notification_logs_channel_check CHECK (((channel)::text = ANY (ARRAY[('sms'::character varying)::text, ('email'::character varying)::text, ('push'::character varying)::text])))
);


--
-- Name: notification_logs_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.notification_logs_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: notification_logs_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.notification_logs_id_seq OWNED BY public.notification_logs.id;


--
-- Name: package_vehicle_size_prices; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.package_vehicle_size_prices (
    id bigint NOT NULL,
    package_id bigint NOT NULL,
    vehicle_size_category_id bigint NOT NULL,
    price_cents integer NOT NULL,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone
);


--
-- Name: package_vehicle_size_prices_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.package_vehicle_size_prices_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: package_vehicle_size_prices_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.package_vehicle_size_prices_id_seq OWNED BY public.package_vehicle_size_prices.id;


--
-- Name: packages; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.packages (
    id bigint NOT NULL,
    name character varying(255) NOT NULL,
    description text,
    duration_minutes smallint NOT NULL,
    is_active boolean DEFAULT true NOT NULL,
    display_order integer DEFAULT 0 NOT NULL,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone,
    is_featured boolean DEFAULT false NOT NULL,
    icon character varying(50)
);


--
-- Name: packages_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.packages_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: packages_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.packages_id_seq OWNED BY public.packages.id;


--
-- Name: passkeys_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.passkeys_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: passkeys_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.passkeys_id_seq OWNED BY public.passkeys.id;


--
-- Name: permissions; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.permissions (
    id bigint NOT NULL,
    name character varying(255) NOT NULL,
    guard_name character varying(255) NOT NULL,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone
);


--
-- Name: permissions_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.permissions_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: permissions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.permissions_id_seq OWNED BY public.permissions.id;


--
-- Name: personal_access_tokens_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.personal_access_tokens_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: personal_access_tokens_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.personal_access_tokens_id_seq OWNED BY public.personal_access_tokens.id;


--
-- Name: role_has_permissions; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.role_has_permissions (
    permission_id bigint NOT NULL,
    role_id bigint NOT NULL
);


--
-- Name: roles; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.roles (
    id bigint NOT NULL,
    name character varying(255) NOT NULL,
    guard_name character varying(255) NOT NULL,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone
);


--
-- Name: roles_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.roles_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: roles_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.roles_id_seq OWNED BY public.roles.id;


--
-- Name: sent_emails_url_clicked_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.sent_emails_url_clicked_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: sent_emails_url_clicked_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.sent_emails_url_clicked_id_seq OWNED BY public.sent_emails_url_clicked.id;


--
-- Name: service_zones; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.service_zones (
    id bigint NOT NULL,
    location_id bigint NOT NULL,
    zip_code character varying(20) NOT NULL,
    is_active boolean DEFAULT true NOT NULL,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone
);


--
-- Name: service_zones_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.service_zones_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: service_zones_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.service_zones_id_seq OWNED BY public.service_zones.id;


--
-- Name: sessions; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.sessions (
    id character varying(255) NOT NULL,
    user_id bigint,
    ip_address character varying(45),
    user_agent text,
    payload text NOT NULL,
    last_activity integer NOT NULL
);


--
-- Name: settings_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.settings_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: settings_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.settings_id_seq OWNED BY public.settings.id;


--
-- Name: users_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.users_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: users_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.users_id_seq OWNED BY public.users.id;


--
-- Name: vehicle_size_categories; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.vehicle_size_categories (
    id bigint NOT NULL,
    slug character varying(255) NOT NULL,
    name character varying(255) NOT NULL,
    description text,
    image_path character varying(255),
    emoji_fallback character varying(16),
    display_order integer DEFAULT 0 NOT NULL,
    is_active boolean DEFAULT true NOT NULL,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone
);


--
-- Name: vehicle_size_categories_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.vehicle_size_categories_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: vehicle_size_categories_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.vehicle_size_categories_id_seq OWNED BY public.vehicle_size_categories.id;


--
-- Name: vehicles; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.vehicles (
    id bigint NOT NULL,
    user_id bigint,
    make character varying(255) NOT NULL,
    model character varying(255) NOT NULL,
    year smallint NOT NULL,
    color character varying(255),
    size character varying(255) NOT NULL,
    license_plate character varying(255),
    notes text,
    is_default boolean DEFAULT false NOT NULL,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone,
    CONSTRAINT vehicles_size_check CHECK (((size)::text = ANY (ARRAY[('sedan'::character varying)::text, ('suv'::character varying)::text, ('full-size-suv'::character varying)::text, ('truck'::character varying)::text, ('van'::character varying)::text, ('oversized'::character varying)::text])))
);


--
-- Name: vehicles_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.vehicles_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: vehicles_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.vehicles_id_seq OWNED BY public.vehicles.id;


--
-- Name: webhook_deliveries; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.webhook_deliveries (
    id bigint NOT NULL,
    endpoint_id bigint NOT NULL,
    event character varying(255) NOT NULL,
    payload json NOT NULL,
    response_status smallint,
    attempts smallint DEFAULT '0'::smallint NOT NULL,
    last_attempt_at timestamp(0) without time zone,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone
);


--
-- Name: webhook_deliveries_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.webhook_deliveries_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: webhook_deliveries_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.webhook_deliveries_id_seq OWNED BY public.webhook_deliveries.id;


--
-- Name: webhook_endpoints_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE public.webhook_endpoints_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: webhook_endpoints_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE public.webhook_endpoints_id_seq OWNED BY public.webhook_endpoints.id;


--
-- Name: addons id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.addons ALTER COLUMN id SET DEFAULT nextval('public.addons_id_seq'::regclass);


--
-- Name: admin_notifications id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.admin_notifications ALTER COLUMN id SET DEFAULT nextval('public.admin_notifications_id_seq'::regclass);


--
-- Name: booking_addons id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.booking_addons ALTER COLUMN id SET DEFAULT nextval('public.booking_addons_id_seq'::regclass);


--
-- Name: bookings id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.bookings ALTER COLUMN id SET DEFAULT nextval('public.bookings_id_seq'::regclass);


--
-- Name: customer_memberships id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.customer_memberships ALTER COLUMN id SET DEFAULT nextval('public.customer_memberships_id_seq'::regclass);


--
-- Name: email_template_attachments id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.email_template_attachments ALTER COLUMN id SET DEFAULT nextval('public.email_template_attachments_id_seq'::regclass);


--
-- Name: email_template_events id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.email_template_events ALTER COLUMN id SET DEFAULT nextval('public.email_template_events_id_seq'::regclass);


--
-- Name: email_template_exceptions id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.email_template_exceptions ALTER COLUMN id SET DEFAULT nextval('public.email_template_exceptions_id_seq'::regclass);


--
-- Name: email_template_recipients id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.email_template_recipients ALTER COLUMN id SET DEFAULT nextval('public.email_template_recipients_id_seq'::regclass);


--
-- Name: email_templates id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.email_templates ALTER COLUMN id SET DEFAULT nextval('public.email_templates_id_seq'::regclass);


--
-- Name: failed_jobs id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.failed_jobs ALTER COLUMN id SET DEFAULT nextval('public.failed_jobs_id_seq'::regclass);


--
-- Name: faq_categories id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.faq_categories ALTER COLUMN id SET DEFAULT nextval('public.faq_categories_id_seq'::regclass);


--
-- Name: faq_items id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.faq_items ALTER COLUMN id SET DEFAULT nextval('public.faq_items_id_seq'::regclass);


--
-- Name: fleet_account_vehicles id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.fleet_account_vehicles ALTER COLUMN id SET DEFAULT nextval('public.fleet_account_vehicles_id_seq'::regclass);


--
-- Name: fleet_accounts id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.fleet_accounts ALTER COLUMN id SET DEFAULT nextval('public.fleet_accounts_id_seq'::regclass);


--
-- Name: job_status_logs id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.job_status_logs ALTER COLUMN id SET DEFAULT nextval('public.job_status_logs_id_seq'::regclass);


--
-- Name: jobs id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.jobs ALTER COLUMN id SET DEFAULT nextval('public.jobs_id_seq'::regclass);


--
-- Name: location_availability_slots id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.location_availability_slots ALTER COLUMN id SET DEFAULT nextval('public.location_availability_slots_id_seq'::regclass);


--
-- Name: location_closed_dates id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.location_closed_dates ALTER COLUMN id SET DEFAULT nextval('public.location_closed_dates_id_seq'::regclass);


--
-- Name: location_types id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.location_types ALTER COLUMN id SET DEFAULT nextval('public.location_types_id_seq'::regclass);


--
-- Name: locations id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.locations ALTER COLUMN id SET DEFAULT nextval('public.locations_id_seq'::regclass);


--
-- Name: membership_plans id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.membership_plans ALTER COLUMN id SET DEFAULT nextval('public.membership_plans_id_seq'::regclass);


--
-- Name: migrations id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.migrations ALTER COLUMN id SET DEFAULT nextval('public.migrations_id_seq'::regclass);


--
-- Name: notification_logs id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.notification_logs ALTER COLUMN id SET DEFAULT nextval('public.notification_logs_id_seq'::regclass);


--
-- Name: package_vehicle_size_prices id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.package_vehicle_size_prices ALTER COLUMN id SET DEFAULT nextval('public.package_vehicle_size_prices_id_seq'::regclass);


--
-- Name: packages id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.packages ALTER COLUMN id SET DEFAULT nextval('public.packages_id_seq'::regclass);


--
-- Name: permissions id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.permissions ALTER COLUMN id SET DEFAULT nextval('public.permissions_id_seq'::regclass);


--
-- Name: roles id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.roles ALTER COLUMN id SET DEFAULT nextval('public.roles_id_seq'::regclass);


--
-- Name: service_zones id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.service_zones ALTER COLUMN id SET DEFAULT nextval('public.service_zones_id_seq'::regclass);


--
-- Name: vehicle_size_categories id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.vehicle_size_categories ALTER COLUMN id SET DEFAULT nextval('public.vehicle_size_categories_id_seq'::regclass);


--
-- Name: vehicles id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.vehicles ALTER COLUMN id SET DEFAULT nextval('public.vehicles_id_seq'::regclass);


--
-- Name: webhook_deliveries id; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.webhook_deliveries ALTER COLUMN id SET DEFAULT nextval('public.webhook_deliveries_id_seq'::regclass);


--
-- Data for Name: addons; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.addons (id, name, description, duration_minutes, price_sedan, price_suv, price_truck, price_van, price_oversized, is_active, display_order, created_at, updated_at) FROM stdin;
4	Matt Wash	\N	20	1000	1500	1500	3000	2000	t	0	2026-05-27 05:32:27	2026-05-30 05:12:09
1	Hand Wax	Carnauba hand wax application.	20	2500	3000	3500	3500	4000	t	1	2026-05-25 20:59:46	2026-05-30 05:12:09
2	Interior Deep Clean	Shampoo mats and deep vacuum.	45	4500	5500	6500	6500	7500	t	2	2026-05-25 20:59:46	2026-05-30 05:12:09
3	Engine Bay Detail	Degrease and dress engine bay.	30	3500	4000	4500	4500	5000	t	3	2026-05-25 20:59:46	2026-05-30 05:12:09
\.


--
-- Data for Name: admin_notifications; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.admin_notifications (id, category, title, body, action_url, action_label, payload, is_read, read_at, created_at, updated_at) FROM stdin;
1	system	Low availability — 74 N Pasadena	74 N Pasadena is fully booked for Wednesday, Jun 3 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	t	2026-05-31 22:15:28	2026-05-31 21:00:08	2026-05-31 22:15:28
2	system	Low availability — 74 N Pasadena	74 N Pasadena is fully booked for Wednesday, Jun 3 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	t	2026-06-01 02:53:59	2026-05-31 23:00:04	2026-06-01 02:53:59
3	system	Low availability — 74 N Pasadena	74 N Pasadena is fully booked for Wednesday, Jun 3 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-01 03:00:05	2026-06-01 03:00:05
4	bookings	New booking #919C348E	Customer booked Furry Pet Wash for a 2023 Tesla Model 3. Scheduled Jun 24 at 9:00 AM.	https://service.mypropertysos.com/admin/bookings?booking=203	View Booking	\N	f	\N	2026-06-01 06:08:34	2026-06-01 06:08:34
5	system	Low availability — 74 N Pasadena	74 N Pasadena is fully booked for Wednesday, Jun 3 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-02 03:00:07	2026-06-02 03:00:07
6	system	Low availability — 10900 Wilshire	10900 Wilshire is 1 slot(s) remaining for Thursday, Jun 4 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/9/technicians	Manage Technicians	\N	f	\N	2026-06-02 17:00:05	2026-06-02 17:00:05
7	system	Low availability — 2601 / 2625 Alameda	2601 / 2625 Alameda is 1 slot(s) remaining for Friday, Jun 5 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/18/technicians	Manage Technicians	\N	f	\N	2026-06-02 17:00:05	2026-06-02 17:00:05
8	system	Low availability — 74 N Pasadena	74 N Pasadena is fully booked for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-03 03:00:09	2026-06-03 03:00:09
9	bookings	New booking #7154ADF2	Jose Campos booked Spray Wax for a 2024 Toyota camry. Scheduled Jun 5 at 10:20 AM.	https://service.mypropertysos.com/admin/bookings?booking=204	View Booking	\N	f	\N	2026-06-03 03:30:49	2026-06-03 03:30:49
10	system	Low availability — 1640 S. Sepulveda	1640 S. Sepulveda is 1 slot(s) remaining for Tuesday, Jun 9 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/14/technicians	Manage Technicians	\N	f	\N	2026-06-03 04:00:07	2026-06-03 04:00:07
11	system	Low availability — Marina Towers	Marina Towers is 1 slot(s) remaining for Monday, Jun 8 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/12/technicians	Manage Technicians	\N	f	\N	2026-06-03 04:00:07	2026-06-03 04:00:07
12	system	Low availability — Water Garden	Water Garden is 1 slot(s) remaining for Tuesday, Jun 9 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/11/technicians	Manage Technicians	\N	f	\N	2026-06-03 04:00:07	2026-06-03 04:00:07
13	system	Low availability — The Brickyard	The Brickyard is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/10/technicians	Manage Technicians	\N	f	\N	2026-06-03 04:00:07	2026-06-03 04:00:07
14	system	Low availability — Collective P4	Collective P4 is 1 slot(s) remaining for Thursday, Jun 4 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/8/technicians	Manage Technicians	\N	f	\N	2026-06-03 04:00:07	2026-06-03 04:00:07
15	system	Low availability — Polestar Los Angeles	Polestar Los Angeles is 1 slot(s) remaining for Monday, Jun 8 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/7/technicians	Manage Technicians	\N	f	\N	2026-06-03 04:00:07	2026-06-03 04:00:07
16	system	Low availability — 888 N Douglas	888 N Douglas is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/4/technicians	Manage Technicians	\N	f	\N	2026-06-03 04:00:07	2026-06-03 04:00:07
17	system	Low availability — 9701 Wilshire	9701 Wilshire is 1 slot(s) remaining for Thursday, Jun 4 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/3/technicians	Manage Technicians	\N	f	\N	2026-06-03 04:00:07	2026-06-03 04:00:07
18	system	Low availability — 6345 Balboa	6345 Balboa is 1 slot(s) remaining for Monday, Jun 8 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/2/technicians	Manage Technicians	\N	f	\N	2026-06-03 04:00:07	2026-06-03 04:00:07
19	system	Low availability — 120 S Spalding	120 S Spalding is 1 slot(s) remaining for Friday, Jun 5 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/17/technicians	Manage Technicians	\N	f	\N	2026-06-03 04:00:07	2026-06-03 04:00:07
20	system	Low availability — 9301 Wilshire	9301 Wilshire is 1 slot(s) remaining for Monday, Jun 8 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/16/technicians	Manage Technicians	\N	f	\N	2026-06-03 04:00:07	2026-06-03 04:00:07
21	system	Low availability — Campus at Warner Center	Campus at Warner Center is 1 slot(s) remaining for Tuesday, Jun 9 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/15/technicians	Manage Technicians	\N	f	\N	2026-06-03 04:00:07	2026-06-03 04:00:07
22	system	Low availability — Beethoven	Beethoven is 1 slot(s) remaining for Tuesday, Jun 9 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/13/technicians	Manage Technicians	\N	f	\N	2026-06-03 04:00:07	2026-06-03 04:00:07
23	system	Low availability — 10900 Wilshire	10900 Wilshire is 1 slot(s) remaining for Thursday, Jun 4 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/9/technicians	Manage Technicians	\N	f	\N	2026-06-03 17:00:09	2026-06-03 17:00:09
24	system	Low availability — 2601 / 2625 Alameda	2601 / 2625 Alameda is 1 slot(s) remaining for Friday, Jun 5 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/18/technicians	Manage Technicians	\N	f	\N	2026-06-03 17:00:09	2026-06-03 17:00:09
49	system	Low availability — 6345 Balboa	6345 Balboa is 1 slot(s) remaining for Monday, Jun 8 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/2/technicians	Manage Technicians	\N	f	\N	2026-06-05 05:00:07	2026-06-05 05:00:07
25	system	Low availability — 1640 S. Sepulveda	1640 S. Sepulveda is 1 slot(s) remaining for Tuesday, Jun 9 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/14/technicians	Manage Technicians	\N	f	\N	2026-06-04 04:00:27	2026-06-04 04:00:27
26	system	Low availability — Marina Towers	Marina Towers is 1 slot(s) remaining for Monday, Jun 8 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/12/technicians	Manage Technicians	\N	f	\N	2026-06-04 04:00:27	2026-06-04 04:00:27
27	system	Low availability — Water Garden	Water Garden is 1 slot(s) remaining for Tuesday, Jun 9 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/11/technicians	Manage Technicians	\N	f	\N	2026-06-04 04:00:27	2026-06-04 04:00:27
28	system	Low availability — The Brickyard	The Brickyard is 1 slot(s) remaining for Wednesday, Jun 10 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/10/technicians	Manage Technicians	\N	f	\N	2026-06-04 04:00:27	2026-06-04 04:00:27
29	system	Low availability — Collective P4	Collective P4 is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/8/technicians	Manage Technicians	\N	f	\N	2026-06-04 04:00:27	2026-06-04 04:00:27
30	system	Low availability — Polestar Los Angeles	Polestar Los Angeles is 1 slot(s) remaining for Monday, Jun 8 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/7/technicians	Manage Technicians	\N	f	\N	2026-06-04 04:00:27	2026-06-04 04:00:27
31	system	Low availability — 888 N Douglas	888 N Douglas is 1 slot(s) remaining for Wednesday, Jun 10 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/4/technicians	Manage Technicians	\N	f	\N	2026-06-04 04:00:27	2026-06-04 04:00:27
32	system	Low availability — 9701 Wilshire	9701 Wilshire is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/3/technicians	Manage Technicians	\N	f	\N	2026-06-04 04:00:27	2026-06-04 04:00:27
33	system	Low availability — 6345 Balboa	6345 Balboa is 1 slot(s) remaining for Monday, Jun 8 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/2/technicians	Manage Technicians	\N	f	\N	2026-06-04 04:00:27	2026-06-04 04:00:27
34	system	Low availability — 74 N Pasadena	74 N Pasadena is 1 slot(s) remaining for Wednesday, Jun 10 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-04 04:00:27	2026-06-04 04:00:27
35	system	Low availability — 120 S Spalding	120 S Spalding is 1 slot(s) remaining for Friday, Jun 5 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/17/technicians	Manage Technicians	\N	f	\N	2026-06-04 04:00:27	2026-06-04 04:00:27
36	system	Low availability — 9301 Wilshire	9301 Wilshire is 1 slot(s) remaining for Monday, Jun 8 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/16/technicians	Manage Technicians	\N	f	\N	2026-06-04 04:00:27	2026-06-04 04:00:27
37	system	Low availability — Campus at Warner Center	Campus at Warner Center is 1 slot(s) remaining for Tuesday, Jun 9 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/15/technicians	Manage Technicians	\N	f	\N	2026-06-04 04:00:27	2026-06-04 04:00:27
38	system	Low availability — Beethoven	Beethoven is 1 slot(s) remaining for Tuesday, Jun 9 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/13/technicians	Manage Technicians	\N	f	\N	2026-06-04 04:00:27	2026-06-04 04:00:27
39	system	Low availability — 10900 Wilshire	10900 Wilshire is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/9/technicians	Manage Technicians	\N	f	\N	2026-06-04 18:00:07	2026-06-04 18:00:07
41	system	Low availability — 1640 S. Sepulveda	1640 S. Sepulveda is 1 slot(s) remaining for Tuesday, Jun 9 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/14/technicians	Manage Technicians	\N	f	\N	2026-06-05 05:00:07	2026-06-05 05:00:07
42	system	Low availability — Marina Towers	Marina Towers is 1 slot(s) remaining for Monday, Jun 8 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/12/technicians	Manage Technicians	\N	f	\N	2026-06-05 05:00:07	2026-06-05 05:00:07
43	system	Low availability — Water Garden	Water Garden is 1 slot(s) remaining for Tuesday, Jun 9 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/11/technicians	Manage Technicians	\N	f	\N	2026-06-05 05:00:07	2026-06-05 05:00:07
44	system	Low availability — The Brickyard	The Brickyard is 1 slot(s) remaining for Wednesday, Jun 10 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/10/technicians	Manage Technicians	\N	f	\N	2026-06-05 05:00:07	2026-06-05 05:00:07
45	system	Low availability — Collective P4	Collective P4 is 1 slot(s) remaining for Thursday, Jun 11 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/8/technicians	Manage Technicians	\N	f	\N	2026-06-05 05:00:07	2026-06-05 05:00:07
46	system	Low availability — Polestar Los Angeles	Polestar Los Angeles is 1 slot(s) remaining for Monday, Jun 8 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/7/technicians	Manage Technicians	\N	f	\N	2026-06-05 05:00:07	2026-06-05 05:00:07
47	system	Low availability — 888 N Douglas	888 N Douglas is 1 slot(s) remaining for Wednesday, Jun 10 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/4/technicians	Manage Technicians	\N	f	\N	2026-06-05 05:00:07	2026-06-05 05:00:07
48	system	Low availability — 9701 Wilshire	9701 Wilshire is 1 slot(s) remaining for Thursday, Jun 11 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/3/technicians	Manage Technicians	\N	f	\N	2026-06-05 05:00:07	2026-06-05 05:00:07
50	system	Low availability — 74 N Pasadena	74 N Pasadena is 1 slot(s) remaining for Wednesday, Jun 10 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-05 05:00:07	2026-06-05 05:00:07
51	system	Low availability — 120 S Spalding	120 S Spalding is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/17/technicians	Manage Technicians	\N	f	\N	2026-06-05 05:00:07	2026-06-05 05:00:07
52	system	Low availability — 9301 Wilshire	9301 Wilshire is 1 slot(s) remaining for Monday, Jun 8 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/16/technicians	Manage Technicians	\N	f	\N	2026-06-05 05:00:07	2026-06-05 05:00:07
53	system	Low availability — Campus at Warner Center	Campus at Warner Center is 1 slot(s) remaining for Tuesday, Jun 9 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/15/technicians	Manage Technicians	\N	f	\N	2026-06-05 05:00:07	2026-06-05 05:00:07
54	system	Low availability — Beethoven	Beethoven is 1 slot(s) remaining for Tuesday, Jun 9 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/13/technicians	Manage Technicians	\N	f	\N	2026-06-05 05:00:07	2026-06-05 05:00:07
55	system	Low availability — 10900 Wilshire	10900 Wilshire is 1 slot(s) remaining for Thursday, Jun 11 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/9/technicians	Manage Technicians	\N	f	\N	2026-06-05 19:00:06	2026-06-05 19:00:06
56	system	Low availability — 2601 / 2625 Alameda	2601 / 2625 Alameda is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/18/technicians	Manage Technicians	\N	f	\N	2026-06-05 19:00:06	2026-06-05 19:00:06
58	bookings	New booking #42584F53	Jose Campos booked Exterior Wash for a 2024 Toyota camry. Scheduled Jun 11 at 9:00 AM.	https://service.mypropertysos.com/admin/bookings?booking=206	View Booking	\N	f	\N	2026-06-06 03:37:02	2026-06-06 03:37:02
61	system	Low availability — 1640 S. Sepulveda	1640 S. Sepulveda is 1 slot(s) remaining for Tuesday, Jun 9 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/14/technicians	Manage Technicians	\N	f	\N	2026-06-06 05:00:10	2026-06-06 05:00:10
62	system	Low availability — Marina Towers	Marina Towers is 1 slot(s) remaining for Monday, Jun 8 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/12/technicians	Manage Technicians	\N	f	\N	2026-06-06 05:00:10	2026-06-06 05:00:10
64	system	Low availability — The Brickyard	The Brickyard is 1 slot(s) remaining for Wednesday, Jun 10 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/10/technicians	Manage Technicians	\N	f	\N	2026-06-06 05:00:10	2026-06-06 05:00:10
65	system	Low availability — Collective P4	Collective P4 is 1 slot(s) remaining for Thursday, Jun 11 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/8/technicians	Manage Technicians	\N	f	\N	2026-06-06 05:00:10	2026-06-06 05:00:10
66	system	Low availability — Polestar Los Angeles	Polestar Los Angeles is 1 slot(s) remaining for Monday, Jun 8 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/7/technicians	Manage Technicians	\N	f	\N	2026-06-06 05:00:10	2026-06-06 05:00:10
67	system	Low availability — 888 N Douglas	888 N Douglas is 1 slot(s) remaining for Wednesday, Jun 10 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/4/technicians	Manage Technicians	\N	f	\N	2026-06-06 05:00:10	2026-06-06 05:00:10
68	system	Low availability — 9701 Wilshire	9701 Wilshire is 1 slot(s) remaining for Thursday, Jun 11 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/3/technicians	Manage Technicians	\N	f	\N	2026-06-06 05:00:10	2026-06-06 05:00:10
69	system	Low availability — 6345 Balboa	6345 Balboa is 1 slot(s) remaining for Monday, Jun 8 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/2/technicians	Manage Technicians	\N	f	\N	2026-06-06 05:00:10	2026-06-06 05:00:10
70	system	Low availability — 74 N Pasadena	74 N Pasadena is 1 slot(s) remaining for Wednesday, Jun 10 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-06 05:00:10	2026-06-06 05:00:10
71	system	Low availability — 120 S Spalding	120 S Spalding is 1 slot(s) remaining for Friday, Jun 12 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/17/technicians	Manage Technicians	\N	f	\N	2026-06-06 05:00:10	2026-06-06 05:00:10
72	system	Low availability — 9301 Wilshire	9301 Wilshire is 1 slot(s) remaining for Monday, Jun 8 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/16/technicians	Manage Technicians	\N	f	\N	2026-06-06 05:00:10	2026-06-06 05:00:10
73	system	Low availability — Campus at Warner Center	Campus at Warner Center is 1 slot(s) remaining for Tuesday, Jun 9 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/15/technicians	Manage Technicians	\N	f	\N	2026-06-06 05:00:10	2026-06-06 05:00:10
74	system	Low availability — Beethoven	Beethoven is 1 slot(s) remaining for Tuesday, Jun 9 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/13/technicians	Manage Technicians	\N	f	\N	2026-06-06 05:00:10	2026-06-06 05:00:10
57	bookings	New booking #0043D877	Jose Campos booked Spray Wax for a 2024 Toyota camry. Scheduled Jun 11 at 9:00 AM.	https://service.mypropertysos.com/admin/bookings?booking=205	View Booking	\N	t	2026-06-07 00:08:13	2026-06-06 03:28:15	2026-06-07 00:08:13
60	bookings	New booking #D45679CA	Jose Campos booked Wax for a 2024 Toyota camry. Scheduled Jun 18 at 10:05 AM.	https://service.mypropertysos.com/admin/bookings?booking=208	View Booking	\N	t	2026-06-07 00:08:21	2026-06-06 03:41:20	2026-06-07 00:08:21
59	bookings	New booking #EED056D9	Jose Campos booked Car Wash for a 2024 Toyota camry. Scheduled Jun 11 at 9:50 AM.	https://service.mypropertysos.com/admin/bookings?booking=207	View Booking	\N	t	2026-06-07 00:10:23	2026-06-06 03:39:05	2026-06-07 00:10:23
75	system	Low availability — 10900 Wilshire	10900 Wilshire is fully booked for Thursday, Jun 11 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/9/technicians	Manage Technicians	\N	f	\N	2026-06-06 20:00:07	2026-06-06 20:00:07
76	system	Low availability — 2601 / 2625 Alameda	2601 / 2625 Alameda is 1 slot(s) remaining for Friday, Jun 12 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/18/technicians	Manage Technicians	\N	f	\N	2026-06-06 20:00:07	2026-06-06 20:00:07
63	system	Low availability — Water Garden	Water Garden is 1 slot(s) remaining for Tuesday, Jun 9 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/11/technicians	Manage Technicians	\N	t	2026-06-07 00:07:45	2026-06-06 05:00:10	2026-06-07 00:07:45
40	system	Low availability — 2601 / 2625 Alameda	2601 / 2625 Alameda is 1 slot(s) remaining for Friday, Jun 5 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/18/technicians	Manage Technicians	\N	t	2026-06-07 00:08:02	2026-06-04 18:00:07	2026-06-07 00:08:02
77	system	Low availability — Water Garden	Water Garden is 1 slot(s) remaining for Tuesday, Jun 9 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/11/technicians	Manage Technicians	\N	f	\N	2026-06-07 01:00:03	2026-06-07 01:00:03
78	system	Low availability — 1640 S. Sepulveda	1640 S. Sepulveda is 1 slot(s) remaining for Tuesday, Jun 9 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/14/technicians	Manage Technicians	\N	f	\N	2026-06-07 06:00:07	2026-06-07 06:00:07
79	system	Low availability — Marina Towers	Marina Towers is 1 slot(s) remaining for Monday, Jun 8 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/12/technicians	Manage Technicians	\N	f	\N	2026-06-07 06:00:07	2026-06-07 06:00:07
80	system	Low availability — The Brickyard	The Brickyard is 1 slot(s) remaining for Wednesday, Jun 10 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/10/technicians	Manage Technicians	\N	f	\N	2026-06-07 06:00:07	2026-06-07 06:00:07
81	system	Low availability — Collective P4	Collective P4 is 1 slot(s) remaining for Thursday, Jun 11 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/8/technicians	Manage Technicians	\N	f	\N	2026-06-07 06:00:07	2026-06-07 06:00:07
82	system	Low availability — Polestar Los Angeles	Polestar Los Angeles is 1 slot(s) remaining for Monday, Jun 8 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/7/technicians	Manage Technicians	\N	f	\N	2026-06-07 06:00:07	2026-06-07 06:00:07
83	system	Low availability — 888 N Douglas	888 N Douglas is 1 slot(s) remaining for Wednesday, Jun 10 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/4/technicians	Manage Technicians	\N	f	\N	2026-06-07 06:00:07	2026-06-07 06:00:07
84	system	Low availability — 9701 Wilshire	9701 Wilshire is 1 slot(s) remaining for Thursday, Jun 11 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/3/technicians	Manage Technicians	\N	f	\N	2026-06-07 06:00:07	2026-06-07 06:00:07
85	system	Low availability — 6345 Balboa	6345 Balboa is 1 slot(s) remaining for Monday, Jun 8 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/2/technicians	Manage Technicians	\N	f	\N	2026-06-07 06:00:07	2026-06-07 06:00:07
86	system	Low availability — 74 N Pasadena	74 N Pasadena is 1 slot(s) remaining for Wednesday, Jun 10 (9:00 AM–9:15 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-07 06:00:07	2026-06-07 06:00:07
87	system	Low availability — 120 S Spalding	120 S Spalding is 1 slot(s) remaining for Friday, Jun 12 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/17/technicians	Manage Technicians	\N	f	\N	2026-06-07 06:00:07	2026-06-07 06:00:07
88	system	Low availability — 9301 Wilshire	9301 Wilshire is 1 slot(s) remaining for Monday, Jun 8 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/16/technicians	Manage Technicians	\N	f	\N	2026-06-07 06:00:07	2026-06-07 06:00:07
89	system	Low availability — Campus at Warner Center	Campus at Warner Center is 1 slot(s) remaining for Tuesday, Jun 9 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/15/technicians	Manage Technicians	\N	f	\N	2026-06-07 06:00:07	2026-06-07 06:00:07
90	system	Low availability — Beethoven	Beethoven is 1 slot(s) remaining for Tuesday, Jun 9 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/13/technicians	Manage Technicians	\N	f	\N	2026-06-07 06:00:07	2026-06-07 06:00:07
91	bookings	New booking #664760AF	Jose Campos booked Spray Wax for a 2024 Toyota camry. Scheduled Jun 8 at 9:00 AM.	https://service.mypropertysos.com/admin/bookings?booking=209	View Booking	\N	f	\N	2026-06-07 14:48:48	2026-06-07 14:48:48
92	bookings	New booking #209D5A4C	Jose Campos booked Spray Wax for a 2024 Toyota Camry. Scheduled Jun 9 at 9:00 AM.	https://service.mypropertysos.com/admin/bookings?booking=210	View Booking	\N	f	\N	2026-06-07 14:53:43	2026-06-07 14:53:43
93	system	Low availability — 10900 Wilshire	10900 Wilshire is fully booked for Thursday, Jun 11 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/9/technicians	Manage Technicians	\N	f	\N	2026-06-07 21:00:06	2026-06-07 21:00:06
94	system	Low availability — 2601 / 2625 Alameda	2601 / 2625 Alameda is 1 slot(s) remaining for Friday, Jun 12 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/18/technicians	Manage Technicians	\N	f	\N	2026-06-07 21:00:07	2026-06-07 21:00:07
95	system	Low availability — Water Garden	Water Garden is 1 slot(s) remaining for Tuesday, Jun 9 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/11/technicians	Manage Technicians	\N	f	\N	2026-06-08 01:00:05	2026-06-08 01:00:05
96	bookings	New booking #3B7503DC	Jose Campos booked Spray Wax for a 2024 Toyota Camry. Scheduled Jun 9 at 9:00 AM.	https://service.mypropertysos.com/admin/bookings?booking=211	View Booking	\N	f	\N	2026-06-08 04:22:01	2026-06-08 04:22:01
97	system	Low availability — 1640 S. Sepulveda	1640 S. Sepulveda is fully booked for Tuesday, Jun 9 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/14/technicians	Manage Technicians	\N	f	\N	2026-06-08 07:00:07	2026-06-08 07:00:07
98	system	Low availability — Marina Towers	Marina Towers is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/12/technicians	Manage Technicians	\N	f	\N	2026-06-08 07:00:07	2026-06-08 07:00:07
99	system	Low availability — The Brickyard	The Brickyard is 1 slot(s) remaining for Wednesday, Jun 10 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/10/technicians	Manage Technicians	\N	f	\N	2026-06-08 07:00:07	2026-06-08 07:00:07
100	system	Low availability — Collective P4	Collective P4 is 1 slot(s) remaining for Thursday, Jun 11 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/8/technicians	Manage Technicians	\N	f	\N	2026-06-08 07:00:07	2026-06-08 07:00:07
101	system	Low availability — Polestar Los Angeles	Polestar Los Angeles is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/7/technicians	Manage Technicians	\N	f	\N	2026-06-08 07:00:07	2026-06-08 07:00:07
102	system	Low availability — 888 N Douglas	888 N Douglas is 1 slot(s) remaining for Wednesday, Jun 10 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/4/technicians	Manage Technicians	\N	f	\N	2026-06-08 07:00:07	2026-06-08 07:00:07
103	system	Low availability — 9701 Wilshire	9701 Wilshire is 1 slot(s) remaining for Thursday, Jun 11 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/3/technicians	Manage Technicians	\N	f	\N	2026-06-08 07:00:08	2026-06-08 07:00:08
104	system	Low availability — 6345 Balboa	6345 Balboa is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/2/technicians	Manage Technicians	\N	f	\N	2026-06-08 07:00:08	2026-06-08 07:00:08
105	system	Low availability — 74 N Pasadena	74 N Pasadena is 1 slot(s) remaining for Wednesday, Jun 10 (9:00 AM–9:15 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-08 07:00:08	2026-06-08 07:00:08
106	system	Low availability — 120 S Spalding	120 S Spalding is 1 slot(s) remaining for Friday, Jun 12 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/17/technicians	Manage Technicians	\N	f	\N	2026-06-08 07:00:08	2026-06-08 07:00:08
107	system	Low availability — 9301 Wilshire	9301 Wilshire is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/16/technicians	Manage Technicians	\N	f	\N	2026-06-08 07:00:08	2026-06-08 07:00:08
108	system	Low availability — Campus at Warner Center	Campus at Warner Center is 1 slot(s) remaining for Tuesday, Jun 9 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/15/technicians	Manage Technicians	\N	f	\N	2026-06-08 07:00:08	2026-06-08 07:00:08
109	system	Low availability — Beethoven	Beethoven is 1 slot(s) remaining for Tuesday, Jun 9 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/13/technicians	Manage Technicians	\N	f	\N	2026-06-08 07:00:08	2026-06-08 07:00:08
110	system	Low availability — 10900 Wilshire	10900 Wilshire is fully booked for Thursday, Jun 11 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/9/technicians	Manage Technicians	\N	f	\N	2026-06-08 22:00:04	2026-06-08 22:00:04
111	system	Low availability — 2601 / 2625 Alameda	2601 / 2625 Alameda is 1 slot(s) remaining for Friday, Jun 12 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/18/technicians	Manage Technicians	\N	f	\N	2026-06-08 22:00:04	2026-06-08 22:00:04
112	system	Low availability — Water Garden	Water Garden is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/11/technicians	Manage Technicians	\N	f	\N	2026-06-09 01:00:06	2026-06-09 01:00:06
113	system	Low availability — 1640 S. Sepulveda	1640 S. Sepulveda is fully booked for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/14/technicians	Manage Technicians	\N	f	\N	2026-06-09 08:00:03	2026-06-09 08:00:03
114	system	Low availability — Marina Towers	Marina Towers is 1 slot(s) remaining for Monday, Jun 15 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/12/technicians	Manage Technicians	\N	f	\N	2026-06-09 08:00:04	2026-06-09 08:00:04
115	system	Low availability — The Brickyard	The Brickyard is 1 slot(s) remaining for Wednesday, Jun 10 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/10/technicians	Manage Technicians	\N	f	\N	2026-06-09 08:00:04	2026-06-09 08:00:04
116	system	Low availability — Collective P4	Collective P4 is 1 slot(s) remaining for Thursday, Jun 11 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/8/technicians	Manage Technicians	\N	f	\N	2026-06-09 08:00:04	2026-06-09 08:00:04
117	system	Low availability — Polestar Los Angeles	Polestar Los Angeles is 1 slot(s) remaining for Monday, Jun 15 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/7/technicians	Manage Technicians	\N	f	\N	2026-06-09 08:00:04	2026-06-09 08:00:04
118	system	Low availability — 888 N Douglas	888 N Douglas is 1 slot(s) remaining for Wednesday, Jun 10 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/4/technicians	Manage Technicians	\N	f	\N	2026-06-09 08:00:04	2026-06-09 08:00:04
119	system	Low availability — 9701 Wilshire	9701 Wilshire is 1 slot(s) remaining for Thursday, Jun 11 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/3/technicians	Manage Technicians	\N	f	\N	2026-06-09 08:00:04	2026-06-09 08:00:04
120	system	Low availability — 6345 Balboa	6345 Balboa is 1 slot(s) remaining for Monday, Jun 15 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/2/technicians	Manage Technicians	\N	f	\N	2026-06-09 08:00:04	2026-06-09 08:00:04
121	system	Low availability — 74 N Pasadena	74 N Pasadena is 1 slot(s) remaining for Wednesday, Jun 10 (9:00 AM–9:15 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-09 08:00:04	2026-06-09 08:00:04
122	system	Low availability — 120 S Spalding	120 S Spalding is 1 slot(s) remaining for Friday, Jun 12 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/17/technicians	Manage Technicians	\N	f	\N	2026-06-09 08:00:04	2026-06-09 08:00:04
123	system	Low availability — 9301 Wilshire	9301 Wilshire is 1 slot(s) remaining for Monday, Jun 15 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/16/technicians	Manage Technicians	\N	f	\N	2026-06-09 08:00:04	2026-06-09 08:00:04
124	system	Low availability — Campus at Warner Center	Campus at Warner Center is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/15/technicians	Manage Technicians	\N	f	\N	2026-06-09 08:00:04	2026-06-09 08:00:04
125	system	Low availability — Beethoven	Beethoven is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/13/technicians	Manage Technicians	\N	f	\N	2026-06-09 08:00:04	2026-06-09 08:00:04
126	system	Low availability — 10900 Wilshire	10900 Wilshire is fully booked for Thursday, Jun 11 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/9/technicians	Manage Technicians	\N	f	\N	2026-06-09 22:00:06	2026-06-09 22:00:06
127	system	Low availability — 2601 / 2625 Alameda	2601 / 2625 Alameda is 1 slot(s) remaining for Friday, Jun 12 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/18/technicians	Manage Technicians	\N	f	\N	2026-06-09 22:00:06	2026-06-09 22:00:06
128	system	Low availability — Water Garden	Water Garden is 1 slot(s) remaining for Tuesday, Jun 16 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/11/technicians	Manage Technicians	\N	f	\N	2026-06-10 02:00:09	2026-06-10 02:00:09
129	system	Low availability — 1640 S. Sepulveda	1640 S. Sepulveda is 1 slot(s) remaining for Tuesday, Jun 16 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/14/technicians	Manage Technicians	\N	f	\N	2026-06-10 08:00:06	2026-06-10 08:00:06
130	system	Low availability — Marina Towers	Marina Towers is 1 slot(s) remaining for Monday, Jun 15 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/12/technicians	Manage Technicians	\N	f	\N	2026-06-10 08:00:06	2026-06-10 08:00:06
131	system	Low availability — The Brickyard	The Brickyard is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/10/technicians	Manage Technicians	\N	f	\N	2026-06-10 08:00:06	2026-06-10 08:00:06
132	system	Low availability — Collective P4	Collective P4 is 1 slot(s) remaining for Thursday, Jun 11 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/8/technicians	Manage Technicians	\N	f	\N	2026-06-10 08:00:06	2026-06-10 08:00:06
133	system	Low availability — Polestar Los Angeles	Polestar Los Angeles is 1 slot(s) remaining for Monday, Jun 15 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/7/technicians	Manage Technicians	\N	f	\N	2026-06-10 08:00:06	2026-06-10 08:00:06
134	system	Low availability — 888 N Douglas	888 N Douglas is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/4/technicians	Manage Technicians	\N	f	\N	2026-06-10 08:00:06	2026-06-10 08:00:06
135	system	Low availability — 9701 Wilshire	9701 Wilshire is 1 slot(s) remaining for Thursday, Jun 11 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/3/technicians	Manage Technicians	\N	f	\N	2026-06-10 08:00:06	2026-06-10 08:00:06
136	system	Low availability — 6345 Balboa	6345 Balboa is 1 slot(s) remaining for Monday, Jun 15 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/2/technicians	Manage Technicians	\N	f	\N	2026-06-10 08:00:06	2026-06-10 08:00:06
137	system	Low availability — 74 N Pasadena	74 N Pasadena is 1 slot(s) remaining for today (9:00 AM–9:15 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-10 08:00:06	2026-06-10 08:00:06
138	system	Low availability — 120 S Spalding	120 S Spalding is 1 slot(s) remaining for Friday, Jun 12 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/17/technicians	Manage Technicians	\N	f	\N	2026-06-10 08:00:06	2026-06-10 08:00:06
139	system	Low availability — 9301 Wilshire	9301 Wilshire is 1 slot(s) remaining for Monday, Jun 15 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/16/technicians	Manage Technicians	\N	f	\N	2026-06-10 08:00:06	2026-06-10 08:00:06
140	system	Low availability — Campus at Warner Center	Campus at Warner Center is 1 slot(s) remaining for Tuesday, Jun 16 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/15/technicians	Manage Technicians	\N	f	\N	2026-06-10 08:00:06	2026-06-10 08:00:06
141	system	Low availability — Beethoven	Beethoven is 1 slot(s) remaining for Tuesday, Jun 16 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/13/technicians	Manage Technicians	\N	f	\N	2026-06-10 08:00:06	2026-06-10 08:00:06
142	system	Low availability — 10900 Wilshire	10900 Wilshire is fully booked for Thursday, Jun 11 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/9/technicians	Manage Technicians	\N	f	\N	2026-06-10 22:00:07	2026-06-10 22:00:07
143	system	Low availability — 2601 / 2625 Alameda	2601 / 2625 Alameda is 1 slot(s) remaining for Friday, Jun 12 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/18/technicians	Manage Technicians	\N	f	\N	2026-06-10 22:00:07	2026-06-10 22:00:07
144	system	Low availability — Water Garden	Water Garden is 1 slot(s) remaining for Tuesday, Jun 16 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/11/technicians	Manage Technicians	\N	f	\N	2026-06-11 03:00:11	2026-06-11 03:00:11
145	system	Low availability — 1640 S. Sepulveda	1640 S. Sepulveda is 1 slot(s) remaining for Tuesday, Jun 16 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/14/technicians	Manage Technicians	\N	f	\N	2026-06-11 08:00:09	2026-06-11 08:00:09
146	system	Low availability — Marina Towers	Marina Towers is 1 slot(s) remaining for Monday, Jun 15 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/12/technicians	Manage Technicians	\N	f	\N	2026-06-11 08:00:10	2026-06-11 08:00:10
147	system	Low availability — The Brickyard	The Brickyard is 1 slot(s) remaining for Wednesday, Jun 17 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/10/technicians	Manage Technicians	\N	f	\N	2026-06-11 08:00:10	2026-06-11 08:00:10
148	system	Low availability — Collective P4	Collective P4 is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/8/technicians	Manage Technicians	\N	f	\N	2026-06-11 08:00:10	2026-06-11 08:00:10
149	system	Low availability — Polestar Los Angeles	Polestar Los Angeles is 1 slot(s) remaining for Monday, Jun 15 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/7/technicians	Manage Technicians	\N	f	\N	2026-06-11 08:00:10	2026-06-11 08:00:10
150	system	Low availability — 888 N Douglas	888 N Douglas is 1 slot(s) remaining for Wednesday, Jun 17 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/4/technicians	Manage Technicians	\N	f	\N	2026-06-11 08:00:10	2026-06-11 08:00:10
151	system	Low availability — 9701 Wilshire	9701 Wilshire is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/3/technicians	Manage Technicians	\N	f	\N	2026-06-11 08:00:10	2026-06-11 08:00:10
152	system	Low availability — 6345 Balboa	6345 Balboa is 1 slot(s) remaining for Monday, Jun 15 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/2/technicians	Manage Technicians	\N	f	\N	2026-06-11 08:00:10	2026-06-11 08:00:10
153	system	Low availability — 74 N Pasadena	74 N Pasadena is 1 slot(s) remaining for Wednesday, Jun 17 (9:00 AM–9:15 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-11 08:00:10	2026-06-11 08:00:10
154	system	Low availability — 120 S Spalding	120 S Spalding is 1 slot(s) remaining for Friday, Jun 12 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/17/technicians	Manage Technicians	\N	f	\N	2026-06-11 08:00:10	2026-06-11 08:00:10
155	system	Low availability — 9301 Wilshire	9301 Wilshire is 1 slot(s) remaining for Monday, Jun 15 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/16/technicians	Manage Technicians	\N	f	\N	2026-06-11 08:00:10	2026-06-11 08:00:10
156	system	Low availability — Campus at Warner Center	Campus at Warner Center is 1 slot(s) remaining for Tuesday, Jun 16 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/15/technicians	Manage Technicians	\N	f	\N	2026-06-11 08:00:10	2026-06-11 08:00:10
157	system	Low availability — Beethoven	Beethoven is 1 slot(s) remaining for Tuesday, Jun 16 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/13/technicians	Manage Technicians	\N	f	\N	2026-06-11 08:00:10	2026-06-11 08:00:10
158	system	Low availability — 10900 Wilshire	10900 Wilshire is fully booked for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/9/technicians	Manage Technicians	\N	f	\N	2026-06-11 23:00:09	2026-06-11 23:00:09
159	system	Low availability — 2601 / 2625 Alameda	2601 / 2625 Alameda is 1 slot(s) remaining for Friday, Jun 12 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/18/technicians	Manage Technicians	\N	f	\N	2026-06-11 23:00:09	2026-06-11 23:00:09
160	system	Low availability — Water Garden	Water Garden is 1 slot(s) remaining for Tuesday, Jun 16 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/11/technicians	Manage Technicians	\N	f	\N	2026-06-12 04:00:10	2026-06-12 04:00:10
161	system	Low availability — 1640 S. Sepulveda	1640 S. Sepulveda is 1 slot(s) remaining for Tuesday, Jun 16 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/14/technicians	Manage Technicians	\N	f	\N	2026-06-12 09:00:04	2026-06-12 09:00:04
162	system	Low availability — Marina Towers	Marina Towers is 1 slot(s) remaining for Monday, Jun 15 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/12/technicians	Manage Technicians	\N	f	\N	2026-06-12 09:00:04	2026-06-12 09:00:04
163	system	Low availability — The Brickyard	The Brickyard is 1 slot(s) remaining for Wednesday, Jun 17 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/10/technicians	Manage Technicians	\N	f	\N	2026-06-12 09:00:04	2026-06-12 09:00:04
164	system	Low availability — Collective P4	Collective P4 is 1 slot(s) remaining for Thursday, Jun 18 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/8/technicians	Manage Technicians	\N	f	\N	2026-06-12 09:00:04	2026-06-12 09:00:04
165	system	Low availability — Polestar Los Angeles	Polestar Los Angeles is 1 slot(s) remaining for Monday, Jun 15 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/7/technicians	Manage Technicians	\N	f	\N	2026-06-12 09:00:04	2026-06-12 09:00:04
166	system	Low availability — 888 N Douglas	888 N Douglas is 1 slot(s) remaining for Wednesday, Jun 17 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/4/technicians	Manage Technicians	\N	f	\N	2026-06-12 09:00:04	2026-06-12 09:00:04
167	system	Low availability — 9701 Wilshire	9701 Wilshire is 1 slot(s) remaining for Thursday, Jun 18 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/3/technicians	Manage Technicians	\N	f	\N	2026-06-12 09:00:04	2026-06-12 09:00:04
168	system	Low availability — 6345 Balboa	6345 Balboa is 1 slot(s) remaining for Monday, Jun 15 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/2/technicians	Manage Technicians	\N	f	\N	2026-06-12 09:00:04	2026-06-12 09:00:04
169	system	Low availability — 74 N Pasadena	74 N Pasadena is 1 slot(s) remaining for Wednesday, Jun 17 (9:00 AM–9:15 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-12 09:00:04	2026-06-12 09:00:04
170	system	Low availability — 120 S Spalding	120 S Spalding is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/17/technicians	Manage Technicians	\N	f	\N	2026-06-12 09:00:04	2026-06-12 09:00:04
171	system	Low availability — 9301 Wilshire	9301 Wilshire is 1 slot(s) remaining for Monday, Jun 15 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/16/technicians	Manage Technicians	\N	f	\N	2026-06-12 09:00:04	2026-06-12 09:00:04
172	system	Low availability — Campus at Warner Center	Campus at Warner Center is 1 slot(s) remaining for Tuesday, Jun 16 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/15/technicians	Manage Technicians	\N	f	\N	2026-06-12 09:00:04	2026-06-12 09:00:04
173	system	Low availability — Beethoven	Beethoven is 1 slot(s) remaining for Tuesday, Jun 16 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/13/technicians	Manage Technicians	\N	f	\N	2026-06-12 09:00:04	2026-06-12 09:00:04
174	system	Low availability — 10900 Wilshire	10900 Wilshire is fully booked for Thursday, Jun 18 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/9/technicians	Manage Technicians	\N	f	\N	2026-06-13 00:00:10	2026-06-13 00:00:10
175	system	Low availability — 2601 / 2625 Alameda	2601 / 2625 Alameda is 1 slot(s) remaining for Friday, Jun 19 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/18/technicians	Manage Technicians	\N	f	\N	2026-06-13 00:00:10	2026-06-13 00:00:10
176	system	Low availability — Water Garden	Water Garden is 1 slot(s) remaining for Tuesday, Jun 16 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/11/technicians	Manage Technicians	\N	f	\N	2026-06-13 05:00:06	2026-06-13 05:00:06
177	system	Low availability — 1640 S. Sepulveda	1640 S. Sepulveda is 1 slot(s) remaining for Tuesday, Jun 16 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/14/technicians	Manage Technicians	\N	f	\N	2026-06-13 09:00:06	2026-06-13 09:00:06
178	system	Low availability — Marina Towers	Marina Towers is 1 slot(s) remaining for Monday, Jun 15 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/12/technicians	Manage Technicians	\N	f	\N	2026-06-13 09:00:06	2026-06-13 09:00:06
179	system	Low availability — The Brickyard	The Brickyard is 1 slot(s) remaining for Wednesday, Jun 17 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/10/technicians	Manage Technicians	\N	f	\N	2026-06-13 09:00:06	2026-06-13 09:00:06
180	system	Low availability — Collective P4	Collective P4 is 1 slot(s) remaining for Thursday, Jun 18 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/8/technicians	Manage Technicians	\N	f	\N	2026-06-13 09:00:06	2026-06-13 09:00:06
181	system	Low availability — Polestar Los Angeles	Polestar Los Angeles is 1 slot(s) remaining for Monday, Jun 15 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/7/technicians	Manage Technicians	\N	f	\N	2026-06-13 09:00:06	2026-06-13 09:00:06
182	system	Low availability — 888 N Douglas	888 N Douglas is 1 slot(s) remaining for Wednesday, Jun 17 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/4/technicians	Manage Technicians	\N	f	\N	2026-06-13 09:00:06	2026-06-13 09:00:06
183	system	Low availability — 9701 Wilshire	9701 Wilshire is 1 slot(s) remaining for Thursday, Jun 18 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/3/technicians	Manage Technicians	\N	f	\N	2026-06-13 09:00:06	2026-06-13 09:00:06
184	system	Low availability — 6345 Balboa	6345 Balboa is 1 slot(s) remaining for Monday, Jun 15 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/2/technicians	Manage Technicians	\N	f	\N	2026-06-13 09:00:06	2026-06-13 09:00:06
185	system	Low availability — 74 N Pasadena	74 N Pasadena is 1 slot(s) remaining for Wednesday, Jun 17 (9:00 AM–9:15 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-13 09:00:06	2026-06-13 09:00:06
186	system	Low availability — 120 S Spalding	120 S Spalding is 1 slot(s) remaining for Friday, Jun 19 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/17/technicians	Manage Technicians	\N	f	\N	2026-06-13 09:00:06	2026-06-13 09:00:06
187	system	Low availability — 9301 Wilshire	9301 Wilshire is 1 slot(s) remaining for Monday, Jun 15 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/16/technicians	Manage Technicians	\N	f	\N	2026-06-13 09:00:06	2026-06-13 09:00:06
188	system	Low availability — Campus at Warner Center	Campus at Warner Center is 1 slot(s) remaining for Tuesday, Jun 16 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/15/technicians	Manage Technicians	\N	f	\N	2026-06-13 09:00:06	2026-06-13 09:00:06
189	system	Low availability — Beethoven	Beethoven is 1 slot(s) remaining for Tuesday, Jun 16 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/13/technicians	Manage Technicians	\N	f	\N	2026-06-13 09:00:06	2026-06-13 09:00:06
190	system	Low availability — 10900 Wilshire	10900 Wilshire is fully booked for Thursday, Jun 18 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/9/technicians	Manage Technicians	\N	f	\N	2026-06-14 01:00:07	2026-06-14 01:00:07
191	system	Low availability — 2601 / 2625 Alameda	2601 / 2625 Alameda is 1 slot(s) remaining for Friday, Jun 19 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/18/technicians	Manage Technicians	\N	f	\N	2026-06-14 01:00:07	2026-06-14 01:00:07
192	system	Low availability — Water Garden	Water Garden is 1 slot(s) remaining for Tuesday, Jun 16 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/11/technicians	Manage Technicians	\N	f	\N	2026-06-14 05:00:09	2026-06-14 05:00:09
193	system	Low availability — 1640 S. Sepulveda	1640 S. Sepulveda is 1 slot(s) remaining for Tuesday, Jun 16 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/14/technicians	Manage Technicians	\N	f	\N	2026-06-14 10:00:13	2026-06-14 10:00:13
194	system	Low availability — Marina Towers	Marina Towers is 1 slot(s) remaining for Monday, Jun 15 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/12/technicians	Manage Technicians	\N	f	\N	2026-06-14 10:00:13	2026-06-14 10:00:13
195	system	Low availability — The Brickyard	The Brickyard is 1 slot(s) remaining for Wednesday, Jun 17 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/10/technicians	Manage Technicians	\N	f	\N	2026-06-14 10:00:13	2026-06-14 10:00:13
196	system	Low availability — Collective P4	Collective P4 is 1 slot(s) remaining for Thursday, Jun 18 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/8/technicians	Manage Technicians	\N	f	\N	2026-06-14 10:00:13	2026-06-14 10:00:13
197	system	Low availability — Polestar Los Angeles	Polestar Los Angeles is 1 slot(s) remaining for Monday, Jun 15 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/7/technicians	Manage Technicians	\N	f	\N	2026-06-14 10:00:13	2026-06-14 10:00:13
198	system	Low availability — 888 N Douglas	888 N Douglas is 1 slot(s) remaining for Wednesday, Jun 17 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/4/technicians	Manage Technicians	\N	f	\N	2026-06-14 10:00:13	2026-06-14 10:00:13
199	system	Low availability — 9701 Wilshire	9701 Wilshire is 1 slot(s) remaining for Thursday, Jun 18 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/3/technicians	Manage Technicians	\N	f	\N	2026-06-14 10:00:13	2026-06-14 10:00:13
200	system	Low availability — 6345 Balboa	6345 Balboa is 1 slot(s) remaining for Monday, Jun 15 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/2/technicians	Manage Technicians	\N	f	\N	2026-06-14 10:00:13	2026-06-14 10:00:13
201	system	Low availability — 74 N Pasadena	74 N Pasadena is 1 slot(s) remaining for Wednesday, Jun 17 (9:00 AM–9:15 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-14 10:00:13	2026-06-14 10:00:13
202	system	Low availability — 120 S Spalding	120 S Spalding is 1 slot(s) remaining for Friday, Jun 19 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/17/technicians	Manage Technicians	\N	f	\N	2026-06-14 10:00:13	2026-06-14 10:00:13
203	system	Low availability — 9301 Wilshire	9301 Wilshire is 1 slot(s) remaining for Monday, Jun 15 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/16/technicians	Manage Technicians	\N	f	\N	2026-06-14 10:00:13	2026-06-14 10:00:13
204	system	Low availability — Campus at Warner Center	Campus at Warner Center is 1 slot(s) remaining for Tuesday, Jun 16 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/15/technicians	Manage Technicians	\N	f	\N	2026-06-14 10:00:13	2026-06-14 10:00:13
205	system	Low availability — Beethoven	Beethoven is 1 slot(s) remaining for Tuesday, Jun 16 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/13/technicians	Manage Technicians	\N	f	\N	2026-06-14 10:00:13	2026-06-14 10:00:13
206	system	Low availability — 10900 Wilshire	10900 Wilshire is fully booked for Thursday, Jun 18 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/9/technicians	Manage Technicians	\N	f	\N	2026-06-15 02:00:08	2026-06-15 02:00:08
207	system	Low availability — 2601 / 2625 Alameda	2601 / 2625 Alameda is 1 slot(s) remaining for Friday, Jun 19 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/18/technicians	Manage Technicians	\N	f	\N	2026-06-15 02:00:08	2026-06-15 02:00:08
208	system	Low availability — Water Garden	Water Garden is 1 slot(s) remaining for Tuesday, Jun 16 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/11/technicians	Manage Technicians	\N	f	\N	2026-06-15 06:00:06	2026-06-15 06:00:06
209	system	Low availability — 1640 S. Sepulveda	1640 S. Sepulveda is 1 slot(s) remaining for Tuesday, Jun 16 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/14/technicians	Manage Technicians	\N	f	\N	2026-06-15 11:00:09	2026-06-15 11:00:09
210	system	Low availability — Marina Towers	Marina Towers is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/12/technicians	Manage Technicians	\N	f	\N	2026-06-15 11:00:09	2026-06-15 11:00:09
211	system	Low availability — The Brickyard	The Brickyard is 1 slot(s) remaining for Wednesday, Jun 17 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/10/technicians	Manage Technicians	\N	f	\N	2026-06-15 11:00:09	2026-06-15 11:00:09
212	system	Low availability — Collective P4	Collective P4 is 1 slot(s) remaining for Thursday, Jun 18 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/8/technicians	Manage Technicians	\N	f	\N	2026-06-15 11:00:09	2026-06-15 11:00:09
213	system	Low availability — Polestar Los Angeles	Polestar Los Angeles is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/7/technicians	Manage Technicians	\N	f	\N	2026-06-15 11:00:09	2026-06-15 11:00:09
214	system	Low availability — 888 N Douglas	888 N Douglas is 1 slot(s) remaining for Wednesday, Jun 17 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/4/technicians	Manage Technicians	\N	f	\N	2026-06-15 11:00:09	2026-06-15 11:00:09
215	system	Low availability — 9701 Wilshire	9701 Wilshire is 1 slot(s) remaining for Thursday, Jun 18 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/3/technicians	Manage Technicians	\N	f	\N	2026-06-15 11:00:09	2026-06-15 11:00:09
216	system	Low availability — 6345 Balboa	6345 Balboa is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/2/technicians	Manage Technicians	\N	f	\N	2026-06-15 11:00:09	2026-06-15 11:00:09
217	system	Low availability — 74 N Pasadena	74 N Pasadena is 1 slot(s) remaining for Wednesday, Jun 17 (9:00 AM–9:15 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-15 11:00:09	2026-06-15 11:00:09
218	system	Low availability — 120 S Spalding	120 S Spalding is 1 slot(s) remaining for Friday, Jun 19 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/17/technicians	Manage Technicians	\N	f	\N	2026-06-15 11:00:09	2026-06-15 11:00:09
219	system	Low availability — 9301 Wilshire	9301 Wilshire is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/16/technicians	Manage Technicians	\N	f	\N	2026-06-15 11:00:09	2026-06-15 11:00:09
220	system	Low availability — Campus at Warner Center	Campus at Warner Center is 1 slot(s) remaining for Tuesday, Jun 16 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/15/technicians	Manage Technicians	\N	f	\N	2026-06-15 11:00:09	2026-06-15 11:00:09
221	system	Low availability — Beethoven	Beethoven is 1 slot(s) remaining for Tuesday, Jun 16 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/13/technicians	Manage Technicians	\N	f	\N	2026-06-15 11:00:09	2026-06-15 11:00:09
222	system	Low availability — 10900 Wilshire	10900 Wilshire is fully booked for Thursday, Jun 18 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/9/technicians	Manage Technicians	\N	f	\N	2026-06-16 02:00:09	2026-06-16 02:00:09
223	system	Low availability — 2601 / 2625 Alameda	2601 / 2625 Alameda is 1 slot(s) remaining for Friday, Jun 19 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/18/technicians	Manage Technicians	\N	f	\N	2026-06-16 02:00:09	2026-06-16 02:00:09
224	bookings	New booking #7B1B558B	Jose Campos booked Spray Wax for a 2024 Toyota Camry. Scheduled Jun 22 at 9:00 AM.	https://service.mypropertysos.com/admin/bookings?booking=212	View Booking	\N	f	\N	2026-06-16 05:56:12	2026-06-16 05:56:12
225	system	Low availability — 1640 S. Sepulveda	1640 S. Sepulveda is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/14/technicians	Manage Technicians	\N	f	\N	2026-06-16 12:00:07	2026-06-16 12:00:07
226	system	Low availability — Marina Towers	Marina Towers is 1 slot(s) remaining for Monday, Jun 22 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/12/technicians	Manage Technicians	\N	f	\N	2026-06-16 12:00:07	2026-06-16 12:00:07
227	system	Low availability — The Brickyard	The Brickyard is 1 slot(s) remaining for Wednesday, Jun 17 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/10/technicians	Manage Technicians	\N	f	\N	2026-06-16 12:00:07	2026-06-16 12:00:07
228	system	Low availability — Collective P4	Collective P4 is 1 slot(s) remaining for Thursday, Jun 18 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/8/technicians	Manage Technicians	\N	f	\N	2026-06-16 12:00:07	2026-06-16 12:00:07
229	system	Low availability — Polestar Los Angeles	Polestar Los Angeles is 1 slot(s) remaining for Monday, Jun 22 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/7/technicians	Manage Technicians	\N	f	\N	2026-06-16 12:00:07	2026-06-16 12:00:07
230	system	Low availability — 888 N Douglas	888 N Douglas is 1 slot(s) remaining for Wednesday, Jun 17 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/4/technicians	Manage Technicians	\N	f	\N	2026-06-16 12:00:07	2026-06-16 12:00:07
231	system	Low availability — 9701 Wilshire	9701 Wilshire is 1 slot(s) remaining for Thursday, Jun 18 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/3/technicians	Manage Technicians	\N	f	\N	2026-06-16 12:00:07	2026-06-16 12:00:07
232	system	Low availability — 6345 Balboa	6345 Balboa is fully booked for Monday, Jun 22 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/2/technicians	Manage Technicians	\N	f	\N	2026-06-16 12:00:07	2026-06-16 12:00:07
233	system	Low availability — 74 N Pasadena	74 N Pasadena is 1 slot(s) remaining for Wednesday, Jun 17 (9:00 AM–9:15 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-16 12:00:07	2026-06-16 12:00:07
234	system	Low availability — 120 S Spalding	120 S Spalding is 1 slot(s) remaining for Friday, Jun 19 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/17/technicians	Manage Technicians	\N	f	\N	2026-06-16 12:00:07	2026-06-16 12:00:07
235	system	Low availability — 9301 Wilshire	9301 Wilshire is 1 slot(s) remaining for Monday, Jun 22 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/16/technicians	Manage Technicians	\N	f	\N	2026-06-16 12:00:07	2026-06-16 12:00:07
236	system	Low availability — Campus at Warner Center	Campus at Warner Center is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/15/technicians	Manage Technicians	\N	f	\N	2026-06-16 12:00:07	2026-06-16 12:00:07
237	system	Low availability — Beethoven	Beethoven is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/13/technicians	Manage Technicians	\N	f	\N	2026-06-16 12:00:07	2026-06-16 12:00:07
238	bookings	New booking #68F866CE	Jose Campos booked Spray Wax for a 2024 Toyota Camry. Scheduled Jun 22 at 9:30 AM.	https://service.mypropertysos.com/admin/bookings?booking=213	View Booking	\N	f	\N	2026-06-16 15:01:22	2026-06-16 15:01:22
239	bookings	New booking #92CFAB79	Jose Campos booked Spray Wax for a 2024 Toyota Camry. Scheduled Jun 18 at 9:00 AM.	https://service.mypropertysos.com/admin/bookings?booking=214	View Booking	\N	f	\N	2026-06-16 22:34:08	2026-06-16 22:34:08
240	system	Low availability — 6345 Balboa	6345 Balboa is 1 slot(s) remaining for Monday, Jun 22 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/2/technicians	Manage Technicians	\N	f	\N	2026-06-17 13:00:06	2026-06-17 13:00:06
241	system	Low availability — 74 N Pasadena	74 N Pasadena is 1 slot(s) remaining for today (9:00 AM–9:15 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-17 13:00:06	2026-06-17 13:00:06
242	system	Low availability — Campus at Warner Center	Campus at Warner Center is 1 slot(s) remaining for Thursday, Jun 18 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/15/technicians	Manage Technicians	\N	f	\N	2026-06-17 13:00:06	2026-06-17 13:00:06
243	bookings	New booking #273680DA	Jose Campos booked Spray Wax for a 2024 Toyota Camry. Scheduled Jun 18 at 11:15 AM.	https://service.mypropertysos.com/admin/bookings?booking=215	View Booking	\N	f	\N	2026-06-18 03:38:58	2026-06-18 03:38:58
244	system	Low availability — 1640 S. Sepulveda	1640 S. Sepulveda is 1 slot(s) remaining for Tuesday, Jun 23 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/14/technicians	Manage Technicians	\N	f	\N	2026-06-18 04:00:10	2026-06-18 04:00:10
245	system	Low availability — Marina Towers	Marina Towers is 1 slot(s) remaining for Monday, Jun 22 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/12/technicians	Manage Technicians	\N	f	\N	2026-06-18 04:00:10	2026-06-18 04:00:10
246	system	Low availability — 10900 Wilshire	10900 Wilshire is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/9/technicians	Manage Technicians	\N	f	\N	2026-06-18 04:00:10	2026-06-18 04:00:10
247	system	Low availability — Collective P4	Collective P4 is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/8/technicians	Manage Technicians	\N	f	\N	2026-06-18 04:00:10	2026-06-18 04:00:10
248	system	Low availability — Polestar Los Angeles	Polestar Los Angeles is 1 slot(s) remaining for Monday, Jun 22 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/7/technicians	Manage Technicians	\N	f	\N	2026-06-18 04:00:10	2026-06-18 04:00:10
249	system	Low availability — 888 N Douglas	888 N Douglas is 1 slot(s) remaining for Wednesday, Jun 24 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/4/technicians	Manage Technicians	\N	f	\N	2026-06-18 04:00:10	2026-06-18 04:00:10
250	system	Low availability — 9701 Wilshire	9701 Wilshire is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/3/technicians	Manage Technicians	\N	f	\N	2026-06-18 04:00:10	2026-06-18 04:00:10
251	system	Low availability — 2601 / 2625 Alameda	2601 / 2625 Alameda is 1 slot(s) remaining for Friday, Jun 19 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/18/technicians	Manage Technicians	\N	f	\N	2026-06-18 04:00:11	2026-06-18 04:00:11
252	system	Low availability — 120 S Spalding	120 S Spalding is 1 slot(s) remaining for Friday, Jun 19 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/17/technicians	Manage Technicians	\N	f	\N	2026-06-18 04:00:11	2026-06-18 04:00:11
253	system	Low availability — 9301 Wilshire	9301 Wilshire is 1 slot(s) remaining for Monday, Jun 22 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/16/technicians	Manage Technicians	\N	f	\N	2026-06-18 04:00:11	2026-06-18 04:00:11
254	bookings	New booking #58C8689E	Juan booked Spray Wax for a 2020 Toyota Tacoma. Scheduled Jun 18 at 10:00 AM.	https://service.mypropertysos.com/admin/bookings?booking=216	View Booking	\N	f	\N	2026-06-18 04:06:15	2026-06-18 04:06:15
256	system	Low availability — Beethoven	Beethoven is 1 slot(s) remaining for Tuesday, Jun 23 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/13/technicians	Manage Technicians	\N	f	\N	2026-06-18 05:00:04	2026-06-18 05:00:04
257	system	Low availability — 6345 Balboa	6345 Balboa is fully booked for Monday, Jun 22 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/2/technicians	Manage Technicians	\N	f	\N	2026-06-18 14:00:12	2026-06-18 14:00:12
258	system	Low availability — 74 N Pasadena	74 N Pasadena is fully booked for Wednesday, Jun 24 (9:00 AM–9:15 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-18 14:00:12	2026-06-18 14:00:12
259	system	Low availability — Campus at Warner Center	Campus at Warner Center is fully booked for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/15/technicians	Manage Technicians	\N	f	\N	2026-06-18 14:00:12	2026-06-18 14:00:12
260	system	Low availability — 1640 S. Sepulveda	1640 S. Sepulveda is 1 slot(s) remaining for Tuesday, Jun 23 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/14/technicians	Manage Technicians	\N	f	\N	2026-06-19 05:00:04	2026-06-19 05:00:04
261	system	Low availability — Marina Towers	Marina Towers is 1 slot(s) remaining for Monday, Jun 22 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/12/technicians	Manage Technicians	\N	f	\N	2026-06-19 05:00:04	2026-06-19 05:00:04
262	system	Low availability — Collective P4	Collective P4 is 1 slot(s) remaining for Thursday, Jun 25 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/8/technicians	Manage Technicians	\N	f	\N	2026-06-19 05:00:04	2026-06-19 05:00:04
263	system	Low availability — Polestar Los Angeles	Polestar Los Angeles is 1 slot(s) remaining for Monday, Jun 22 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/7/technicians	Manage Technicians	\N	f	\N	2026-06-19 05:00:04	2026-06-19 05:00:04
264	system	Low availability — 888 N Douglas	888 N Douglas is 1 slot(s) remaining for Wednesday, Jun 24 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/4/technicians	Manage Technicians	\N	f	\N	2026-06-19 05:00:04	2026-06-19 05:00:04
265	system	Low availability — 9701 Wilshire	9701 Wilshire is 1 slot(s) remaining for Thursday, Jun 25 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/3/technicians	Manage Technicians	\N	f	\N	2026-06-19 05:00:04	2026-06-19 05:00:04
266	system	Low availability — 2601 / 2625 Alameda	2601 / 2625 Alameda is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/18/technicians	Manage Technicians	\N	f	\N	2026-06-19 05:00:04	2026-06-19 05:00:04
267	system	Low availability — 120 S Spalding	120 S Spalding is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/17/technicians	Manage Technicians	\N	f	\N	2026-06-19 05:00:04	2026-06-19 05:00:04
268	system	Low availability — 9301 Wilshire	9301 Wilshire is 1 slot(s) remaining for Monday, Jun 22 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/16/technicians	Manage Technicians	\N	f	\N	2026-06-19 05:00:04	2026-06-19 05:00:04
269	system	Low availability — Beethoven	Beethoven is 1 slot(s) remaining for Tuesday, Jun 23 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/13/technicians	Manage Technicians	\N	f	\N	2026-06-19 06:00:06	2026-06-19 06:00:06
255	bookings	New booking #473C1E32	Juan booked Spray Wax for a 2005 Chevy Truck. Scheduled Jun 23 at 9:00 AM.	https://service.mypropertysos.com/admin/bookings?booking=217	View Booking	\N	t	2026-06-19 08:37:37	2026-06-18 04:12:48	2026-06-19 08:37:37
270	system	Low availability — 6345 Balboa	6345 Balboa is fully booked for Monday, Jun 22 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/2/technicians	Manage Technicians	\N	f	\N	2026-06-19 15:00:06	2026-06-19 15:00:06
271	system	Low availability — 74 N Pasadena	74 N Pasadena is fully booked for Wednesday, Jun 24 (9:00 AM–9:15 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-19 15:00:06	2026-06-19 15:00:06
272	system	Low availability — 1640 S. Sepulveda	1640 S. Sepulveda is 1 slot(s) remaining for Tuesday, Jun 23 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/14/technicians	Manage Technicians	\N	f	\N	2026-06-20 05:00:12	2026-06-20 05:00:12
273	system	Low availability — Marina Towers	Marina Towers is 1 slot(s) remaining for Monday, Jun 22 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/12/technicians	Manage Technicians	\N	f	\N	2026-06-20 05:00:12	2026-06-20 05:00:12
274	system	Low availability — Collective P4	Collective P4 is 1 slot(s) remaining for Thursday, Jun 25 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/8/technicians	Manage Technicians	\N	f	\N	2026-06-20 05:00:12	2026-06-20 05:00:12
275	system	Low availability — Polestar Los Angeles	Polestar Los Angeles is 1 slot(s) remaining for Monday, Jun 22 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/7/technicians	Manage Technicians	\N	f	\N	2026-06-20 05:00:12	2026-06-20 05:00:12
276	system	Low availability — 888 N Douglas	888 N Douglas is 1 slot(s) remaining for Wednesday, Jun 24 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/4/technicians	Manage Technicians	\N	f	\N	2026-06-20 05:00:12	2026-06-20 05:00:12
277	system	Low availability — 9701 Wilshire	9701 Wilshire is 1 slot(s) remaining for Thursday, Jun 25 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/3/technicians	Manage Technicians	\N	f	\N	2026-06-20 05:00:12	2026-06-20 05:00:12
278	system	Low availability — 2601 / 2625 Alameda	2601 / 2625 Alameda is 1 slot(s) remaining for Friday, Jun 26 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/18/technicians	Manage Technicians	\N	f	\N	2026-06-20 05:00:12	2026-06-20 05:00:12
279	system	Low availability — 120 S Spalding	120 S Spalding is 1 slot(s) remaining for Friday, Jun 26 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/17/technicians	Manage Technicians	\N	f	\N	2026-06-20 05:00:12	2026-06-20 05:00:12
280	system	Low availability — 9301 Wilshire	9301 Wilshire is 1 slot(s) remaining for Monday, Jun 22 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/16/technicians	Manage Technicians	\N	f	\N	2026-06-20 05:00:12	2026-06-20 05:00:12
281	system	Low availability — Beethoven	Beethoven is 1 slot(s) remaining for Tuesday, Jun 23 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/13/technicians	Manage Technicians	\N	f	\N	2026-06-20 06:00:07	2026-06-20 06:00:07
282	system	Low availability — 6345 Balboa	6345 Balboa is fully booked for Monday, Jun 22 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/2/technicians	Manage Technicians	\N	f	\N	2026-06-20 15:00:09	2026-06-20 15:00:09
283	system	Low availability — 74 N Pasadena	74 N Pasadena is fully booked for Wednesday, Jun 24 (9:00 AM–9:15 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-20 15:00:09	2026-06-20 15:00:09
284	system	Low availability — 1640 S. Sepulveda	1640 S. Sepulveda is 1 slot(s) remaining for Tuesday, Jun 23 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/14/technicians	Manage Technicians	\N	f	\N	2026-06-21 06:00:05	2026-06-21 06:00:05
285	system	Low availability — Marina Towers	Marina Towers is 1 slot(s) remaining for Monday, Jun 22 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/12/technicians	Manage Technicians	\N	f	\N	2026-06-21 06:00:05	2026-06-21 06:00:05
286	system	Low availability — Collective P4	Collective P4 is 1 slot(s) remaining for Thursday, Jun 25 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/8/technicians	Manage Technicians	\N	f	\N	2026-06-21 06:00:05	2026-06-21 06:00:05
287	system	Low availability — Polestar Los Angeles	Polestar Los Angeles is 1 slot(s) remaining for Monday, Jun 22 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/7/technicians	Manage Technicians	\N	f	\N	2026-06-21 06:00:05	2026-06-21 06:00:05
288	system	Low availability — 888 N Douglas	888 N Douglas is 1 slot(s) remaining for Wednesday, Jun 24 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/4/technicians	Manage Technicians	\N	f	\N	2026-06-21 06:00:05	2026-06-21 06:00:05
289	system	Low availability — 9701 Wilshire	9701 Wilshire is 1 slot(s) remaining for Thursday, Jun 25 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/3/technicians	Manage Technicians	\N	f	\N	2026-06-21 06:00:05	2026-06-21 06:00:05
290	system	Low availability — 2601 / 2625 Alameda	2601 / 2625 Alameda is 1 slot(s) remaining for Friday, Jun 26 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/18/technicians	Manage Technicians	\N	f	\N	2026-06-21 06:00:05	2026-06-21 06:00:05
291	system	Low availability — 120 S Spalding	120 S Spalding is 1 slot(s) remaining for Friday, Jun 26 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/17/technicians	Manage Technicians	\N	f	\N	2026-06-21 06:00:05	2026-06-21 06:00:05
292	system	Low availability — 9301 Wilshire	9301 Wilshire is 1 slot(s) remaining for Monday, Jun 22 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/16/technicians	Manage Technicians	\N	f	\N	2026-06-21 06:00:05	2026-06-21 06:00:05
293	system	Low availability — Beethoven	Beethoven is 1 slot(s) remaining for Tuesday, Jun 23 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/13/technicians	Manage Technicians	\N	f	\N	2026-06-21 07:00:11	2026-06-21 07:00:11
294	system	Low availability — 6345 Balboa	6345 Balboa is fully booked for Monday, Jun 22 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/2/technicians	Manage Technicians	\N	f	\N	2026-06-21 16:00:03	2026-06-21 16:00:03
295	system	Low availability — 74 N Pasadena	74 N Pasadena is fully booked for Wednesday, Jun 24 (9:00 AM–9:15 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-21 16:00:04	2026-06-21 16:00:04
296	system	Low availability — 1640 S. Sepulveda	1640 S. Sepulveda is 1 slot(s) remaining for Tuesday, Jun 23 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/14/technicians	Manage Technicians	\N	f	\N	2026-06-22 07:00:04	2026-06-22 07:00:04
297	system	Low availability — Marina Towers	Marina Towers is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/12/technicians	Manage Technicians	\N	f	\N	2026-06-22 07:00:04	2026-06-22 07:00:04
298	system	Low availability — Collective P4	Collective P4 is 1 slot(s) remaining for Thursday, Jun 25 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/8/technicians	Manage Technicians	\N	f	\N	2026-06-22 07:00:04	2026-06-22 07:00:04
299	system	Low availability — Polestar Los Angeles	Polestar Los Angeles is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/7/technicians	Manage Technicians	\N	f	\N	2026-06-22 07:00:04	2026-06-22 07:00:04
300	system	Low availability — 888 N Douglas	888 N Douglas is 1 slot(s) remaining for Wednesday, Jun 24 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/4/technicians	Manage Technicians	\N	f	\N	2026-06-22 07:00:04	2026-06-22 07:00:04
301	system	Low availability — 9701 Wilshire	9701 Wilshire is 1 slot(s) remaining for Thursday, Jun 25 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/3/technicians	Manage Technicians	\N	f	\N	2026-06-22 07:00:04	2026-06-22 07:00:04
302	system	Low availability — 2601 / 2625 Alameda	2601 / 2625 Alameda is 1 slot(s) remaining for Friday, Jun 26 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/18/technicians	Manage Technicians	\N	f	\N	2026-06-22 07:00:04	2026-06-22 07:00:04
303	system	Low availability — 120 S Spalding	120 S Spalding is 1 slot(s) remaining for Friday, Jun 26 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/17/technicians	Manage Technicians	\N	f	\N	2026-06-22 07:00:04	2026-06-22 07:00:04
304	system	Low availability — 9301 Wilshire	9301 Wilshire is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/16/technicians	Manage Technicians	\N	f	\N	2026-06-22 07:00:04	2026-06-22 07:00:04
305	system	Low availability — Beethoven	Beethoven is 1 slot(s) remaining for Tuesday, Jun 23 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/13/technicians	Manage Technicians	\N	f	\N	2026-06-22 08:00:07	2026-06-22 08:00:07
306	system	Low availability — 6345 Balboa	6345 Balboa is fully booked for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/2/technicians	Manage Technicians	\N	f	\N	2026-06-22 16:00:06	2026-06-22 16:00:06
307	system	Low availability — 74 N Pasadena	74 N Pasadena is fully booked for Wednesday, Jun 24 (9:00 AM–9:15 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-22 16:00:07	2026-06-22 16:00:07
308	system	Low availability — 1640 S. Sepulveda	1640 S. Sepulveda is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/14/technicians	Manage Technicians	\N	f	\N	2026-06-23 08:00:03	2026-06-23 08:00:03
309	system	Low availability — Marina Towers	Marina Towers is 1 slot(s) remaining for Monday, Jun 29 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/12/technicians	Manage Technicians	\N	f	\N	2026-06-23 08:00:03	2026-06-23 08:00:03
310	system	Low availability — Collective P4	Collective P4 is 1 slot(s) remaining for Thursday, Jun 25 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/8/technicians	Manage Technicians	\N	f	\N	2026-06-23 08:00:03	2026-06-23 08:00:03
311	system	Low availability — Polestar Los Angeles	Polestar Los Angeles is 1 slot(s) remaining for Monday, Jun 29 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/7/technicians	Manage Technicians	\N	f	\N	2026-06-23 08:00:03	2026-06-23 08:00:03
312	system	Low availability — 888 N Douglas	888 N Douglas is 1 slot(s) remaining for Wednesday, Jun 24 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/4/technicians	Manage Technicians	\N	f	\N	2026-06-23 08:00:03	2026-06-23 08:00:03
313	system	Low availability — 9701 Wilshire	9701 Wilshire is 1 slot(s) remaining for Thursday, Jun 25 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/3/technicians	Manage Technicians	\N	f	\N	2026-06-23 08:00:03	2026-06-23 08:00:03
314	system	Low availability — 2601 / 2625 Alameda	2601 / 2625 Alameda is 1 slot(s) remaining for Friday, Jun 26 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/18/technicians	Manage Technicians	\N	f	\N	2026-06-23 08:00:03	2026-06-23 08:00:03
315	system	Low availability — 120 S Spalding	120 S Spalding is 1 slot(s) remaining for Friday, Jun 26 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/17/technicians	Manage Technicians	\N	f	\N	2026-06-23 08:00:03	2026-06-23 08:00:03
316	system	Low availability — 9301 Wilshire	9301 Wilshire is 1 slot(s) remaining for Monday, Jun 29 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/16/technicians	Manage Technicians	\N	f	\N	2026-06-23 08:00:03	2026-06-23 08:00:03
317	system	Low availability — Beethoven	Beethoven is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/13/technicians	Manage Technicians	\N	f	\N	2026-06-23 09:00:05	2026-06-23 09:00:05
318	system	Low availability — 6345 Balboa	6345 Balboa is 1 slot(s) remaining for Monday, Jun 29 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/2/technicians	Manage Technicians	\N	f	\N	2026-06-23 17:00:11	2026-06-23 17:00:11
319	system	Low availability — 74 N Pasadena	74 N Pasadena is fully booked for Wednesday, Jun 24 (9:00 AM–9:15 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-23 17:00:11	2026-06-23 17:00:11
320	system	Low availability — 1640 S. Sepulveda	1640 S. Sepulveda is 1 slot(s) remaining for Tuesday, Jun 30 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/14/technicians	Manage Technicians	\N	f	\N	2026-06-24 09:00:03	2026-06-24 09:00:03
321	system	Low availability — Marina Towers	Marina Towers is 1 slot(s) remaining for Monday, Jun 29 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/12/technicians	Manage Technicians	\N	f	\N	2026-06-24 09:00:03	2026-06-24 09:00:03
322	system	Low availability — Collective P4	Collective P4 is 1 slot(s) remaining for Thursday, Jun 25 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/8/technicians	Manage Technicians	\N	f	\N	2026-06-24 09:00:03	2026-06-24 09:00:03
323	system	Low availability — Polestar Los Angeles	Polestar Los Angeles is 1 slot(s) remaining for Monday, Jun 29 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/7/technicians	Manage Technicians	\N	f	\N	2026-06-24 09:00:03	2026-06-24 09:00:03
324	system	Low availability — 888 N Douglas	888 N Douglas is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/4/technicians	Manage Technicians	\N	f	\N	2026-06-24 09:00:03	2026-06-24 09:00:03
325	system	Low availability — 9701 Wilshire	9701 Wilshire is 1 slot(s) remaining for Thursday, Jun 25 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/3/technicians	Manage Technicians	\N	f	\N	2026-06-24 09:00:03	2026-06-24 09:00:03
326	system	Low availability — 2601 / 2625 Alameda	2601 / 2625 Alameda is 1 slot(s) remaining for Friday, Jun 26 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/18/technicians	Manage Technicians	\N	f	\N	2026-06-24 09:00:03	2026-06-24 09:00:03
327	system	Low availability — 120 S Spalding	120 S Spalding is 1 slot(s) remaining for Friday, Jun 26 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/17/technicians	Manage Technicians	\N	f	\N	2026-06-24 09:00:03	2026-06-24 09:00:03
328	system	Low availability — 9301 Wilshire	9301 Wilshire is 1 slot(s) remaining for Monday, Jun 29 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/16/technicians	Manage Technicians	\N	f	\N	2026-06-24 09:00:03	2026-06-24 09:00:03
329	system	Low availability — 6345 Balboa	6345 Balboa is 1 slot(s) remaining for Monday, Jun 29 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/2/technicians	Manage Technicians	\N	f	\N	2026-06-24 18:00:03	2026-06-24 18:00:03
330	system	Low availability — 74 N Pasadena	74 N Pasadena is fully booked for today (9:00 AM–9:15 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-24 18:00:03	2026-06-24 18:00:03
331	system	Low availability — 1640 S. Sepulveda	1640 S. Sepulveda is 1 slot(s) remaining for Tuesday, Jun 30 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/14/technicians	Manage Technicians	\N	f	\N	2026-06-25 09:00:08	2026-06-25 09:00:08
332	system	Low availability — Marina Towers	Marina Towers is 1 slot(s) remaining for Monday, Jun 29 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/12/technicians	Manage Technicians	\N	f	\N	2026-06-25 09:00:08	2026-06-25 09:00:08
333	system	Low availability — Collective P4	Collective P4 is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/8/technicians	Manage Technicians	\N	f	\N	2026-06-25 09:00:08	2026-06-25 09:00:08
334	system	Low availability — Polestar Los Angeles	Polestar Los Angeles is 1 slot(s) remaining for Monday, Jun 29 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/7/technicians	Manage Technicians	\N	f	\N	2026-06-25 09:00:08	2026-06-25 09:00:08
335	system	Low availability — 888 N Douglas	888 N Douglas is 1 slot(s) remaining for Wednesday, Jul 1 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/4/technicians	Manage Technicians	\N	f	\N	2026-06-25 09:00:08	2026-06-25 09:00:08
336	system	Low availability — 9701 Wilshire	9701 Wilshire is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/3/technicians	Manage Technicians	\N	f	\N	2026-06-25 09:00:08	2026-06-25 09:00:08
337	system	Low availability — 2601 / 2625 Alameda	2601 / 2625 Alameda is 1 slot(s) remaining for Friday, Jun 26 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/18/technicians	Manage Technicians	\N	f	\N	2026-06-25 09:00:08	2026-06-25 09:00:08
338	system	Low availability — 120 S Spalding	120 S Spalding is 1 slot(s) remaining for Friday, Jun 26 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/17/technicians	Manage Technicians	\N	f	\N	2026-06-25 09:00:08	2026-06-25 09:00:08
339	system	Low availability — 9301 Wilshire	9301 Wilshire is 1 slot(s) remaining for Monday, Jun 29 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/16/technicians	Manage Technicians	\N	f	\N	2026-06-25 09:00:08	2026-06-25 09:00:08
340	system	Low availability — 6345 Balboa	6345 Balboa is 1 slot(s) remaining for Monday, Jun 29 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/2/technicians	Manage Technicians	\N	f	\N	2026-06-25 18:00:06	2026-06-25 18:00:06
341	system	Low availability — 74 N Pasadena	74 N Pasadena is 1 slot(s) remaining for Wednesday, Jul 1 (9:00 AM–9:15 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-25 18:00:06	2026-06-25 18:00:06
342	system	Low availability — 1640 S. Sepulveda	1640 S. Sepulveda is 1 slot(s) remaining for Tuesday, Jun 30 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/14/technicians	Manage Technicians	\N	f	\N	2026-06-26 10:00:06	2026-06-26 10:00:06
343	system	Low availability — Marina Towers	Marina Towers is 1 slot(s) remaining for Monday, Jun 29 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/12/technicians	Manage Technicians	\N	f	\N	2026-06-26 10:00:06	2026-06-26 10:00:06
344	system	Low availability — Collective P4	Collective P4 is 1 slot(s) remaining for Thursday, Jul 2 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/8/technicians	Manage Technicians	\N	f	\N	2026-06-26 10:00:06	2026-06-26 10:00:06
345	system	Low availability — Polestar Los Angeles	Polestar Los Angeles is 1 slot(s) remaining for Monday, Jun 29 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/7/technicians	Manage Technicians	\N	f	\N	2026-06-26 10:00:06	2026-06-26 10:00:06
346	system	Low availability — 888 N Douglas	888 N Douglas is 1 slot(s) remaining for Wednesday, Jul 1 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/4/technicians	Manage Technicians	\N	f	\N	2026-06-26 10:00:06	2026-06-26 10:00:06
347	system	Low availability — 9701 Wilshire	9701 Wilshire is 1 slot(s) remaining for Thursday, Jul 2 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/3/technicians	Manage Technicians	\N	f	\N	2026-06-26 10:00:06	2026-06-26 10:00:06
348	system	Low availability — 2601 / 2625 Alameda	2601 / 2625 Alameda is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/18/technicians	Manage Technicians	\N	f	\N	2026-06-26 10:00:06	2026-06-26 10:00:06
349	system	Low availability — 120 S Spalding	120 S Spalding is 1 slot(s) remaining for today (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/17/technicians	Manage Technicians	\N	f	\N	2026-06-26 10:00:06	2026-06-26 10:00:06
350	system	Low availability — 9301 Wilshire	9301 Wilshire is 1 slot(s) remaining for Monday, Jun 29 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/16/technicians	Manage Technicians	\N	f	\N	2026-06-26 10:00:06	2026-06-26 10:00:06
351	system	Low availability — 6345 Balboa	6345 Balboa is 1 slot(s) remaining for Monday, Jun 29 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/2/technicians	Manage Technicians	\N	f	\N	2026-06-26 19:00:07	2026-06-26 19:00:07
352	system	Low availability — 74 N Pasadena	74 N Pasadena is 1 slot(s) remaining for Wednesday, Jul 1 (9:00 AM–9:15 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-26 19:00:08	2026-06-26 19:00:08
353	system	Low availability — 1640 S. Sepulveda	1640 S. Sepulveda is 1 slot(s) remaining for Tuesday, Jun 30 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/14/technicians	Manage Technicians	\N	f	\N	2026-06-27 11:00:04	2026-06-27 11:00:04
354	system	Low availability — Marina Towers	Marina Towers is 1 slot(s) remaining for Monday, Jun 29 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/12/technicians	Manage Technicians	\N	f	\N	2026-06-27 11:00:05	2026-06-27 11:00:05
355	system	Low availability — Collective P4	Collective P4 is 1 slot(s) remaining for Thursday, Jul 2 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/8/technicians	Manage Technicians	\N	f	\N	2026-06-27 11:00:05	2026-06-27 11:00:05
356	system	Low availability — Polestar Los Angeles	Polestar Los Angeles is 1 slot(s) remaining for Monday, Jun 29 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/7/technicians	Manage Technicians	\N	f	\N	2026-06-27 11:00:05	2026-06-27 11:00:05
357	system	Low availability — 888 N Douglas	888 N Douglas is 1 slot(s) remaining for Wednesday, Jul 1 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/4/technicians	Manage Technicians	\N	f	\N	2026-06-27 11:00:05	2026-06-27 11:00:05
358	system	Low availability — 9701 Wilshire	9701 Wilshire is 1 slot(s) remaining for Thursday, Jul 2 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/3/technicians	Manage Technicians	\N	f	\N	2026-06-27 11:00:05	2026-06-27 11:00:05
359	system	Low availability — 2601 / 2625 Alameda	2601 / 2625 Alameda is 1 slot(s) remaining for Friday, Jul 3 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/18/technicians	Manage Technicians	\N	f	\N	2026-06-27 11:00:06	2026-06-27 11:00:06
360	system	Low availability — 120 S Spalding	120 S Spalding is 1 slot(s) remaining for Friday, Jul 3 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/17/technicians	Manage Technicians	\N	f	\N	2026-06-27 11:00:06	2026-06-27 11:00:06
361	system	Low availability — 9301 Wilshire	9301 Wilshire is 1 slot(s) remaining for Monday, Jun 29 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/16/technicians	Manage Technicians	\N	f	\N	2026-06-27 11:00:06	2026-06-27 11:00:06
362	system	Low availability — 6345 Balboa	6345 Balboa is 1 slot(s) remaining for Monday, Jun 29 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/2/technicians	Manage Technicians	\N	f	\N	2026-06-27 20:00:05	2026-06-27 20:00:05
363	system	Low availability — 74 N Pasadena	74 N Pasadena is 1 slot(s) remaining for Wednesday, Jul 1 (9:00 AM–9:15 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-27 20:00:05	2026-06-27 20:00:05
364	system	Low availability — 1640 S. Sepulveda	1640 S. Sepulveda is 1 slot(s) remaining for Tuesday, Jun 30 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/14/technicians	Manage Technicians	\N	f	\N	2026-06-28 12:00:06	2026-06-28 12:00:06
365	system	Low availability — Marina Towers	Marina Towers is 1 slot(s) remaining for Monday, Jun 29 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/12/technicians	Manage Technicians	\N	f	\N	2026-06-28 12:00:06	2026-06-28 12:00:06
366	system	Low availability — Collective P4	Collective P4 is 1 slot(s) remaining for Thursday, Jul 2 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/8/technicians	Manage Technicians	\N	f	\N	2026-06-28 12:00:06	2026-06-28 12:00:06
367	system	Low availability — Polestar Los Angeles	Polestar Los Angeles is 1 slot(s) remaining for Monday, Jun 29 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/7/technicians	Manage Technicians	\N	f	\N	2026-06-28 12:00:06	2026-06-28 12:00:06
368	system	Low availability — 888 N Douglas	888 N Douglas is 1 slot(s) remaining for Wednesday, Jul 1 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/4/technicians	Manage Technicians	\N	f	\N	2026-06-28 12:00:06	2026-06-28 12:00:06
369	system	Low availability — 9701 Wilshire	9701 Wilshire is 1 slot(s) remaining for Thursday, Jul 2 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/3/technicians	Manage Technicians	\N	f	\N	2026-06-28 12:00:06	2026-06-28 12:00:06
370	system	Low availability — 2601 / 2625 Alameda	2601 / 2625 Alameda is 1 slot(s) remaining for Friday, Jul 3 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/18/technicians	Manage Technicians	\N	f	\N	2026-06-28 12:00:06	2026-06-28 12:00:06
371	system	Low availability — 120 S Spalding	120 S Spalding is 1 slot(s) remaining for Friday, Jul 3 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/17/technicians	Manage Technicians	\N	f	\N	2026-06-28 12:00:06	2026-06-28 12:00:06
372	system	Low availability — 9301 Wilshire	9301 Wilshire is 1 slot(s) remaining for Monday, Jun 29 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/16/technicians	Manage Technicians	\N	f	\N	2026-06-28 12:00:06	2026-06-28 12:00:06
373	system	Low availability — 6345 Balboa	6345 Balboa is 1 slot(s) remaining for Monday, Jun 29 (9:00 AM–11:30 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/2/technicians	Manage Technicians	\N	f	\N	2026-06-28 21:00:05	2026-06-28 21:00:05
374	system	Low availability — 74 N Pasadena	74 N Pasadena is 1 slot(s) remaining for Wednesday, Jul 1 (9:00 AM–9:15 AM). Consider adding technicians or opening additional capacity.	https://service.mypropertysos.com/admin/locations/19/technicians	Manage Technicians	\N	f	\N	2026-06-28 21:00:05	2026-06-28 21:00:05
\.


--
-- Data for Name: booking_addons; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.booking_addons (id, booking_id, addon_id, price, created_at, updated_at) FROM stdin;
1	2	1	2500	2026-05-25 20:59:46	2026-05-25 21:00:16
2	3	2	4500	2026-05-25 20:59:46	2026-05-25 21:00:16
3	5	1	3000	2026-05-25 21:11:32	2026-05-25 21:11:32
4	5	2	5500	2026-05-25 21:11:32	2026-05-25 21:11:32
5	6	1	3000	2026-05-25 23:38:48	2026-05-25 23:38:48
6	6	2	5500	2026-05-25 23:38:48	2026-05-25 23:38:48
7	7	1	3000	2026-05-26 01:52:59	2026-05-26 01:52:59
8	7	3	4000	2026-05-26 01:52:59	2026-05-26 01:52:59
9	8	1	3000	2026-05-26 04:47:38	2026-05-26 04:47:38
10	8	2	5500	2026-05-26 04:47:38	2026-05-26 04:47:38
11	10	1	3000	2026-05-27 02:27:05	2026-05-27 02:27:05
12	10	2	5500	2026-05-27 02:27:05	2026-05-27 02:27:05
13	11	1	4000	2026-05-27 02:47:29	2026-05-27 02:47:29
14	11	2	7500	2026-05-27 02:47:29	2026-05-27 02:47:29
15	12	1	3000	2026-05-27 03:35:39	2026-05-27 03:35:39
16	12	2	5500	2026-05-27 03:35:39	2026-05-27 03:35:39
17	13	1	3000	2026-05-27 05:18:00	2026-05-27 05:18:00
18	13	2	5500	2026-05-27 05:18:00	2026-05-27 05:18:00
19	14	2	5500	2026-05-28 18:39:11	2026-05-28 18:39:11
68	154	1	2500	2026-05-29 06:35:34	2026-05-29 06:35:34
69	158	3	3500	2026-05-29 06:35:34	2026-05-29 06:35:34
70	162	2	4500	2026-05-29 06:35:35	2026-05-29 06:35:35
71	166	3	3500	2026-05-29 06:35:36	2026-05-29 06:35:36
72	167	1	2500	2026-05-29 06:35:36	2026-05-29 06:35:36
73	168	1	2500	2026-05-29 06:35:36	2026-05-29 06:35:36
74	171	2	4500	2026-05-29 06:35:37	2026-05-29 06:35:37
75	173	1	2500	2026-05-29 06:35:38	2026-05-29 06:35:38
76	177	2	4500	2026-05-29 06:35:38	2026-05-29 06:35:38
77	181	1	2500	2026-05-29 06:35:39	2026-05-29 06:35:39
78	182	3	3500	2026-05-29 06:35:39	2026-05-29 06:35:39
79	185	1	2500	2026-05-29 06:35:40	2026-05-29 06:35:40
80	188	1	2500	2026-05-29 06:35:41	2026-05-29 06:35:41
81	190	3	3500	2026-05-29 06:35:41	2026-05-29 06:35:41
82	194	2	4500	2026-05-29 06:35:41	2026-05-29 06:35:41
83	197	3	3500	2026-05-29 06:35:42	2026-05-29 06:35:42
84	199	2	4500	2026-05-30 02:38:02	2026-05-30 02:38:02
85	200	4	1500	2026-05-30 03:56:29	2026-05-30 03:56:29
86	201	4	1500	2026-05-30 04:07:35	2026-05-30 04:07:35
87	202	4	1000	2026-05-30 06:43:53	2026-05-30 06:43:53
88	203	1	2500	2026-06-01 06:08:34	2026-06-01 06:08:34
89	203	3	3500	2026-06-01 06:08:34	2026-06-01 06:08:34
90	204	4	1500	2026-06-03 03:30:49	2026-06-03 03:30:49
91	204	3	4000	2026-06-03 03:30:49	2026-06-03 03:30:49
92	205	4	1000	2026-06-06 03:28:14	2026-06-06 03:28:14
93	207	4	1000	2026-06-06 03:39:05	2026-06-06 03:39:05
94	208	4	1000	2026-06-06 03:41:20	2026-06-06 03:41:20
95	209	4	1000	2026-06-07 14:48:48	2026-06-07 14:48:48
96	210	4	1000	2026-06-07 14:53:43	2026-06-07 14:53:43
97	211	4	1000	2026-06-08 04:22:01	2026-06-08 04:22:01
98	212	4	1000	2026-06-16 05:56:12	2026-06-16 05:56:12
99	213	4	1000	2026-06-16 15:01:22	2026-06-16 15:01:22
100	214	4	1000	2026-06-16 22:34:08	2026-06-16 22:34:08
101	217	4	2000	2026-06-18 04:12:48	2026-06-18 04:12:48
\.


--
-- Data for Name: bookings; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.bookings (id, uuid, customer_id, technician_id, location_id, vehicle_id, package_id, service_address, service_city, service_state, service_zip, service_lat, service_lng, service_type, scheduled_at, ends_at, payment_status, service_status, subtotal, addons_total, total, deposit_amount, amount_paid, stripe_payment_intent_id, stripe_invoice_id, notes, internal_notes, cancellation_reason, cancelled_at, created_at, updated_at, is_recurring, recurrence_frequency, recurrence_until, parent_booking_id, payment_method) FROM stdin;
3	33333333-3333-4333-8333-333333333333	4	3	12	1	3	4640 Admiralty Way	Marina Del Rey	CA	90292	\N	\N	fixed	2026-05-24 09:00:00	\N	paid	completed	18900	4500	23400	0	23400	\N	\N	\N	\N	\N	\N	2026-05-25 20:59:46	2026-05-25 20:59:46	f	\N	\N	\N	card
12	bf978cf1-31f4-40b7-bd39-e83df82dfdb9	4	3	16	12	1	\N	\N	\N	\N	\N	\N	fixed	2026-05-29 14:00:00	2026-05-29 14:30:00	pending	arrived	4500	8500	13000	0	0	\N	\N	Make it nice for me!	\N	\N	\N	2026-05-27 03:35:39	2026-05-27 05:21:36	f	\N	\N	\N	pay_at_service
10	95f01fbe-d300-4e4c-973f-7dd0cd40ef52	4	3	9	9	2	\N	\N	\N	\N	\N	\N	fixed	2026-05-30 11:00:00	2026-05-30 12:30:00	pending	arrived	15500	8500	24000	0	0	\N	\N	\N	\N	\N	\N	2026-05-27 02:27:05	2026-05-27 05:27:04	f	\N	\N	\N	pay_at_service
1	11111111-1111-4111-8111-111111111111	4	3	3	1	1	9701 Wilshire Blvd	Beverly Hills	CA	90212	\N	\N	fixed	2026-05-26 10:00:00	\N	paid	completed	3500	0	3500	0	3500	\N	\N	\N	\N	\N	\N	2026-05-25 20:59:46	2026-05-27 05:28:38	f	\N	\N	\N	card
153	96d010f4-9627-4e2f-babb-0f8166a70ed8	17	3	3	36	1	9701 Wilshire Blvd	Beverly Hills	CA	90212	\N	\N	fixed	2026-05-14 09:00:00	\N	paid	completed	3500	0	3500	0	3500	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:34	2026-05-29 06:35:34	f	\N	\N	\N	card
154	085818a6-05cc-444d-a854-12d38aa78660	17	3	12	36	2	4640 Admiralty Way	Marina Del Rey	CA	90292	\N	\N	fixed	2026-05-24 10:00:00	\N	paid	completed	12500	2500	15000	0	15000	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:34	2026-05-29 06:35:34	f	\N	\N	\N	card
157	1b6bafdd-11a8-4a33-9c13-d85de6c0e164	17	\N	19	36	3	74 N Pasadena Ave	Pasadena	CA	91103	\N	\N	fixed	2026-05-27 14:00:00	\N	refunded	cancelled	18900	0	18900	0	18900	\N	\N	\N	\N	Customer requested reschedule.	2026-05-26 06:35:34	2026-05-29 06:35:34	2026-05-29 06:35:34	f	\N	\N	\N	card
158	713ec378-2bf6-4fa4-903d-4f378415d074	18	3	4	38	2	888 N Douglas St	El Segundo	CA	90245	\N	\N	fixed	2026-05-09 09:00:00	\N	paid	completed	17500	4500	22000	0	22000	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:34	2026-05-29 06:35:34	f	\N	\N	\N	card
160	07e88438-58ca-4c30-8d77-e188b99d9253	18	\N	2	38	3	6345 Balboa Blvd	Lake Balboa	CA	91406	\N	\N	fixed	2026-05-21 10:00:00	\N	refunded	cancelled	24900	0	24900	0	24900	\N	\N	\N	\N	No show — customer did not arrive.	2026-05-21 06:35:34	2026-05-29 06:35:34	2026-05-29 06:35:34	f	\N	\N	\N	card
162	23ab0da1-83d4-4d35-b933-ce8aedf68520	19	3	12	40	2	4640 Admiralty Way	Marina Del Rey	CA	90292	\N	\N	fixed	2026-05-17 10:30:00	\N	paid	completed	15500	5500	21000	0	21000	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:35	2026-05-29 06:35:35	f	\N	\N	\N	card
163	9a156c28-a59d-4e8c-879c-513b69d3f21c	19	3	3	41	1	9701 Wilshire Blvd	Beverly Hills	CA	90212	\N	\N	fixed	2026-04-29 08:30:00	\N	paid	completed	5500	0	5500	0	5500	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:35	2026-05-29 06:35:35	f	\N	\N	\N	card
164	44a34e20-2cdb-4812-b534-25952709a52e	19	\N	19	39	3	74 N Pasadena Ave	Pasadena	CA	91103	\N	\N	fixed	2026-05-28 16:00:00	\N	refunded	cancelled	18900	0	18900	0	18900	\N	\N	\N	\N	Schedule conflict.	2026-05-27 06:35:35	2026-05-29 06:35:35	2026-05-29 06:35:35	f	\N	\N	\N	card
168	ddb84426-62a3-4c2f-8e10-25706b3b7614	20	3	4	42	3	888 N Douglas St	El Segundo	CA	90245	\N	\N	fixed	2026-05-04 09:30:00	\N	paid	completed	21900	4000	25900	0	25900	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:36	2026-05-29 06:35:36	f	\N	\N	\N	card
169	89ad2d5c-12a3-4470-85b4-fbeece47af1b	20	3	12	42	2	4640 Admiralty Way	Marina Del Rey	CA	90292	\N	\N	fixed	2026-04-14 08:00:00	\N	paid	completed	15500	0	15500	0	15500	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:36	2026-05-29 06:35:36	f	\N	\N	\N	card
170	5f6ad8f6-a05c-45c4-ac67-ad9b58bd2afb	20	\N	19	43	1	74 N Pasadena Ave	Pasadena	CA	91103	\N	\N	fixed	2026-05-19 15:00:00	\N	refunded	cancelled	5500	0	5500	0	5500	\N	\N	\N	\N	Weather conditions.	2026-05-19 06:35:36	2026-05-29 06:35:36	2026-05-29 06:35:36	f	\N	\N	\N	card
171	2405ab4c-97c1-4687-900b-8dd877e5ce00	21	3	13	44	2	5454 Beethoven St	Los Angeles	CA	90066	\N	\N	fixed	2026-05-22 11:00:00	\N	paid	completed	12500	4500	17000	0	17000	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:37	2026-05-29 06:35:37	f	\N	\N	\N	card
172	03bfdd0f-196d-4091-b65f-9b16278935f2	21	\N	3	44	1	9701 Wilshire Blvd	Beverly Hills	CA	90212	\N	\N	fixed	2026-05-26 09:30:00	\N	refunded	cancelled	3500	0	3500	0	3500	\N	\N	\N	\N	Technician unavailable.	2026-05-25 06:35:37	2026-05-29 06:35:37	2026-05-29 06:35:37	f	\N	\N	\N	card
2	22222222-2222-4222-8222-222222222222	4	3	\N	1	2	11975 Bluff Creek Dr	Los Angeles	CA	90094	\N	\N	mobile	2026-05-27 14:30:00	\N	paid	arrived	12500	2500	15000	0	15000	\N	\N	\N	\N	\N	\N	2026-05-25 20:59:46	2026-05-25 20:59:46	f	\N	\N	\N	card
174	23b24cb3-f4e3-40f3-9a65-afb464d82596	22	\N	10	46	2	12105 W. Waterfront Drive	Playa Vista	CA	90094	\N	\N	fixed	2026-06-04 14:00:00	\N	paid	arrived	15500	0	15500	0	15500	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:38	2026-05-30 06:46:20	f	\N	\N	\N	card
4	44444444-4444-4444-8444-444444444444	4	3	19	1	1	74 N Pasadena Ave	Pasadena	CA	91103	\N	\N	fixed	2026-05-30 11:00:00	\N	pending	scheduled	3500	0	3500	0	0	pi_3TkbPoJIDR3sRxiB0BzZGqVY	\N	\N	\N	\N	\N	2026-05-25 20:59:46	2026-06-21 02:47:20	f	\N	\N	\N	card
166	58feb2fb-3db9-4dfd-9f1a-7261ae4c1119	20	\N	3	43	2	9701 Wilshire Blvd	Beverly Hills	CA	90212	\N	\N	fixed	2026-06-02 11:00:00	\N	pending	arrived	17500	4500	22000	0	0	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:36	2026-06-01 05:00:50	f	\N	\N	\N	pay_at_service
5	a771dcad-fcd8-4ab6-b2fe-5fd68df5c14e	1	3	9	4	1	2500 River Park Dr,	Fort Worth	TX	76116	\N	\N	fixed	2026-05-26 16:00:00	2026-05-26 17:35:00	pending	arrived	4500	8500	13000	0	0	\N	\N	I want a lillipop when my card is finished just like at dentist office!	\N	\N	\N	2026-05-25 21:11:32	2026-06-03 03:32:02	f	\N	\N	\N	pay_at_service
173	87525094-ddcb-4c88-8dbb-b42f9382dbce	22	3	\N	45	3	1620 26th St	Santa Monica	CA	90404	\N	\N	mobile	2026-05-29 09:00:00	\N	paid	completed	18900	3500	22400	0	22400	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:38	2026-06-03 03:34:30	f	\N	\N	\N	card
7	3a6d1f91-2c5f-4f36-b25f-4a2dddf885d3	1	\N	5	6	3	2500 River Park Dr,	Fort Worth	TX	76116	\N	\N	fixed	2026-05-27 15:00:00	2026-05-27 17:50:00	pending	no_show	21900	7000	28900	0	0	\N	\N	Making thing stick!	\N	\N	\N	2026-05-26 01:52:59	2026-06-07 15:07:04	f	\N	\N	\N	pay_at_service
9	bc9c309e-7aa9-454c-96e1-3500ed80c0b3	4	\N	18	8	3	\N	\N	\N	\N	\N	\N	fixed	2026-05-28 10:00:00	2026-05-28 12:00:00	pending	arrived	21900	0	21900	0	0	pi_3Tjz0hJIDR3sRxiB1j332JQp	\N	Hello!	\N	\N	\N	2026-05-26 04:50:51	2026-06-19 09:46:51	f	\N	\N	\N	card
8	d7262c47-c3d2-497d-9213-84db469cc7a0	4	\N	2	7	2	\N	\N	\N	\N	\N	\N	fixed	2026-05-27 11:00:00	2026-05-27 13:35:00	paid	completed	15500	8500	24000	0	24000	\N	\N	\N	\N	\N	\N	2026-05-26 04:47:38	2026-06-03 03:33:21	f	\N	\N	\N	pay_at_service
156	318f6366-f367-4b3d-855c-9842c358211d	17	\N	2	36	1	6345 Balboa Blvd	Lake Balboa	CA	91406	\N	\N	fixed	2026-06-01 08:00:00	\N	paid	completed	3500	0	3500	0	3500	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:34	2026-06-07 15:24:44	f	\N	\N	\N	pay_at_service
13	849f6e53-0d95-4854-8db0-799a37444d09	1	\N	11	13	1	\N	\N	\N	\N	\N	\N	fixed	2026-05-29 11:00:00	2026-05-29 12:35:00	pending	no_show	4500	8500	13000	0	0	\N	\N	Car will be messy	\N	\N	\N	2026-05-27 05:18:00	2026-06-18 03:48:09	f	\N	\N	\N	pay_at_service
11	8085bbc2-b99c-4e82-b08c-3413bf88bd67	4	\N	14	11	2	\N	\N	\N	\N	\N	\N	fixed	2026-05-29 11:00:00	2026-05-29 13:35:00	pending	scheduled	19500	11500	31000	0	0	pi_3Tjz4lJIDR3sRxiB1vOcWnjN	\N	Love it!	\N	\N	\N	2026-05-27 02:47:29	2026-06-19 09:51:04	f	\N	\N	\N	card
165	0c8da839-ebcb-4a3e-98dc-bef58fedfb0c	20	\N	2	42	1	6345 Balboa Blvd	Lake Balboa	CA	91406	\N	\N	fixed	2026-05-30 09:00:00	\N	paid	completed	4500	0	4500	0	4500	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:36	2026-06-07 15:24:35	f	\N	\N	\N	card
175	17b0e4fe-e404-42f8-a9de-cd3944827edc	22	3	12	45	1	4640 Admiralty Way	Marina Del Rey	CA	90292	\N	\N	fixed	2026-05-11 10:00:00	\N	paid	completed	3500	0	3500	0	3500	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:38	2026-05-29 06:35:38	f	\N	\N	\N	card
176	da06c28c-4762-49b3-a6bb-ab02e42b727e	22	\N	3	46	3	9701 Wilshire Blvd	Beverly Hills	CA	90212	\N	\N	fixed	2026-05-23 13:00:00	\N	refunded	cancelled	21900	0	21900	0	21900	\N	\N	\N	\N	Customer cancelled day-of.	2026-05-23 06:35:38	2026-05-29 06:35:38	2026-05-29 06:35:38	f	\N	\N	\N	card
178	eb93a90c-50b0-47cb-9927-cb1447935237	23	3	13	47	1	5454 Beethoven St	Los Angeles	CA	90066	\N	\N	fixed	2026-05-07 09:30:00	\N	paid	completed	5500	0	5500	0	5500	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:38	2026-05-29 06:35:38	f	\N	\N	\N	card
179	f4e2bbe4-0ffe-49f3-9117-5f33e3f66e32	23	3	10	47	2	12105 W. Waterfront Drive	Playa Vista	CA	90094	\N	\N	fixed	2026-04-24 11:00:00	\N	paid	no_show	17500	0	17500	0	17500	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:38	2026-05-29 06:35:38	f	\N	\N	\N	card
180	1bba9dfc-31de-4b67-b1ab-f01979f87457	24	\N	18	48	1	2601 / 2625 W Alameda Ave	Burbank	CA	91505	\N	\N	fixed	2026-05-31 08:30:00	\N	pending	scheduled	5500	0	5500	0	0	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:39	2026-05-29 06:35:39	f	\N	\N	\N	pay_at_service
181	90bbe020-b876-4784-8586-d548ab55636e	24	3	\N	49	2	2601 W Alameda Ave	Burbank	CA	91505	\N	\N	mobile	2026-05-29 13:30:00	\N	paid	arrived	15500	4000	19500	0	19500	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:39	2026-05-29 06:35:39	f	\N	\N	\N	card
182	856ebede-afbc-475e-b757-1293ac8e3e92	24	3	19	48	3	74 N Pasadena Ave	Pasadena	CA	91103	\N	\N	fixed	2026-05-15 10:00:00	\N	paid	completed	24900	4500	29400	0	29400	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:39	2026-05-29 06:35:39	f	\N	\N	\N	card
183	c3c691b8-3d88-45f8-a54f-f7f6bce0082c	24	3	4	49	2	888 N Douglas St	El Segundo	CA	90245	\N	\N	fixed	2026-04-19 09:00:00	\N	paid	completed	15500	0	15500	0	15500	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:39	2026-05-29 06:35:39	f	\N	\N	\N	card
184	7a014b3c-d167-4290-99db-c78038442ba2	24	\N	2	48	1	6345 Balboa Blvd	Lake Balboa	CA	91406	\N	\N	fixed	2026-04-09 11:00:00	\N	refunded	cancelled	5500	0	5500	0	5500	\N	\N	\N	\N	Emergency — personal matter.	2026-04-08 06:35:39	2026-05-29 06:35:39	2026-05-29 06:35:39	f	\N	\N	\N	card
185	ba985aaa-16dc-4f68-9473-9adfdb50ff7d	25	3	3	50	3	9701 Wilshire Blvd	Beverly Hills	CA	90212	\N	\N	fixed	2026-03-30 09:00:00	\N	paid	completed	18900	3500	22400	0	22400	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:40	2026-05-29 06:35:40	f	\N	\N	\N	card
186	6bcba507-7038-41e4-ad78-9fd3758ca473	25	3	12	50	2	4640 Admiralty Way	Marina Del Rey	CA	90292	\N	\N	fixed	2026-04-24 10:30:00	\N	paid	completed	12500	0	12500	0	12500	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:40	2026-05-29 06:35:40	f	\N	\N	\N	card
189	f98bd568-6c39-496b-8242-af6f721e40b3	26	3	19	51	1	74 N Pasadena Ave	Pasadena	CA	91103	\N	\N	fixed	2026-05-20 08:00:00	\N	paid	completed	3500	0	3500	0	3500	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:41	2026-05-29 06:35:41	f	\N	\N	\N	card
190	090c736c-280d-48d8-b3a9-68384f90e2b2	26	3	2	52	2	6345 Balboa Blvd	Lake Balboa	CA	91406	\N	\N	fixed	2026-05-01 09:00:00	\N	paid	completed	17500	4500	22000	0	22000	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:41	2026-05-29 06:35:41	f	\N	\N	\N	card
191	8ccd1c77-9b2d-4187-91ee-5f137fa479d4	26	\N	3	53	3	9701 Wilshire Blvd	Beverly Hills	CA	90212	\N	\N	fixed	2026-05-25 14:30:00	\N	refunded	cancelled	21900	0	21900	0	21900	\N	\N	\N	\N	Customer requested a different date.	2026-05-24 06:35:41	2026-05-29 06:35:41	2026-05-29 06:35:41	f	\N	\N	\N	card
194	8f71c965-3c51-42a4-a5b4-14fc79bccbe7	27	3	4	54	3	888 N Douglas St	El Segundo	CA	90245	\N	\N	fixed	2026-05-13 09:30:00	\N	paid	completed	21900	5500	27400	0	27400	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:41	2026-05-29 06:35:41	f	\N	\N	\N	card
195	16eb0584-d155-403f-b936-8a04f913e6b4	27	3	10	55	2	12105 W. Waterfront Drive	Playa Vista	CA	90094	\N	\N	fixed	2026-04-14 11:00:00	\N	paid	no_show	17500	0	17500	0	17500	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:41	2026-05-29 06:35:41	f	\N	\N	\N	card
197	cb22ff9c-9f9d-4b1d-afc8-f24ee56ce037	28	3	3	56	3	9701 Wilshire Blvd	Beverly Hills	CA	90212	\N	\N	fixed	2026-05-18 10:00:00	\N	paid	completed	27900	5000	32900	0	32900	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:42	2026-05-29 06:35:42	f	\N	\N	\N	card
198	46084db1-1f43-42fb-badd-fad1071c122f	28	\N	4	56	2	888 N Douglas St	El Segundo	CA	90245	\N	\N	fixed	2026-05-26 13:00:00	\N	refunded	cancelled	19500	0	19500	0	19500	\N	\N	\N	\N	Technician called out sick.	2026-05-26 07:00:00	2026-05-29 06:35:42	2026-05-29 06:35:42	f	\N	\N	\N	card
199	50ca0581-2e6a-45c2-b4ca-2496e2c06927	29	\N	19	57	1	\N	\N	\N	\N	\N	\N	fixed	2026-06-01 10:15:00	2026-06-01 11:30:00	pending	scheduled	3500	4500	8000	0	0	\N	\N	Toma!	\N	\N	\N	2026-05-30 02:38:02	2026-05-30 02:38:02	f	\N	\N	\N	pay_at_service
200	929fe421-3a99-4a65-bffa-d22d1b69d5d2	29	\N	19	58	1	\N	\N	\N	\N	\N	\N	fixed	2026-06-02 09:50:00	2026-06-02 10:40:00	pending	scheduled	4500	1500	6000	0	0	\N	\N	Hello is me!	\N	\N	\N	2026-05-30 03:56:29	2026-05-30 03:56:29	f	\N	\N	\N	pay_at_service
201	1c17bb6b-866f-42e5-8706-52da2154bcd6	4	\N	19	59	1	\N	\N	\N	\N	\N	\N	fixed	2026-06-01 09:00:00	2026-06-01 09:50:00	pending	scheduled	4500	1500	6000	0	0	\N	\N	\N	\N	\N	\N	2026-05-30 04:07:35	2026-05-30 04:07:35	f	\N	\N	\N	pay_at_service
196	aef95e46-ba20-4bcf-a45a-3ff78f01310c	28	\N	12	56	1	4640 Admiralty Way	Marina Del Rey	CA	90292	\N	\N	fixed	2026-06-06 09:00:00	\N	paid	completed	6500	0	6500	0	6500	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:42	2026-05-30 04:43:22	f	\N	\N	\N	card
192	3c07591a-1e0a-4f28-a5df-ebf74aa3abaf	27	\N	13	54	2	5454 Beethoven St	Los Angeles	CA	90066	\N	\N	fixed	2026-06-07 10:00:00	\N	paid	completed	15500	0	15500	0	15500	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:41	2026-05-30 04:38:56	f	\N	\N	\N	card
188	1197af8e-1638-42c3-b8ef-faf30de38d6c	26	3	\N	51	2	5790 Canoga Avenue	Woodland Hills	CA	91367	\N	\N	mobile	2026-05-29 15:00:00	\N	paid	completed	12500	3500	16000	0	16000	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:41	2026-05-30 06:46:59	f	\N	\N	\N	card
6	98026d31-0028-419d-918d-72770b647f1f	1	\N	4	5	2	2500 River Park Dr,	Fort Worth	TX	76116	\N	\N	fixed	2026-05-26 10:00:00	2026-05-26 12:35:00	pending	arrived	15500	8500	24000	0	0	\N	\N	Treat me like the boss!	\N	\N	\N	2026-05-25 23:38:48	2026-05-27 05:28:32	f	\N	\N	\N	pay_at_service
187	95050c7a-5d55-47bf-bafb-b93daeeff417	26	\N	18	53	3	2601 / 2625 W Alameda Ave	Burbank	CA	91505	\N	\N	fixed	2026-06-03 10:00:00	\N	paid	arrived	21900	0	21900	0	21900	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:41	2026-05-30 06:46:26	f	\N	\N	\N	card
159	acffc70b-a565-43c9-b7be-feee6b4b55b7	18	\N	10	38	1	12105 W. Waterfront Drive	Playa Vista	CA	90094	\N	\N	fixed	2026-06-05 13:00:00	\N	paid	completed	5500	0	5500	0	5500	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:34	2026-05-30 05:01:03	f	\N	\N	\N	card
177	f6a54c07-d050-4f24-88b3-ccc696195347	23	3	\N	47	2	5454 Beethoven St	Los Angeles	CA	90066	\N	\N	mobile	2026-05-29 12:00:00	\N	paid	arrived	17500	6500	24000	0	24000	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:38	2026-05-29 06:35:38	f	\N	\N	\N	card
202	5a945c16-08db-4238-8a8d-7aa2b39c875e	1	\N	19	60	1	\N	\N	\N	\N	\N	\N	fixed	2026-06-03 09:00:00	2026-06-03 09:50:00	pending	arrived	3500	1000	4500	0	0	\N	\N	\N	\N	\N	\N	2026-05-30 06:43:53	2026-05-30 06:46:35	f	\N	\N	\N	pay_at_service
14	a49932bb-3f66-4ecd-9bd5-005c66dd522e	4	\N	12	14	1	\N	\N	\N	\N	\N	\N	fixed	2026-05-30 10:00:00	2026-05-30 11:15:00	pending	arrived	4500	5500	10000	0	0	\N	\N	Keep my coins inside	\N	\N	\N	2026-05-28 18:39:11	2026-05-28 18:46:02	f	\N	\N	\N	pay_at_service
155	36fc869f-7ec1-4be0-89cd-188ce054c7c4	17	3	\N	37	1	11975 Bluff Creek Dr	Los Angeles	CA	90094	\N	\N	mobile	2026-05-29 11:30:00	\N	paid	arrived	4500	0	4500	0	4500	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:34	2026-05-29 06:35:34	f	\N	\N	\N	card
161	66276861-f55d-41fe-92b4-4d3076debc98	19	3	\N	39	1	3129 S. La Cienega Blvd	Los Angeles	CA	90016	\N	\N	mobile	2026-05-29 14:00:00	\N	paid	arrived	3500	0	3500	0	3500	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:35	2026-05-29 06:35:35	f	\N	\N	\N	card
167	8c1a58a7-b9c2-4fb5-8b8c-c0073617e4c9	20	3	\N	42	2	9701 Wilshire Blvd	Beverly Hills	CA	90212	\N	\N	mobile	2026-05-29 10:00:00	\N	paid	arrived	15500	3000	18500	0	18500	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:36	2026-05-29 06:35:36	f	\N	\N	\N	card
193	cab21e20-1ec5-4ad9-92a2-9439e07452b6	27	3	\N	55	1	12105 W. Waterfront Drive	Playa Vista	CA	90094	\N	\N	mobile	2026-05-29 16:00:00	\N	paid	arrived	5500	0	5500	0	5500	\N	\N	\N	\N	\N	\N	2026-05-29 06:35:41	2026-05-29 06:35:41	f	\N	\N	\N	card
203	919c348e-d4cc-43c5-a3fa-9e7ad67151c4	4	\N	19	61	6	\N	\N	\N	\N	\N	\N	fixed	2026-06-24 09:00:00	2026-06-24 10:50:00	pending	scheduled	7500	6000	13500	0	0	pi_3Tjy2sJIDR3sRxiB1j57MXc9	\N	Testing live	\N	\N	\N	2026-06-01 06:08:34	2026-06-19 08:45:03	f	\N	\N	\N	card
205	0043d877-1099-480b-b659-114f0922f8d9	30	\N	7	63	20	\N	\N	\N	\N	\N	\N	fixed	2026-06-11 09:00:00	2026-06-06 03:32:31	paid	completed	5000	1000	6000	0	6000	\N	\N	\N	\N	\N	\N	2026-06-06 03:28:14	2026-06-06 03:32:31	f	\N	\N	\N	pay_at_service
206	42584f53-7657-456b-91bf-ad0ab51f112c	30	\N	9	64	1	\N	\N	\N	\N	\N	\N	fixed	2026-06-11 09:00:00	2026-06-11 09:30:00	pending	scheduled	2000	0	2000	0	0	\N	\N	Not open trunk	\N	\N	\N	2026-06-06 03:37:02	2026-06-06 03:37:02	f	\N	\N	\N	pay_at_service
207	eed056d9-9f09-421e-8f3a-237b48f01491	30	\N	9	65	5	\N	\N	\N	\N	\N	\N	fixed	2026-06-11 09:50:00	2026-06-11 10:40:00	pending	scheduled	3000	1000	4000	0	0	\N	\N	\N	\N	\N	\N	2026-06-06 03:39:05	2026-06-06 03:39:05	f	\N	\N	\N	pay_at_service
208	d45679ca-b711-4a10-8286-ba9dad33dcc6	30	\N	9	66	7	\N	\N	\N	\N	\N	\N	fixed	2026-06-18 10:05:00	2026-06-18 11:10:00	pending	scheduled	7000	1000	8000	0	0	\N	\N	\N	\N	\N	\N	2026-06-06 03:41:20	2026-06-06 03:41:20	f	\N	\N	\N	pay_at_service
210	209d5a4c-65f6-4387-8001-b8b701ce71d4	30	\N	15	68	4	\N	\N	\N	\N	\N	\N	fixed	2026-06-09 09:00:00	2026-06-07 15:02:37	paid	completed	4000	1000	5000	0	5000	\N	\N	\N	\N	\N	\N	2026-06-07 14:53:43	2026-06-07 15:02:37	f	\N	\N	\N	pay_at_service
204	7154adf2-368e-4be0-863b-d8fabff40d97	30	\N	2	62	4	\N	\N	\N	\N	\N	\N	fixed	2026-06-05 10:20:00	2026-06-05 11:45:00	paid	completed	4500	5500	10000	0	10000	\N	\N	\N	\N	\N	\N	2026-06-03 03:30:49	2026-06-07 15:24:40	f	\N	\N	\N	pay_at_service
209	664760af-d321-469b-b08c-dfa81006b295	30	\N	2	67	4	\N	\N	\N	\N	\N	\N	fixed	2026-06-08 09:00:00	2026-06-07 15:31:24	paid	completed	4000	1000	5000	0	5000	\N	\N	\N	\N	\N	\N	2026-06-07 14:48:48	2026-06-07 15:31:24	f	\N	\N	\N	pay_at_service
211	3b7503dc-c040-4e4d-a2ad-f4f7911b0715	30	\N	14	69	4	\N	\N	\N	\N	\N	\N	fixed	2026-06-09 09:00:00	2026-06-09 09:55:00	pending	scheduled	4000	1000	5000	0	0	\N	\N	\N	\N	\N	\N	2026-06-08 04:22:01	2026-06-08 04:22:01	f	\N	\N	\N	pay_at_service
213	68f866ce-d4b5-46ef-9276-0fb8ca9265ec	30	\N	12	71	4	\N	\N	\N	\N	\N	\N	fixed	2026-06-22 09:30:00	2026-06-16 15:10:04	paid	completed	4000	1000	5000	0	5000	\N	\N	\N	\N	\N	\N	2026-06-16 15:01:22	2026-06-16 15:10:04	f	\N	\N	\N	pay_at_service
214	92cfab79-62ec-4756-bcb8-2229e99389df	30	\N	15	72	4	\N	\N	\N	\N	\N	\N	fixed	2026-06-18 09:00:00	2026-06-18 09:55:00	pending	scheduled	4000	1000	5000	0	0	\N	\N	please clean trunk	\N	\N	\N	2026-06-16 22:34:08	2026-06-16 22:34:08	f	\N	\N	\N	pay_at_service
216	58c8689e-bb05-4d51-9c4b-69e916012244	37	\N	15	74	4	\N	\N	\N	\N	\N	\N	fixed	2026-06-18 10:00:00	2026-06-18 10:35:00	pending	scheduled	4500	0	4500	0	0	\N	\N	please clean truck	\N	\N	\N	2026-06-18 04:06:15	2026-06-18 04:06:15	f	\N	\N	\N	pay_at_service
217	473c1e32-9609-4d21-81ce-4546117cb066	37	\N	13	75	13	\N	\N	\N	\N	\N	\N	fixed	2026-06-23 09:00:00	2026-06-23 09:50:00	pending	scheduled	6000	2000	8000	0	0	pi_3TjxyYJIDR3sRxiB0LiKero1	\N	Clean Bed	\N	\N	\N	2026-06-18 04:12:48	2026-06-19 08:40:34	f	\N	\N	\N	card
212	7b1b558b-bca4-45c7-bcb6-30bd1c4ae438	30	\N	2	70	4	\N	\N	\N	\N	\N	\N	fixed	2026-06-22 09:00:00	2026-06-22 09:55:00	paid	scheduled	4000	1000	5000	0	5000	pi_3Tjy3EJIDR3sRxiB0AWzpFex	\N	\N	\N	\N	\N	2026-06-16 05:56:12	2026-06-19 09:16:43	f	\N	\N	\N	card
215	273680da-e242-484b-bcc5-ead28b702b47	30	\N	15	73	4	\N	\N	\N	\N	\N	\N	fixed	2026-06-18 11:15:00	2026-06-18 11:50:00	pending	no_show	4000	0	4000	0	0	\N	\N	Please dont touch truck	\N	\N	\N	2026-06-18 03:38:58	2026-06-19 23:30:15	f	\N	\N	\N	pay_at_service
\.


--
-- Data for Name: customer_memberships; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.customer_memberships (id, user_id, plan_id, stripe_subscription_id, status, current_period_start, current_period_end, washes_used_this_period, created_at, updated_at) FROM stdin;
4	17	1	\N	active	2026-05-19 06:35:34	2026-06-18 06:35:34	1	2026-05-29 06:35:34	2026-05-29 06:35:34
5	20	2	\N	active	2026-05-24 06:35:36	2026-06-23 06:35:36	2	2026-05-29 06:35:36	2026-05-29 06:35:36
6	25	1	\N	cancelled	2026-03-30 06:35:40	2026-04-29 06:35:40	2	2026-05-29 06:35:40	2026-05-29 06:35:40
\.


--
-- Data for Name: email_template_attachments; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.email_template_attachments (id, template_id, attachment_type, label, file_path, is_active, created_at, updated_at) FROM stdin;
\.


--
-- Data for Name: email_template_events; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.email_template_events (id, template_id, event_key, delay_minutes, is_active, created_at, updated_at) FROM stdin;
1	1	booking.confirmed	0	t	2026-05-29 19:49:14	2026-05-29 19:49:14
2	2	booking.reminder_24h	0	t	2026-05-29 19:49:14	2026-05-29 19:49:14
3	3	booking.reminder_1h	0	t	2026-05-29 19:49:14	2026-05-29 19:49:14
4	4	booking.completed	0	t	2026-05-29 19:49:14	2026-05-29 19:49:14
5	5	booking.cancelled	0	t	2026-05-29 19:49:14	2026-05-29 19:49:14
6	6	booking.balance_due	0	t	2026-05-29 19:49:14	2026-05-29 19:49:14
7	7	job.technician_enroute	0	t	2026-05-29 19:49:14	2026-05-29 19:49:14
8	8	customer.welcome	0	t	2026-05-29 19:49:14	2026-05-29 19:49:14
9	9	membership.activated	0	t	2026-05-29 19:49:14	2026-05-29 19:49:14
10	10	membership.cancelled	0	t	2026-05-29 19:49:14	2026-05-29 19:49:14
\.


--
-- Data for Name: email_template_exceptions; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.email_template_exceptions (id, template_event_id, exception_type, condition_value, created_at, updated_at) FROM stdin;
\.


--
-- Data for Name: email_template_recipients; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.email_template_recipients (id, template_event_id, recipient_type, custom_email, conditions, created_at, updated_at) FROM stdin;
1	1	customer	\N	\N	2026-05-29 19:49:14	2026-05-29 19:49:14
2	2	customer	\N	\N	2026-05-29 19:49:14	2026-05-29 19:49:14
3	3	customer	\N	\N	2026-05-29 19:49:14	2026-05-29 19:49:14
4	4	customer	\N	\N	2026-05-29 19:49:14	2026-05-29 19:49:14
5	5	customer	\N	\N	2026-05-29 19:49:14	2026-05-29 19:49:14
6	6	customer	\N	\N	2026-05-29 19:49:14	2026-05-29 19:49:14
7	7	customer	\N	\N	2026-05-29 19:49:14	2026-05-29 19:49:14
8	8	customer	\N	\N	2026-05-29 19:49:14	2026-05-29 19:49:14
9	9	customer	\N	\N	2026-05-29 19:49:14	2026-05-29 19:49:14
10	10	customer	\N	\N	2026-05-29 19:49:14	2026-05-29 19:49:14
\.


--
-- Data for Name: email_templates; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.email_templates (id, name, slug, description, subject, body_html, body_text, from_name, from_email, reply_to, is_active, is_system, created_at, updated_at) FROM stdin;
7	Technician En Route	technician-enroute	Sent when the technician marks themselves as on the way.	🚗 Your technician is on the way!	<!DOCTYPE html>\n<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">\n<head>\n  <meta charset="utf-8">\n  <meta name="viewport" content="width=device-width,initial-scale=1">\n  <meta http-equiv="X-UA-Compatible" content="IE=edge">\n  <meta name="x-apple-disable-message-reformatting">\n  <title></title>\n  <!--[if mso]><xml><o:OfficeDocumentSettings><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml><![endif]-->\n  <style>\n    @media only screen and (max-width:600px){\n      .email-container{width:100%!important;max-width:100%!important;}\n      .stack-on-mobile{display:block!important;width:100%!important;}\n      .summary-cell{display:block!important;width:100%!important;padding:6px 16px!important;}\n    }\n    @media (prefers-color-scheme:dark){\n      body,table,.email-body{background-color:#111827!important;}\n      .email-card{background-color:#1f2937!important;border-color:#374151!important;}\n      h1,h2,h3,p,td,span,li{color:#e5e7eb!important;}\n      .email-heading{color:#f9fafb!important;}\n      .muted{color:#9ca3af!important;}\n      .summary-card{background-color:#111827!important;border-color:#374151!important;}\n      .summary-card p{color:#e5e7eb!important;}\n    }\n  </style>\n</head>\n<body style="margin:0;padding:0;background-color:#f1f5f9;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">\n<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color:#f1f5f9;">\n  <tr>\n    <td style="padding:24px 12px;">\n\n      <!-- Email container -->\n      <table class="email-container" role="presentation" cellspacing="0" cellpadding="0" border="0" width="600" style="margin:0 auto;max-width:600px;width:100%;">\n\n        <!-- Header -->\n        <tr>\n          <td style="background-color:#0f172a;border-radius:12px 12px 0 0;padding:24px 32px;text-align:center;">\n            <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:20px;font-weight:700;color:#ffffff;letter-spacing:-0.3px;">\n              {{email_logo_block}}\n            </p>\n          </td>\n        </tr>\n\n        <!-- Body card -->\n        <tr>\n          <td class="email-card" style="background-color:#ffffff;padding:40px 32px;border-left:1px solid #e2e8f0;border-right:1px solid #e2e8f0;">\n\n            <h1 class="email-heading" style="margin:0 0 24px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:26px;font-weight:700;color:#111827;line-height:1.2;">Your Technician Is On The Way!</h1>\n\n            <div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;">\n              \n                    <p style="margin:0 0 16px 0;font-size:16px;line-height:1.6;color:#374151;">Hi {{customer_name}},</p>\n                    <p style="margin:0 0 24px 0;font-size:16px;line-height:1.6;color:#374151;"><strong>{{technician_name}}</strong> is heading your way and will arrive shortly for your <strong>{{package_name}}</strong>.</p>\n                    \n        <table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" class="summary-card" style="background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin:0 0 8px 0;">\n          <tr>\n            <td style="padding:20px 24px;">\n              <table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">\n                <tr>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;width:50%;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Date &amp; Time</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:600;color:#111827;">{{booking_datetime}}</p>\n                  </td>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;width:50%;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Location</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:600;color:#111827;">{{location_name}}</p>\n                  </td>\n                </tr>\n                <tr>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Package</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:600;color:#111827;">{{package_name}}</p>\n                  </td>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Vehicle</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:600;color:#111827;">{{vehicle_year}} {{vehicle_make}} {{vehicle_model}}</p>\n                  </td>\n                </tr>\n                <tr>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Total</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:700;color:#111827;">{{total}}</p>\n                  </td>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Technician</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:600;color:#111827;">{{technician_name}}</p>\n                  </td>\n                </tr>\n              </table>\n            </td>\n          </tr>\n        </table>\n                \n            </div>\n\n            \n            <table role="presentation" cellspacing="0" cellpadding="0" border="0" style="margin:32px auto 0 auto;">\n              <tr>\n                <td style="border-radius:8px;background:#1d4ed8;text-align:center;">\n                  <!--[if mso]><v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="{{tracking_url}}" style="height:48px;v-text-anchor:middle;width:220px;" arcsize="17%" fillcolor="#1d4ed8" stroke="f"><w:anchorlock/><center style="color:#ffffff;font-family:Arial,sans-serif;font-size:15px;font-weight:bold;">Track Live</center></v:roundrect><![endif]-->\n                  <a href="{{tracking_url}}" style="display:inline-block;padding:14px 32px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:15px;font-weight:600;color:#ffffff;text-decoration:none;border-radius:8px;mso-hide:all;">Track Live</a>\n                </td>\n              </tr>\n            </table>\n\n          </td>\n        </tr>\n\n        <!-- Footer -->\n        <tr>\n          <td style="background-color:#f8fafc;border:1px solid #e2e8f0;border-top:0;border-radius:0 0 12px 12px;padding:24px 32px;text-align:center;">\n            \n            <p class="muted" style="margin:12px 0 0 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:12px;line-height:1.5;color:#9ca3af;">\n              &copy; {{current_year}} {{app_name}} &nbsp;&middot;&nbsp; <a href="{{app_url}}" style="color:#9ca3af;text-decoration:none;">{{app_url}}</a>\n            </p>\n          </td>\n        </tr>\n\n      </table>\n    </td>\n  </tr>\n</table>\n</body>\n</html>	Hi {{customer_name}},\n\n{{technician_name}} is on the way for your {{package_name}}!\n\nDate: {{booking_datetime}}\nLocation: {{location_name}}\n\nTrack live: {{tracking_url}}\n\n{{app_name}}	\N	\N	\N	t	t	2026-05-29 19:49:14	2026-05-30 00:30:12
8	Welcome	customer-welcome	Sent when a new customer account is created.	Welcome to {{app_name}}!	<!DOCTYPE html>\n<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">\n<head>\n  <meta charset="utf-8">\n  <meta name="viewport" content="width=device-width,initial-scale=1">\n  <meta http-equiv="X-UA-Compatible" content="IE=edge">\n  <meta name="x-apple-disable-message-reformatting">\n  <title></title>\n  <!--[if mso]><xml><o:OfficeDocumentSettings><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml><![endif]-->\n  <style>\n    @media only screen and (max-width:600px){\n      .email-container{width:100%!important;max-width:100%!important;}\n      .stack-on-mobile{display:block!important;width:100%!important;}\n      .summary-cell{display:block!important;width:100%!important;padding:6px 16px!important;}\n    }\n    @media (prefers-color-scheme:dark){\n      body,table,.email-body{background-color:#111827!important;}\n      .email-card{background-color:#1f2937!important;border-color:#374151!important;}\n      h1,h2,h3,p,td,span,li{color:#e5e7eb!important;}\n      .email-heading{color:#f9fafb!important;}\n      .muted{color:#9ca3af!important;}\n      .summary-card{background-color:#111827!important;border-color:#374151!important;}\n      .summary-card p{color:#e5e7eb!important;}\n    }\n  </style>\n</head>\n<body style="margin:0;padding:0;background-color:#f1f5f9;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">\n<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color:#f1f5f9;">\n  <tr>\n    <td style="padding:24px 12px;">\n\n      <!-- Email container -->\n      <table class="email-container" role="presentation" cellspacing="0" cellpadding="0" border="0" width="600" style="margin:0 auto;max-width:600px;width:100%;">\n\n        <!-- Header -->\n        <tr>\n          <td style="background-color:#0f172a;border-radius:12px 12px 0 0;padding:24px 32px;text-align:center;">\n            <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:20px;font-weight:700;color:#ffffff;letter-spacing:-0.3px;">\n              {{email_logo_block}}\n            </p>\n          </td>\n        </tr>\n\n        <!-- Body card -->\n        <tr>\n          <td class="email-card" style="background-color:#ffffff;padding:40px 32px;border-left:1px solid #e2e8f0;border-right:1px solid #e2e8f0;">\n\n            <h1 class="email-heading" style="margin:0 0 24px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:26px;font-weight:700;color:#111827;line-height:1.2;">Welcome to {{app_name}}!</h1>\n\n            <div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;">\n              \n                    <p style="margin:0 0 16px 0;font-size:16px;line-height:1.6;color:#374151;">Hi {{customer_name}},</p>\n                    <p style="margin:0 0 24px 0;font-size:16px;line-height:1.6;color:#374151;">Your account has been created. You can now book car wash appointments, save your vehicles, and track your service history — all in one place.</p>\n                \n            </div>\n\n            \n            <table role="presentation" cellspacing="0" cellpadding="0" border="0" style="margin:32px auto 0 auto;">\n              <tr>\n                <td style="border-radius:8px;background:#1d4ed8;text-align:center;">\n                  <!--[if mso]><v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="{{app_url}}/book" style="height:48px;v-text-anchor:middle;width:220px;" arcsize="17%" fillcolor="#1d4ed8" stroke="f"><w:anchorlock/><center style="color:#ffffff;font-family:Arial,sans-serif;font-size:15px;font-weight:bold;">Book Your First Wash</center></v:roundrect><![endif]-->\n                  <a href="{{app_url}}/book" style="display:inline-block;padding:14px 32px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:15px;font-weight:600;color:#ffffff;text-decoration:none;border-radius:8px;mso-hide:all;">Book Your First Wash</a>\n                </td>\n              </tr>\n            </table>\n\n          </td>\n        </tr>\n\n        <!-- Footer -->\n        <tr>\n          <td style="background-color:#f8fafc;border:1px solid #e2e8f0;border-top:0;border-radius:0 0 12px 12px;padding:24px 32px;text-align:center;">\n            \n            <p class="muted" style="margin:12px 0 0 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:12px;line-height:1.5;color:#9ca3af;">\n              &copy; {{current_year}} {{app_name}} &nbsp;&middot;&nbsp; <a href="{{app_url}}" style="color:#9ca3af;text-decoration:none;">{{app_url}}</a>\n            </p>\n          </td>\n        </tr>\n\n      </table>\n    </td>\n  </tr>\n</table>\n</body>\n</html>	Hi {{customer_name}},\n\nWelcome to {{app_name}}! Your account is ready.\n\nBook your first wash: {{app_url}}/book\n\n{{app_name}}	\N	\N	\N	t	t	2026-05-29 19:49:14	2026-05-30 00:30:12
9	Membership Activated	membership-activated	Sent when a customer activates a membership plan.	Your {{app_name}} membership is active!	<!DOCTYPE html>\n<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">\n<head>\n  <meta charset="utf-8">\n  <meta name="viewport" content="width=device-width,initial-scale=1">\n  <meta http-equiv="X-UA-Compatible" content="IE=edge">\n  <meta name="x-apple-disable-message-reformatting">\n  <title></title>\n  <!--[if mso]><xml><o:OfficeDocumentSettings><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml><![endif]-->\n  <style>\n    @media only screen and (max-width:600px){\n      .email-container{width:100%!important;max-width:100%!important;}\n      .stack-on-mobile{display:block!important;width:100%!important;}\n      .summary-cell{display:block!important;width:100%!important;padding:6px 16px!important;}\n    }\n    @media (prefers-color-scheme:dark){\n      body,table,.email-body{background-color:#111827!important;}\n      .email-card{background-color:#1f2937!important;border-color:#374151!important;}\n      h1,h2,h3,p,td,span,li{color:#e5e7eb!important;}\n      .email-heading{color:#f9fafb!important;}\n      .muted{color:#9ca3af!important;}\n      .summary-card{background-color:#111827!important;border-color:#374151!important;}\n      .summary-card p{color:#e5e7eb!important;}\n    }\n  </style>\n</head>\n<body style="margin:0;padding:0;background-color:#f1f5f9;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">\n<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color:#f1f5f9;">\n  <tr>\n    <td style="padding:24px 12px;">\n\n      <!-- Email container -->\n      <table class="email-container" role="presentation" cellspacing="0" cellpadding="0" border="0" width="600" style="margin:0 auto;max-width:600px;width:100%;">\n\n        <!-- Header -->\n        <tr>\n          <td style="background-color:#0f172a;border-radius:12px 12px 0 0;padding:24px 32px;text-align:center;">\n            <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:20px;font-weight:700;color:#ffffff;letter-spacing:-0.3px;">\n              {{email_logo_block}}\n            </p>\n          </td>\n        </tr>\n\n        <!-- Body card -->\n        <tr>\n          <td class="email-card" style="background-color:#ffffff;padding:40px 32px;border-left:1px solid #e2e8f0;border-right:1px solid #e2e8f0;">\n\n            <h1 class="email-heading" style="margin:0 0 24px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:26px;font-weight:700;color:#111827;line-height:1.2;">Membership Activated!</h1>\n\n            <div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;">\n              \n                    <p style="margin:0 0 16px 0;font-size:16px;line-height:1.6;color:#374151;">Hi {{customer_name}},</p>\n                    <p style="margin:0 0 24px 0;font-size:16px;line-height:1.6;color:#374151;">Your membership is now active. Enjoy the benefits of unlimited washes and priority scheduling.</p>\n                \n            </div>\n\n            \n            <table role="presentation" cellspacing="0" cellpadding="0" border="0" style="margin:32px auto 0 auto;">\n              <tr>\n                <td style="border-radius:8px;background:#1d4ed8;text-align:center;">\n                  <!--[if mso]><v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="{{app_url}}/book" style="height:48px;v-text-anchor:middle;width:220px;" arcsize="17%" fillcolor="#1d4ed8" stroke="f"><w:anchorlock/><center style="color:#ffffff;font-family:Arial,sans-serif;font-size:15px;font-weight:bold;">Book a Wash</center></v:roundrect><![endif]-->\n                  <a href="{{app_url}}/book" style="display:inline-block;padding:14px 32px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:15px;font-weight:600;color:#ffffff;text-decoration:none;border-radius:8px;mso-hide:all;">Book a Wash</a>\n                </td>\n              </tr>\n            </table>\n\n          </td>\n        </tr>\n\n        <!-- Footer -->\n        <tr>\n          <td style="background-color:#f8fafc;border:1px solid #e2e8f0;border-top:0;border-radius:0 0 12px 12px;padding:24px 32px;text-align:center;">\n            \n            <p class="muted" style="margin:12px 0 0 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:12px;line-height:1.5;color:#9ca3af;">\n              &copy; {{current_year}} {{app_name}} &nbsp;&middot;&nbsp; <a href="{{app_url}}" style="color:#9ca3af;text-decoration:none;">{{app_url}}</a>\n            </p>\n          </td>\n        </tr>\n\n      </table>\n    </td>\n  </tr>\n</table>\n</body>\n</html>	Hi {{customer_name}},\n\nYour membership is now active. Start booking your washes anytime!\n\nBook: {{app_url}}/book\n\n{{app_name}}	\N	\N	\N	t	t	2026-05-29 19:49:14	2026-05-30 00:30:12
10	Membership Cancelled	membership-cancelled	Sent when a membership is cancelled.	Your {{app_name}} membership has been cancelled	<!DOCTYPE html>\n<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">\n<head>\n  <meta charset="utf-8">\n  <meta name="viewport" content="width=device-width,initial-scale=1">\n  <meta http-equiv="X-UA-Compatible" content="IE=edge">\n  <meta name="x-apple-disable-message-reformatting">\n  <title></title>\n  <!--[if mso]><xml><o:OfficeDocumentSettings><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml><![endif]-->\n  <style>\n    @media only screen and (max-width:600px){\n      .email-container{width:100%!important;max-width:100%!important;}\n      .stack-on-mobile{display:block!important;width:100%!important;}\n      .summary-cell{display:block!important;width:100%!important;padding:6px 16px!important;}\n    }\n    @media (prefers-color-scheme:dark){\n      body,table,.email-body{background-color:#111827!important;}\n      .email-card{background-color:#1f2937!important;border-color:#374151!important;}\n      h1,h2,h3,p,td,span,li{color:#e5e7eb!important;}\n      .email-heading{color:#f9fafb!important;}\n      .muted{color:#9ca3af!important;}\n      .summary-card{background-color:#111827!important;border-color:#374151!important;}\n      .summary-card p{color:#e5e7eb!important;}\n    }\n  </style>\n</head>\n<body style="margin:0;padding:0;background-color:#f1f5f9;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">\n<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color:#f1f5f9;">\n  <tr>\n    <td style="padding:24px 12px;">\n\n      <!-- Email container -->\n      <table class="email-container" role="presentation" cellspacing="0" cellpadding="0" border="0" width="600" style="margin:0 auto;max-width:600px;width:100%;">\n\n        <!-- Header -->\n        <tr>\n          <td style="background-color:#0f172a;border-radius:12px 12px 0 0;padding:24px 32px;text-align:center;">\n            <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:20px;font-weight:700;color:#ffffff;letter-spacing:-0.3px;">\n              {{email_logo_block}}\n            </p>\n          </td>\n        </tr>\n\n        <!-- Body card -->\n        <tr>\n          <td class="email-card" style="background-color:#ffffff;padding:40px 32px;border-left:1px solid #e2e8f0;border-right:1px solid #e2e8f0;">\n\n            <h1 class="email-heading" style="margin:0 0 24px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:26px;font-weight:700;color:#111827;line-height:1.2;">Membership Cancelled</h1>\n\n            <div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;">\n              \n                    <p style="margin:0 0 16px 0;font-size:16px;line-height:1.6;color:#374151;">Hi {{customer_name}},</p>\n                    <p style="margin:0 0 24px 0;font-size:16px;line-height:1.6;color:#374151;">Your membership has been cancelled. You can still book individual washes at any time.</p>\n                \n            </div>\n\n            \n            <table role="presentation" cellspacing="0" cellpadding="0" border="0" style="margin:32px auto 0 auto;">\n              <tr>\n                <td style="border-radius:8px;background:#1d4ed8;text-align:center;">\n                  <!--[if mso]><v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="{{app_url}}/book" style="height:48px;v-text-anchor:middle;width:220px;" arcsize="17%" fillcolor="#1d4ed8" stroke="f"><w:anchorlock/><center style="color:#ffffff;font-family:Arial,sans-serif;font-size:15px;font-weight:bold;">Book a Wash</center></v:roundrect><![endif]-->\n                  <a href="{{app_url}}/book" style="display:inline-block;padding:14px 32px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:15px;font-weight:600;color:#ffffff;text-decoration:none;border-radius:8px;mso-hide:all;">Book a Wash</a>\n                </td>\n              </tr>\n            </table>\n\n          </td>\n        </tr>\n\n        <!-- Footer -->\n        <tr>\n          <td style="background-color:#f8fafc;border:1px solid #e2e8f0;border-top:0;border-radius:0 0 12px 12px;padding:24px 32px;text-align:center;">\n            \n            <p class="muted" style="margin:12px 0 0 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:12px;line-height:1.5;color:#9ca3af;">\n              &copy; {{current_year}} {{app_name}} &nbsp;&middot;&nbsp; <a href="{{app_url}}" style="color:#9ca3af;text-decoration:none;">{{app_url}}</a>\n            </p>\n          </td>\n        </tr>\n\n      </table>\n    </td>\n  </tr>\n</table>\n</body>\n</html>	Hi {{customer_name}},\n\nYour membership has been cancelled. You can still book individual washes anytime.\n\nBook: {{app_url}}/book\n\n{{app_name}}	\N	\N	\N	t	t	2026-05-29 19:49:14	2026-05-30 00:30:12
1	Booking Confirmed	booking-confirmed	Sent immediately when a booking is confirmed.	Your booking is confirmed — {{booking_date}}	<!DOCTYPE html>\n<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">\n<head>\n  <meta charset="utf-8">\n  <meta name="viewport" content="width=device-width,initial-scale=1">\n  <meta http-equiv="X-UA-Compatible" content="IE=edge">\n  <meta name="x-apple-disable-message-reformatting">\n  <title></title>\n  <!--[if mso]><xml><o:OfficeDocumentSettings><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml><![endif]-->\n  <style>\n    @media only screen and (max-width:600px){\n      .email-container{width:100%!important;max-width:100%!important;}\n      .stack-on-mobile{display:block!important;width:100%!important;}\n      .summary-cell{display:block!important;width:100%!important;padding:6px 16px!important;}\n    }\n    @media (prefers-color-scheme:dark){\n      body,table,.email-body{background-color:#111827!important;}\n      .email-card{background-color:#1f2937!important;border-color:#374151!important;}\n      h1,h2,h3,p,td,span,li{color:#e5e7eb!important;}\n      .email-heading{color:#f9fafb!important;}\n      .muted{color:#9ca3af!important;}\n      .summary-card{background-color:#111827!important;border-color:#374151!important;}\n      .summary-card p{color:#e5e7eb!important;}\n    }\n  </style>\n</head>\n<body style="margin:0;padding:0;background-color:#f1f5f9;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">\n<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color:#f1f5f9;">\n  <tr>\n    <td style="padding:24px 12px;">\n\n      <!-- Email container -->\n      <table class="email-container" role="presentation" cellspacing="0" cellpadding="0" border="0" width="600" style="margin:0 auto;max-width:600px;width:100%;">\n\n        <!-- Header -->\n        <tr>\n          <td style="background-color:#0f172a;border-radius:12px 12px 0 0;padding:24px 32px;text-align:center;">\n            <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:20px;font-weight:700;color:#ffffff;letter-spacing:-0.3px;">\n              {{email_logo_block}}\n            </p>\n          </td>\n        </tr>\n\n        <!-- Body card -->\n        <tr>\n          <td class="email-card" style="background-color:#ffffff;padding:40px 32px;border-left:1px solid #e2e8f0;border-right:1px solid #e2e8f0;">\n\n            <h1 class="email-heading" style="margin:0 0 24px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:26px;font-weight:700;color:#111827;line-height:1.2;">Booking Confirmed!</h1>\n\n            <div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;">\n              \n                    <p style="margin:0 0 16px 0;font-size:16px;line-height:1.6;color:#374151;">Hi {{customer_name}},</p>\n                    <p style="margin:0 0 24px 0;font-size:16px;line-height:1.6;color:#374151;">Your car wash appointment is confirmed. Here&#8217;s a summary of your booking:</p>\n                    \n        <table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" class="summary-card" style="background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin:0 0 8px 0;">\n          <tr>\n            <td style="padding:20px 24px;">\n              <table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">\n                <tr>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;width:50%;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Date &amp; Time</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:600;color:#111827;">{{booking_datetime}}</p>\n                  </td>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;width:50%;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Location</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:600;color:#111827;">{{location_name}}</p>\n                  </td>\n                </tr>\n                <tr>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Package</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:600;color:#111827;">{{package_name}}</p>\n                  </td>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Vehicle</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:600;color:#111827;">{{vehicle_year}} {{vehicle_make}} {{vehicle_model}}</p>\n                  </td>\n                </tr>\n                <tr>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Total</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:700;color:#111827;">{{total}}</p>\n                  </td>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Technician</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:600;color:#111827;">{{technician_name}}</p>\n                  </td>\n                </tr>\n              </table>\n            </td>\n          </tr>\n        </table>\n                    <p style="margin:24px 0 0 0;font-size:14px;line-height:1.6;color:#6b7280;">Need to make changes? Use the links below to reschedule or cancel.</p>\n                \n            </div>\n\n            \n            <table role="presentation" cellspacing="0" cellpadding="0" border="0" style="margin:32px auto 0 auto;">\n              <tr>\n                <td style="border-radius:8px;background:#1d4ed8;text-align:center;">\n                  <!--[if mso]><v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="{{tracking_url}}" style="height:48px;v-text-anchor:middle;width:220px;" arcsize="17%" fillcolor="#1d4ed8" stroke="f"><w:anchorlock/><center style="color:#ffffff;font-family:Arial,sans-serif;font-size:15px;font-weight:bold;">Track Your Appointment</center></v:roundrect><![endif]-->\n                  <a href="{{tracking_url}}" style="display:inline-block;padding:14px 32px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:15px;font-weight:600;color:#ffffff;text-decoration:none;border-radius:8px;mso-hide:all;">Track Your Appointment</a>\n                </td>\n              </tr>\n            </table>\n\n          </td>\n        </tr>\n\n        <!-- Footer -->\n        <tr>\n          <td style="background-color:#f8fafc;border:1px solid #e2e8f0;border-top:0;border-radius:0 0 12px 12px;padding:24px 32px;text-align:center;">\n            <p style="margin:16px 0 0 0;font-size:13px;line-height:1.5;color:#6b7280;text-align:center;"><a href="{{reschedule_url}}" style="color:#6b7280;text-decoration:underline;">Reschedule</a> &nbsp;·&nbsp; <a href="{{cancel_url}}" style="color:#6b7280;text-decoration:underline;">Cancel</a></p>\n            <p class="muted" style="margin:12px 0 0 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:12px;line-height:1.5;color:#9ca3af;">\n              &copy; {{current_year}} {{app_name}} &nbsp;&middot;&nbsp; <a href="{{app_url}}" style="color:#9ca3af;text-decoration:none;">{{app_url}}</a>\n            </p>\n          </td>\n        </tr>\n\n      </table>\n    </td>\n  </tr>\n</table>\n</body>\n</html>	Hi {{customer_name}},\n\nYour booking is confirmed!\n\nDate: {{booking_datetime}}\nLocation: {{location_name}}\nPackage: {{package_name}}\nVehicle: {{vehicle_year}} {{vehicle_make}} {{vehicle_model}}\nTotal: {{total}}\n\nTrack your appointment: {{tracking_url}}\nReschedule: {{reschedule_url}}\nCancel: {{cancel_url}}\n\nThank you,\n{{app_name}}	\N	\N	\N	t	t	2026-05-29 19:49:14	2026-05-30 00:30:12
2	Booking Reminder — 24 Hours	booking-reminder-24h	Sent 24 hours before the appointment.	Reminder: Your car wash is tomorrow at {{booking_time}}	<!DOCTYPE html>\n<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">\n<head>\n  <meta charset="utf-8">\n  <meta name="viewport" content="width=device-width,initial-scale=1">\n  <meta http-equiv="X-UA-Compatible" content="IE=edge">\n  <meta name="x-apple-disable-message-reformatting">\n  <title></title>\n  <!--[if mso]><xml><o:OfficeDocumentSettings><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml><![endif]-->\n  <style>\n    @media only screen and (max-width:600px){\n      .email-container{width:100%!important;max-width:100%!important;}\n      .stack-on-mobile{display:block!important;width:100%!important;}\n      .summary-cell{display:block!important;width:100%!important;padding:6px 16px!important;}\n    }\n    @media (prefers-color-scheme:dark){\n      body,table,.email-body{background-color:#111827!important;}\n      .email-card{background-color:#1f2937!important;border-color:#374151!important;}\n      h1,h2,h3,p,td,span,li{color:#e5e7eb!important;}\n      .email-heading{color:#f9fafb!important;}\n      .muted{color:#9ca3af!important;}\n      .summary-card{background-color:#111827!important;border-color:#374151!important;}\n      .summary-card p{color:#e5e7eb!important;}\n    }\n  </style>\n</head>\n<body style="margin:0;padding:0;background-color:#f1f5f9;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">\n<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color:#f1f5f9;">\n  <tr>\n    <td style="padding:24px 12px;">\n\n      <!-- Email container -->\n      <table class="email-container" role="presentation" cellspacing="0" cellpadding="0" border="0" width="600" style="margin:0 auto;max-width:600px;width:100%;">\n\n        <!-- Header -->\n        <tr>\n          <td style="background-color:#0f172a;border-radius:12px 12px 0 0;padding:24px 32px;text-align:center;">\n            <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:20px;font-weight:700;color:#ffffff;letter-spacing:-0.3px;">\n              {{email_logo_block}}\n            </p>\n          </td>\n        </tr>\n\n        <!-- Body card -->\n        <tr>\n          <td class="email-card" style="background-color:#ffffff;padding:40px 32px;border-left:1px solid #e2e8f0;border-right:1px solid #e2e8f0;">\n\n            <h1 class="email-heading" style="margin:0 0 24px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:26px;font-weight:700;color:#111827;line-height:1.2;">See You Tomorrow!</h1>\n\n            <div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;">\n              \n                    <p style="margin:0 0 16px 0;font-size:16px;line-height:1.6;color:#374151;">Hi {{customer_name}},</p>\n                    <p style="margin:0 0 24px 0;font-size:16px;line-height:1.6;color:#374151;">Just a friendly reminder that your car wash appointment is <strong>tomorrow</strong>.</p>\n                    \n        <table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" class="summary-card" style="background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin:0 0 8px 0;">\n          <tr>\n            <td style="padding:20px 24px;">\n              <table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">\n                <tr>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;width:50%;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Date &amp; Time</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:600;color:#111827;">{{booking_datetime}}</p>\n                  </td>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;width:50%;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Location</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:600;color:#111827;">{{location_name}}</p>\n                  </td>\n                </tr>\n                <tr>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Package</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:600;color:#111827;">{{package_name}}</p>\n                  </td>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Vehicle</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:600;color:#111827;">{{vehicle_year}} {{vehicle_make}} {{vehicle_model}}</p>\n                  </td>\n                </tr>\n                <tr>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Total</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:700;color:#111827;">{{total}}</p>\n                  </td>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Technician</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:600;color:#111827;">{{technician_name}}</p>\n                  </td>\n                </tr>\n              </table>\n            </td>\n          </tr>\n        </table>\n                \n            </div>\n\n            \n            <table role="presentation" cellspacing="0" cellpadding="0" border="0" style="margin:32px auto 0 auto;">\n              <tr>\n                <td style="border-radius:8px;background:#1d4ed8;text-align:center;">\n                  <!--[if mso]><v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="{{tracking_url}}" style="height:48px;v-text-anchor:middle;width:220px;" arcsize="17%" fillcolor="#1d4ed8" stroke="f"><w:anchorlock/><center style="color:#ffffff;font-family:Arial,sans-serif;font-size:15px;font-weight:bold;">Track Your Appointment</center></v:roundrect><![endif]-->\n                  <a href="{{tracking_url}}" style="display:inline-block;padding:14px 32px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:15px;font-weight:600;color:#ffffff;text-decoration:none;border-radius:8px;mso-hide:all;">Track Your Appointment</a>\n                </td>\n              </tr>\n            </table>\n\n          </td>\n        </tr>\n\n        <!-- Footer -->\n        <tr>\n          <td style="background-color:#f8fafc;border:1px solid #e2e8f0;border-top:0;border-radius:0 0 12px 12px;padding:24px 32px;text-align:center;">\n            <p style="margin:16px 0 0 0;font-size:13px;line-height:1.5;color:#6b7280;text-align:center;"><a href="{{reschedule_url}}" style="color:#6b7280;text-decoration:underline;">Reschedule</a> &nbsp;·&nbsp; <a href="{{cancel_url}}" style="color:#6b7280;text-decoration:underline;">Cancel</a></p>\n            <p class="muted" style="margin:12px 0 0 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:12px;line-height:1.5;color:#9ca3af;">\n              &copy; {{current_year}} {{app_name}} &nbsp;&middot;&nbsp; <a href="{{app_url}}" style="color:#9ca3af;text-decoration:none;">{{app_url}}</a>\n            </p>\n          </td>\n        </tr>\n\n      </table>\n    </td>\n  </tr>\n</table>\n</body>\n</html>	Hi {{customer_name}},\n\nJust a reminder — your car wash is tomorrow!\n\nDate: {{booking_datetime}}\nLocation: {{location_name}}\nPackage: {{package_name}}\n\nTrack: {{tracking_url}}\n\nSee you then,\n{{app_name}}	\N	\N	\N	t	t	2026-05-29 19:49:14	2026-05-30 00:30:12
3	Booking Reminder — 1 Hour	booking-reminder-1h	Sent 1 hour before the appointment.	Your car wash starts in about an hour	<!DOCTYPE html>\n<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">\n<head>\n  <meta charset="utf-8">\n  <meta name="viewport" content="width=device-width,initial-scale=1">\n  <meta http-equiv="X-UA-Compatible" content="IE=edge">\n  <meta name="x-apple-disable-message-reformatting">\n  <title></title>\n  <!--[if mso]><xml><o:OfficeDocumentSettings><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml><![endif]-->\n  <style>\n    @media only screen and (max-width:600px){\n      .email-container{width:100%!important;max-width:100%!important;}\n      .stack-on-mobile{display:block!important;width:100%!important;}\n      .summary-cell{display:block!important;width:100%!important;padding:6px 16px!important;}\n    }\n    @media (prefers-color-scheme:dark){\n      body,table,.email-body{background-color:#111827!important;}\n      .email-card{background-color:#1f2937!important;border-color:#374151!important;}\n      h1,h2,h3,p,td,span,li{color:#e5e7eb!important;}\n      .email-heading{color:#f9fafb!important;}\n      .muted{color:#9ca3af!important;}\n      .summary-card{background-color:#111827!important;border-color:#374151!important;}\n      .summary-card p{color:#e5e7eb!important;}\n    }\n  </style>\n</head>\n<body style="margin:0;padding:0;background-color:#f1f5f9;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">\n<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color:#f1f5f9;">\n  <tr>\n    <td style="padding:24px 12px;">\n\n      <!-- Email container -->\n      <table class="email-container" role="presentation" cellspacing="0" cellpadding="0" border="0" width="600" style="margin:0 auto;max-width:600px;width:100%;">\n\n        <!-- Header -->\n        <tr>\n          <td style="background-color:#0f172a;border-radius:12px 12px 0 0;padding:24px 32px;text-align:center;">\n            <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:20px;font-weight:700;color:#ffffff;letter-spacing:-0.3px;">\n              {{email_logo_block}}\n            </p>\n          </td>\n        </tr>\n\n        <!-- Body card -->\n        <tr>\n          <td class="email-card" style="background-color:#ffffff;padding:40px 32px;border-left:1px solid #e2e8f0;border-right:1px solid #e2e8f0;">\n\n            <h1 class="email-heading" style="margin:0 0 24px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:26px;font-weight:700;color:#111827;line-height:1.2;">Almost Time!</h1>\n\n            <div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;">\n              \n                    <p style="margin:0 0 16px 0;font-size:16px;line-height:1.6;color:#374151;">Hi {{customer_name}},</p>\n                    <p style="margin:0 0 24px 0;font-size:16px;line-height:1.6;color:#374151;">Your car wash appointment starts in about <strong>1 hour</strong>. Your technician is getting ready!</p>\n                    \n        <table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" class="summary-card" style="background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin:0 0 8px 0;">\n          <tr>\n            <td style="padding:20px 24px;">\n              <table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">\n                <tr>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;width:50%;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Date &amp; Time</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:600;color:#111827;">{{booking_datetime}}</p>\n                  </td>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;width:50%;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Location</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:600;color:#111827;">{{location_name}}</p>\n                  </td>\n                </tr>\n                <tr>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Package</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:600;color:#111827;">{{package_name}}</p>\n                  </td>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Vehicle</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:600;color:#111827;">{{vehicle_year}} {{vehicle_make}} {{vehicle_model}}</p>\n                  </td>\n                </tr>\n                <tr>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Total</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:700;color:#111827;">{{total}}</p>\n                  </td>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Technician</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:600;color:#111827;">{{technician_name}}</p>\n                  </td>\n                </tr>\n              </table>\n            </td>\n          </tr>\n        </table>\n                \n            </div>\n\n            \n            <table role="presentation" cellspacing="0" cellpadding="0" border="0" style="margin:32px auto 0 auto;">\n              <tr>\n                <td style="border-radius:8px;background:#1d4ed8;text-align:center;">\n                  <!--[if mso]><v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="{{tracking_url}}" style="height:48px;v-text-anchor:middle;width:220px;" arcsize="17%" fillcolor="#1d4ed8" stroke="f"><w:anchorlock/><center style="color:#ffffff;font-family:Arial,sans-serif;font-size:15px;font-weight:bold;">Track Your Appointment</center></v:roundrect><![endif]-->\n                  <a href="{{tracking_url}}" style="display:inline-block;padding:14px 32px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:15px;font-weight:600;color:#ffffff;text-decoration:none;border-radius:8px;mso-hide:all;">Track Your Appointment</a>\n                </td>\n              </tr>\n            </table>\n\n          </td>\n        </tr>\n\n        <!-- Footer -->\n        <tr>\n          <td style="background-color:#f8fafc;border:1px solid #e2e8f0;border-top:0;border-radius:0 0 12px 12px;padding:24px 32px;text-align:center;">\n            \n            <p class="muted" style="margin:12px 0 0 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:12px;line-height:1.5;color:#9ca3af;">\n              &copy; {{current_year}} {{app_name}} &nbsp;&middot;&nbsp; <a href="{{app_url}}" style="color:#9ca3af;text-decoration:none;">{{app_url}}</a>\n            </p>\n          </td>\n        </tr>\n\n      </table>\n    </td>\n  </tr>\n</table>\n</body>\n</html>	Hi {{customer_name}},\n\nYour car wash is in about 1 hour!\n\nDate: {{booking_datetime}}\nLocation: {{location_name}}\nTechnician: {{technician_name}}\n\nTrack live: {{tracking_url}}\n\n{{app_name}}	\N	\N	\N	t	t	2026-05-29 19:49:14	2026-05-30 00:30:12
4	Job Completed	booking-completed	Sent when a technician marks a job as completed.	✓ Your car wash is done — {{booking_date}}	<!DOCTYPE html>\n<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">\n<head>\n  <meta charset="utf-8">\n  <meta name="viewport" content="width=device-width,initial-scale=1">\n  <meta http-equiv="X-UA-Compatible" content="IE=edge">\n  <meta name="x-apple-disable-message-reformatting">\n  <title></title>\n  <!--[if mso]><xml><o:OfficeDocumentSettings><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml><![endif]-->\n  <style>\n    @media only screen and (max-width:600px){\n      .email-container{width:100%!important;max-width:100%!important;}\n      .stack-on-mobile{display:block!important;width:100%!important;}\n      .summary-cell{display:block!important;width:100%!important;padding:6px 16px!important;}\n    }\n    @media (prefers-color-scheme:dark){\n      body,table,.email-body{background-color:#111827!important;}\n      .email-card{background-color:#1f2937!important;border-color:#374151!important;}\n      h1,h2,h3,p,td,span,li{color:#e5e7eb!important;}\n      .email-heading{color:#f9fafb!important;}\n      .muted{color:#9ca3af!important;}\n      .summary-card{background-color:#111827!important;border-color:#374151!important;}\n      .summary-card p{color:#e5e7eb!important;}\n    }\n  </style>\n</head>\n<body style="margin:0;padding:0;background-color:#f1f5f9;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">\n<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color:#f1f5f9;">\n  <tr>\n    <td style="padding:24px 12px;">\n\n      <!-- Email container -->\n      <table class="email-container" role="presentation" cellspacing="0" cellpadding="0" border="0" width="600" style="margin:0 auto;max-width:600px;width:100%;">\n\n        <!-- Header -->\n        <tr>\n          <td style="background-color:#0f172a;border-radius:12px 12px 0 0;padding:24px 32px;text-align:center;">\n            <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:20px;font-weight:700;color:#ffffff;letter-spacing:-0.3px;">\n              {{email_logo_block}}\n            </p>\n          </td>\n        </tr>\n\n        <!-- Body card -->\n        <tr>\n          <td class="email-card" style="background-color:#ffffff;padding:40px 32px;border-left:1px solid #e2e8f0;border-right:1px solid #e2e8f0;">\n\n            <h1 class="email-heading" style="margin:0 0 24px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:26px;font-weight:700;color:#111827;line-height:1.2;">Your Car Wash Is Done!</h1>\n\n            <div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;">\n              \n                    <p style="margin:0 0 16px 0;font-size:16px;line-height:1.6;color:#374151;">Hi {{customer_name}},</p>\n                    <p style="margin:0 0 24px 0;font-size:16px;line-height:1.6;color:#374151;">Great news — <strong>{{technician_name}}</strong> has finished your car wash. Your vehicle is clean and ready to go!</p>\n                    \n        <table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" class="summary-card" style="background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin:0 0 8px 0;">\n          <tr>\n            <td style="padding:20px 24px;">\n              <table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">\n                <tr>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;width:50%;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Date &amp; Time</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:600;color:#111827;">{{booking_datetime}}</p>\n                  </td>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;width:50%;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Location</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:600;color:#111827;">{{location_name}}</p>\n                  </td>\n                </tr>\n                <tr>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Package</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:600;color:#111827;">{{package_name}}</p>\n                  </td>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Vehicle</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:600;color:#111827;">{{vehicle_year}} {{vehicle_make}} {{vehicle_model}}</p>\n                  </td>\n                </tr>\n                <tr>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Total</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:700;color:#111827;">{{total}}</p>\n                  </td>\n                  <td class="summary-cell" style="padding:6px 0;vertical-align:top;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.8px;">Technician</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:600;color:#111827;">{{technician_name}}</p>\n                  </td>\n                </tr>\n              </table>\n            </td>\n          </tr>\n        </table>\n                    <p style="margin:24px 0 0 0;font-size:14px;line-height:1.6;color:#6b7280;">Love the result? We&#8217;d appreciate a quick review — it helps us a lot!</p>\n                \n            </div>\n\n            \n            <table role="presentation" cellspacing="0" cellpadding="0" border="0" style="margin:32px auto 0 auto;">\n              <tr>\n                <td style="border-radius:8px;background:#1d4ed8;text-align:center;">\n                  <!--[if mso]><v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="{{tracking_url}}" style="height:48px;v-text-anchor:middle;width:220px;" arcsize="17%" fillcolor="#1d4ed8" stroke="f"><w:anchorlock/><center style="color:#ffffff;font-family:Arial,sans-serif;font-size:15px;font-weight:bold;">Leave a Review</center></v:roundrect><![endif]-->\n                  <a href="{{tracking_url}}" style="display:inline-block;padding:14px 32px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:15px;font-weight:600;color:#ffffff;text-decoration:none;border-radius:8px;mso-hide:all;">Leave a Review</a>\n                </td>\n              </tr>\n            </table>\n\n          </td>\n        </tr>\n\n        <!-- Footer -->\n        <tr>\n          <td style="background-color:#f8fafc;border:1px solid #e2e8f0;border-top:0;border-radius:0 0 12px 12px;padding:24px 32px;text-align:center;">\n            \n            <p class="muted" style="margin:12px 0 0 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:12px;line-height:1.5;color:#9ca3af;">\n              &copy; {{current_year}} {{app_name}} &nbsp;&middot;&nbsp; <a href="{{app_url}}" style="color:#9ca3af;text-decoration:none;">{{app_url}}</a>\n            </p>\n          </td>\n        </tr>\n\n      </table>\n    </td>\n  </tr>\n</table>\n</body>\n</html>	Hi {{customer_name}},\n\nYour car wash is done! {{technician_name}} has completed your appointment.\n\nDate: {{booking_datetime}}\nLocation: {{location_name}}\nPackage: {{package_name}}\nTotal paid: {{amount_paid}}\n\nLeave a review: {{tracking_url}}\n\nThank you,\n{{app_name}}	\N	\N	\N	t	t	2026-05-29 19:49:14	2026-05-30 00:30:12
5	Booking Cancelled	booking-cancelled	Sent when a booking is cancelled.	Your booking has been cancelled	<!DOCTYPE html>\n<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">\n<head>\n  <meta charset="utf-8">\n  <meta name="viewport" content="width=device-width,initial-scale=1">\n  <meta http-equiv="X-UA-Compatible" content="IE=edge">\n  <meta name="x-apple-disable-message-reformatting">\n  <title></title>\n  <!--[if mso]><xml><o:OfficeDocumentSettings><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml><![endif]-->\n  <style>\n    @media only screen and (max-width:600px){\n      .email-container{width:100%!important;max-width:100%!important;}\n      .stack-on-mobile{display:block!important;width:100%!important;}\n      .summary-cell{display:block!important;width:100%!important;padding:6px 16px!important;}\n    }\n    @media (prefers-color-scheme:dark){\n      body,table,.email-body{background-color:#111827!important;}\n      .email-card{background-color:#1f2937!important;border-color:#374151!important;}\n      h1,h2,h3,p,td,span,li{color:#e5e7eb!important;}\n      .email-heading{color:#f9fafb!important;}\n      .muted{color:#9ca3af!important;}\n      .summary-card{background-color:#111827!important;border-color:#374151!important;}\n      .summary-card p{color:#e5e7eb!important;}\n    }\n  </style>\n</head>\n<body style="margin:0;padding:0;background-color:#f1f5f9;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">\n<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color:#f1f5f9;">\n  <tr>\n    <td style="padding:24px 12px;">\n\n      <!-- Email container -->\n      <table class="email-container" role="presentation" cellspacing="0" cellpadding="0" border="0" width="600" style="margin:0 auto;max-width:600px;width:100%;">\n\n        <!-- Header -->\n        <tr>\n          <td style="background-color:#0f172a;border-radius:12px 12px 0 0;padding:24px 32px;text-align:center;">\n            <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:20px;font-weight:700;color:#ffffff;letter-spacing:-0.3px;">\n              {{email_logo_block}}\n            </p>\n          </td>\n        </tr>\n\n        <!-- Body card -->\n        <tr>\n          <td class="email-card" style="background-color:#ffffff;padding:40px 32px;border-left:1px solid #e2e8f0;border-right:1px solid #e2e8f0;">\n\n            <h1 class="email-heading" style="margin:0 0 24px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:26px;font-weight:700;color:#111827;line-height:1.2;">Booking Cancelled</h1>\n\n            <div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;">\n              \n                    <p style="margin:0 0 16px 0;font-size:16px;line-height:1.6;color:#374151;">Hi {{customer_name}},</p>\n                    <p style="margin:0 0 24px 0;font-size:16px;line-height:1.6;color:#374151;">Your car wash appointment on <strong>{{booking_datetime}}</strong> has been cancelled.</p>\n                    <p style="margin:0 0 24px 0;font-size:14px;line-height:1.6;color:#6b7280;">If a refund is applicable, please allow 3–5 business days for it to appear on your statement.</p>\n                \n            </div>\n\n            \n            <table role="presentation" cellspacing="0" cellpadding="0" border="0" style="margin:32px auto 0 auto;">\n              <tr>\n                <td style="border-radius:8px;background:#1d4ed8;text-align:center;">\n                  <!--[if mso]><v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="{{app_url}}/book" style="height:48px;v-text-anchor:middle;width:220px;" arcsize="17%" fillcolor="#1d4ed8" stroke="f"><w:anchorlock/><center style="color:#ffffff;font-family:Arial,sans-serif;font-size:15px;font-weight:bold;">Book Again</center></v:roundrect><![endif]-->\n                  <a href="{{app_url}}/book" style="display:inline-block;padding:14px 32px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:15px;font-weight:600;color:#ffffff;text-decoration:none;border-radius:8px;mso-hide:all;">Book Again</a>\n                </td>\n              </tr>\n            </table>\n\n          </td>\n        </tr>\n\n        <!-- Footer -->\n        <tr>\n          <td style="background-color:#f8fafc;border:1px solid #e2e8f0;border-top:0;border-radius:0 0 12px 12px;padding:24px 32px;text-align:center;">\n            \n            <p class="muted" style="margin:12px 0 0 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:12px;line-height:1.5;color:#9ca3af;">\n              &copy; {{current_year}} {{app_name}} &nbsp;&middot;&nbsp; <a href="{{app_url}}" style="color:#9ca3af;text-decoration:none;">{{app_url}}</a>\n            </p>\n          </td>\n        </tr>\n\n      </table>\n    </td>\n  </tr>\n</table>\n</body>\n</html>	Hi {{customer_name}},\n\nYour booking on {{booking_datetime}} has been cancelled.\n\nIf a refund is applicable, please allow 3-5 business days.\n\nBook again: {{app_url}}/book\n\n{{app_name}}	\N	\N	\N	t	t	2026-05-29 19:49:14	2026-05-30 00:30:12
6	Balance Due	booking-balance-due	Sent when an additional balance is added to a booking.	Action required: Balance due on your booking	<!DOCTYPE html>\n<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">\n<head>\n  <meta charset="utf-8">\n  <meta name="viewport" content="width=device-width,initial-scale=1">\n  <meta http-equiv="X-UA-Compatible" content="IE=edge">\n  <meta name="x-apple-disable-message-reformatting">\n  <title></title>\n  <!--[if mso]><xml><o:OfficeDocumentSettings><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml><![endif]-->\n  <style>\n    @media only screen and (max-width:600px){\n      .email-container{width:100%!important;max-width:100%!important;}\n      .stack-on-mobile{display:block!important;width:100%!important;}\n      .summary-cell{display:block!important;width:100%!important;padding:6px 16px!important;}\n    }\n    @media (prefers-color-scheme:dark){\n      body,table,.email-body{background-color:#111827!important;}\n      .email-card{background-color:#1f2937!important;border-color:#374151!important;}\n      h1,h2,h3,p,td,span,li{color:#e5e7eb!important;}\n      .email-heading{color:#f9fafb!important;}\n      .muted{color:#9ca3af!important;}\n      .summary-card{background-color:#111827!important;border-color:#374151!important;}\n      .summary-card p{color:#e5e7eb!important;}\n    }\n  </style>\n</head>\n<body style="margin:0;padding:0;background-color:#f1f5f9;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">\n<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color:#f1f5f9;">\n  <tr>\n    <td style="padding:24px 12px;">\n\n      <!-- Email container -->\n      <table class="email-container" role="presentation" cellspacing="0" cellpadding="0" border="0" width="600" style="margin:0 auto;max-width:600px;width:100%;">\n\n        <!-- Header -->\n        <tr>\n          <td style="background-color:#0f172a;border-radius:12px 12px 0 0;padding:24px 32px;text-align:center;">\n            <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:20px;font-weight:700;color:#ffffff;letter-spacing:-0.3px;">\n              {{email_logo_block}}\n            </p>\n          </td>\n        </tr>\n\n        <!-- Body card -->\n        <tr>\n          <td class="email-card" style="background-color:#ffffff;padding:40px 32px;border-left:1px solid #e2e8f0;border-right:1px solid #e2e8f0;">\n\n            <h1 class="email-heading" style="margin:0 0 24px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:26px;font-weight:700;color:#111827;line-height:1.2;">Balance Due</h1>\n\n            <div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;">\n              \n                    <p style="margin:0 0 16px 0;font-size:16px;line-height:1.6;color:#374151;">Hi {{customer_name}},</p>\n                    <p style="margin:0 0 24px 0;font-size:16px;line-height:1.6;color:#374151;">There is an outstanding balance on your booking scheduled for <strong>{{booking_datetime}}</strong>.</p>\n                    \n        <table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" class="summary-card" style="background-color:#fefce8;border:1px solid #fde68a;border-radius:10px;margin:0 0 8px 0;">\n          <tr>\n            <td style="padding:20px 24px;">\n              <table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">\n                <tr>\n                  <td style="padding:6px 0;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#92400e;text-transform:uppercase;letter-spacing:0.8px;">New Total</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:600;color:#111827;">{{total}}</p>\n                  </td>\n                  <td style="padding:6px 0;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#92400e;text-transform:uppercase;letter-spacing:0.8px;">Amount Paid</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:600;color:#111827;">{{amount_paid}}</p>\n                  </td>\n                  <td style="padding:6px 0;">\n                    <p style="margin:0 0 2px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:600;color:#92400e;text-transform:uppercase;letter-spacing:0.8px;">Balance Due</p>\n                    <p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:700;color:#b45309;">{{balance_due}}</p>\n                  </td>\n                </tr>\n              </table>\n            </td>\n          </tr>\n        </table>\n                    <p style="margin:24px 0 0 0;font-size:14px;line-height:1.6;color:#6b7280;">You may also pay this balance in person at your appointment.</p>\n                \n            </div>\n\n            \n            <table role="presentation" cellspacing="0" cellpadding="0" border="0" style="margin:32px auto 0 auto;">\n              <tr>\n                <td style="border-radius:8px;background:#1d4ed8;text-align:center;">\n                  <!--[if mso]><v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="{{pay_balance_url}}" style="height:48px;v-text-anchor:middle;width:220px;" arcsize="17%" fillcolor="#1d4ed8" stroke="f"><w:anchorlock/><center style="color:#ffffff;font-family:Arial,sans-serif;font-size:15px;font-weight:bold;">Pay Balance Online</center></v:roundrect><![endif]-->\n                  <a href="{{pay_balance_url}}" style="display:inline-block;padding:14px 32px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:15px;font-weight:600;color:#ffffff;text-decoration:none;border-radius:8px;mso-hide:all;">Pay Balance Online</a>\n                </td>\n              </tr>\n            </table>\n\n          </td>\n        </tr>\n\n        <!-- Footer -->\n        <tr>\n          <td style="background-color:#f8fafc;border:1px solid #e2e8f0;border-top:0;border-radius:0 0 12px 12px;padding:24px 32px;text-align:center;">\n            \n            <p class="muted" style="margin:12px 0 0 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:12px;line-height:1.5;color:#9ca3af;">\n              &copy; {{current_year}} {{app_name}} &nbsp;&middot;&nbsp; <a href="{{app_url}}" style="color:#9ca3af;text-decoration:none;">{{app_url}}</a>\n            </p>\n          </td>\n        </tr>\n\n      </table>\n    </td>\n  </tr>\n</table>\n</body>\n</html>	Hi {{customer_name}},\n\nThere is a balance due on your booking for {{booking_datetime}}.\n\nNew total: {{total}}\nAmount paid: {{amount_paid}}\nBalance due: {{balance_due}}\n\nPay online: {{pay_balance_url}}\n\nYou may also pay in person at your appointment.\n\n{{app_name}}	\N	\N	\N	t	t	2026-05-29 19:49:14	2026-05-30 00:30:12
\.


--
-- Data for Name: failed_jobs; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.failed_jobs (id, uuid, connection, queue, payload, exception, failed_at) FROM stdin;
\.


--
-- Data for Name: faq_categories; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.faq_categories (id, name, display_order, is_active, created_at, updated_at) FROM stdin;
1	Refunds	0	t	2026-05-31 20:46:23	2026-05-31 20:48:44
2	Damage	1	t	2026-05-31 20:46:23	2026-05-31 20:58:59
3	Limit of Liability	2	t	2026-05-31 20:46:23	2026-05-31 21:00:16
4	Repair Policy	3	t	2026-05-31 21:01:38	2026-05-31 21:01:38
5	Possessions Left in Vehicle	4	t	2026-05-31 21:03:13	2026-05-31 21:03:13
\.


--
-- Data for Name: faq_items; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.faq_items (id, faq_category_id, question, answer, display_order, is_active, created_at, updated_at) FROM stdin;
8	5	Are you responsible for belongings left in my vehicle?	Accurate Car Wash is not responsible for any belongings that may be lost, stolen, damaged, or otherwise disposed of in the course of cleaning your vehicle. Each customer should remove any belongings they consider to be of value before exiting their vehicle.	1	t	2026-05-31 21:03:41	2026-05-31 21:03:41
1	1	Do you provide refunds?	<p>We do not normally give refunds. If you cannot keep your appointment, we will gladly reschedule you for a later date (within 30 days). If you have purchased multiple services, we will work with you to reschedule the services paid for. If a refund is awarded, we will <strong>discount a 10% or $5.00</strong> processing fee from your refund.</p>	0	t	2026-05-31 20:46:23	2026-05-31 21:52:43
3	2	What happens if my vehicle is damaged during the wash?	<p>Any claims for damage or unsatisfactory service must be made prior to exiting the premises. We are not responsible for any damage to you or your vehicle that may occur while your vehicle is being vacuumed or washed, or while you are on our premises.<br><br>We are not responsible for damage related to pre-existing conditions (tears, scratches, dents, stains, odors, etc.) or accessories and components such as automated windshield wiper systems, wiper blades, rear window wipers, loose interior trim or exterior moldings, mirrors, trailer hitch caps, roof racks, antennas, insignias, aftermarket accessories, magnetic signage, running boards, hood ornaments, alloy/chrome/mag wheels, headlights, rear lamps, or reflectors.<br><br>We are only responsible for damage directly caused by our equipment during the wash, provided it does not involve a pre-existing condition, does not arise from your negligence or misconduct, and is not caused by another customer's actions.</p>	0	t	2026-05-31 20:46:23	2026-05-31 21:53:08
5	3	What is the limit of your liability for services?	<p>Our entire liability for providing services is limited to the invoice amount for the service we provide, except for damage directly caused by our equipment during the wash — provided it does not involve a pre-existing condition, does not arise from your negligence or misconduct, and is not caused by another customer's actions.<br><br>We will not pay for your litigation costs or attorney's fees in any claim or lawsuit against us. Should we prevail in any such claim, we will seek reimbursement of our own litigation costs and attorney's fees.</p>	0	t	2026-05-31 20:46:23	2026-05-31 21:53:36
7	4	How do you handle vehicle repairs for damage caused by your equipment?	<p>Should your vehicle suffer damage directly caused by our equipment provided it does not involve a pre-existing condition, does not arise from your negligence, and is not caused by another customer we will provide you with the contact information of a reputable auto body shop to prepare an estimate and complete the repair.<br><br>Should you choose a different body shop, we reserve the right to reimburse you only for the reasonable cost of the repairs for which we agree we are responsible.</p>	1	t	2026-05-31 21:02:23	2026-05-31 21:53:54
\.


--
-- Data for Name: fleet_account_vehicles; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.fleet_account_vehicles (id, fleet_account_id, vehicle_id, created_at, updated_at) FROM stdin;
\.


--
-- Data for Name: fleet_accounts; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.fleet_accounts (id, company_name, contact_name, contact_email, contact_phone, billing_cycle, discount_percent, net_days, stripe_customer_id, created_at, updated_at) FROM stdin;
1	Manny Designed It	Manny Rosa	mannydesignedit@gmail.com	3235959337	monthly	100	30	\N	2026-05-25 21:47:55	2026-05-25 21:47:55
\.


--
-- Data for Name: job_batches; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.job_batches (id, name, total_jobs, pending_jobs, failed_jobs, failed_job_ids, options, cancelled_at, created_at, finished_at) FROM stdin;
\.


--
-- Data for Name: job_status_logs; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.job_status_logs (id, booking_id, status, note, lat, lng, created_by, created_at, updated_at) FROM stdin;
3	12	arrived	\N	\N	\N	1	2026-05-27 05:21:36	2026-05-27 05:21:36
4	1	arrived	\N	\N	\N	1	2026-05-27 05:28:30	2026-05-27 05:28:30
6	1	in_progress	\N	\N	\N	1	2026-05-27 05:28:34	2026-05-27 05:28:34
7	1	completed	\N	\N	\N	1	2026-05-27 05:28:38	2026-05-27 05:28:38
10	192	arrived	\N	\N	\N	1	2026-05-30 04:30:22	2026-05-30 04:30:22
11	192	in_progress	\N	\N	\N	1	2026-05-30 04:37:43	2026-05-30 04:37:43
12	192	completed	\N	\N	\N	1	2026-05-30 04:38:56	2026-05-30 04:38:56
14	196	arrived	\N	\N	\N	1	2026-05-30 04:42:31	2026-05-30 04:42:31
15	196	in_progress	\N	\N	\N	1	2026-05-30 04:42:57	2026-05-30 04:42:57
16	196	completed	\N	\N	\N	1	2026-05-30 04:43:22	2026-05-30 04:43:22
18	159	arrived	\N	\N	\N	1	2026-05-30 04:55:27	2026-05-30 04:55:27
19	159	in_progress	\N	\N	\N	1	2026-05-30 04:56:30	2026-05-30 04:56:30
20	159	completed	\N	\N	\N	1	2026-05-30 05:01:03	2026-05-30 05:01:03
22	174	arrived	\N	\N	\N	1	2026-05-30 06:46:20	2026-05-30 06:46:20
24	187	arrived	\N	\N	\N	1	2026-05-30 06:46:26	2026-05-30 06:46:26
26	202	arrived	\N	\N	\N	1	2026-05-30 06:46:35	2026-05-30 06:46:35
27	188	completed	\N	\N	\N	1	2026-05-30 06:46:59	2026-05-30 06:46:59
1	1	arrived	\N	\N	\N	1	2026-05-26 19:12:36	2026-05-26 19:12:36
2	12	arrived	Customer marked on the way.	\N	\N	4	2026-05-27 05:20:14	2026-05-27 05:20:14
5	6	arrived	\N	\N	\N	1	2026-05-27 05:28:32	2026-05-27 05:28:32
8	14	arrived	\N	\N	\N	1	2026-05-28 18:46:02	2026-05-28 18:46:02
9	192	arrived	\N	\N	\N	1	2026-05-30 04:30:10	2026-05-30 04:30:10
13	196	arrived	\N	\N	\N	1	2026-05-30 04:41:40	2026-05-30 04:41:40
17	159	arrived	\N	\N	\N	1	2026-05-30 04:55:01	2026-05-30 04:55:01
21	174	arrived	\N	\N	\N	1	2026-05-30 05:33:28	2026-05-30 05:33:28
23	187	arrived	\N	\N	\N	1	2026-05-30 06:46:23	2026-05-30 06:46:23
25	202	arrived	\N	\N	\N	1	2026-05-30 06:46:32	2026-05-30 06:46:32
28	9	arrived	\N	\N	\N	1	2026-05-31 17:00:32	2026-05-31 17:00:32
29	166	arrived	\N	\N	\N	30	2026-06-01 05:00:50	2026-06-01 05:00:50
30	5	arrived	\N	\N	\N	30	2026-06-03 03:32:02	2026-06-03 03:32:02
31	8	arrived	\N	\N	\N	30	2026-06-03 03:32:39	2026-06-03 03:32:39
32	8	in_progress	\N	\N	\N	30	2026-06-03 03:32:56	2026-06-03 03:32:56
33	8	completed	\N	\N	\N	30	2026-06-03 03:33:21	2026-06-03 03:33:21
34	173	completed	\N	\N	\N	30	2026-06-03 03:34:30	2026-06-03 03:34:30
35	205	arrived	\N	\N	\N	30	2026-06-06 03:31:02	2026-06-06 03:31:02
36	205	in_progress	\N	\N	\N	30	2026-06-06 03:31:59	2026-06-06 03:31:59
37	205	completed	\N	\N	\N	30	2026-06-06 03:32:31	2026-06-06 03:32:31
38	210	arrived	\N	\N	\N	30	2026-06-07 14:58:25	2026-06-07 14:58:25
39	210	in_progress	\N	\N	\N	30	2026-06-07 15:00:04	2026-06-07 15:00:04
40	210	completed	\N	\N	\N	30	2026-06-07 15:02:37	2026-06-07 15:02:37
41	7	no_show	\N	\N	\N	30	2026-06-07 15:07:04	2026-06-07 15:07:04
42	165	arrived	\N	\N	\N	30	2026-06-07 15:23:15	2026-06-07 15:23:15
43	156	arrived	\N	\N	\N	30	2026-06-07 15:23:21	2026-06-07 15:23:21
44	209	arrived	\N	\N	\N	30	2026-06-07 15:23:24	2026-06-07 15:23:24
45	204	arrived	\N	\N	\N	30	2026-06-07 15:23:27	2026-06-07 15:23:27
46	165	in_progress	\N	\N	\N	30	2026-06-07 15:23:51	2026-06-07 15:23:51
47	156	in_progress	\N	\N	\N	30	2026-06-07 15:24:15	2026-06-07 15:24:15
48	204	in_progress	\N	\N	\N	30	2026-06-07 15:24:24	2026-06-07 15:24:24
49	209	in_progress	\N	\N	\N	30	2026-06-07 15:24:27	2026-06-07 15:24:27
50	165	completed	\N	\N	\N	30	2026-06-07 15:24:35	2026-06-07 15:24:35
51	204	completed	\N	\N	\N	30	2026-06-07 15:24:40	2026-06-07 15:24:40
52	156	completed	\N	\N	\N	30	2026-06-07 15:24:44	2026-06-07 15:24:44
53	209	completed	\N	\N	\N	30	2026-06-07 15:31:24	2026-06-07 15:31:24
54	213	arrived	\N	\N	\N	30	2026-06-16 15:08:09	2026-06-16 15:08:09
55	213	in_progress	\N	\N	\N	30	2026-06-16 15:08:41	2026-06-16 15:08:41
56	213	completed	\N	\N	\N	30	2026-06-16 15:10:04	2026-06-16 15:10:04
57	13	no_show	\N	\N	\N	36	2026-06-18 03:48:09	2026-06-18 03:48:09
58	215	no_show	\N	\N	\N	36	2026-06-19 23:30:15	2026-06-19 23:30:15
\.


--
-- Data for Name: jobs; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.jobs (id, queue, payload, attempts, reserved_at, available_at, created_at) FROM stdin;
\.


--
-- Data for Name: location_availability_slots; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.location_availability_slots (id, location_id, day_of_week, opens_at, closes_at, is_active, created_at, updated_at) FROM stdin;
239	15	0	09:00	17:00	f	2026-06-07 14:48:36	2026-06-07 14:48:36
240	15	1	09:00	17:00	f	2026-06-07 14:48:36	2026-06-07 14:48:36
241	15	2	09:00	11:30	t	2026-06-07 14:48:36	2026-06-07 14:48:36
242	15	3	09:00	11:30	t	2026-06-07 14:48:36	2026-06-07 14:48:36
243	15	4	09:00	11:30	t	2026-06-07 14:48:36	2026-06-07 14:48:36
244	15	5	09:00	17:00	f	2026-06-07 14:48:36	2026-06-07 14:48:36
80	9	0	09:00	17:00	f	2026-06-02 16:10:06	2026-06-02 16:10:06
81	9	1	09:00	17:00	f	2026-06-02 16:10:06	2026-06-02 16:10:06
82	9	2	09:00	17:00	f	2026-06-02 16:10:06	2026-06-02 16:10:06
83	9	3	09:00	17:00	f	2026-06-02 16:10:06	2026-06-02 16:10:06
84	9	4	09:00	11:30	t	2026-06-02 16:10:06	2026-06-02 16:10:06
85	9	5	09:00	17:00	f	2026-06-02 16:10:06	2026-06-02 16:10:06
86	9	6	09:00	17:00	f	2026-06-02 16:10:06	2026-06-02 16:10:06
87	18	0	09:00	17:00	f	2026-06-02 16:17:26	2026-06-02 16:17:26
88	18	1	09:00	17:00	f	2026-06-02 16:17:26	2026-06-02 16:17:26
89	18	2	09:00	17:00	f	2026-06-02 16:17:26	2026-06-02 16:17:26
90	18	3	09:00	17:00	f	2026-06-02 16:17:26	2026-06-02 16:17:26
91	18	4	09:00	17:00	f	2026-06-02 16:17:26	2026-06-02 16:17:26
92	18	5	09:00	11:30	t	2026-06-02 16:17:26	2026-06-02 16:17:26
93	18	6	09:00	17:00	f	2026-06-02 16:17:26	2026-06-02 16:17:26
94	2	0	09:00	17:00	f	2026-06-03 03:03:50	2026-06-03 03:03:50
95	2	1	09:00	11:30	t	2026-06-03 03:03:50	2026-06-03 03:03:50
96	2	2	09:00	17:00	f	2026-06-03 03:03:50	2026-06-03 03:03:50
97	2	3	09:00	17:00	f	2026-06-03 03:03:50	2026-06-03 03:03:50
98	2	4	09:00	17:00	f	2026-06-03 03:03:50	2026-06-03 03:03:50
99	2	5	09:00	17:00	f	2026-06-03 03:03:50	2026-06-03 03:03:50
100	2	6	09:00	17:00	f	2026-06-03 03:03:50	2026-06-03 03:03:50
101	3	0	09:00	17:00	f	2026-06-03 03:04:14	2026-06-03 03:04:14
102	3	1	09:00	17:00	f	2026-06-03 03:04:14	2026-06-03 03:04:14
103	3	2	09:00	17:00	f	2026-06-03 03:04:14	2026-06-03 03:04:14
104	3	3	09:00	17:00	f	2026-06-03 03:04:14	2026-06-03 03:04:14
105	3	4	09:00	11:30	t	2026-06-03 03:04:14	2026-06-03 03:04:14
106	3	5	09:00	17:00	f	2026-06-03 03:04:14	2026-06-03 03:04:14
107	3	6	09:00	17:00	f	2026-06-03 03:04:14	2026-06-03 03:04:14
108	4	0	09:00	17:00	f	2026-06-03 03:04:43	2026-06-03 03:04:43
109	4	1	09:00	17:00	f	2026-06-03 03:04:43	2026-06-03 03:04:43
110	4	2	09:00	17:00	f	2026-06-03 03:04:43	2026-06-03 03:04:43
111	4	3	09:00	11:30	t	2026-06-03 03:04:43	2026-06-03 03:04:43
112	4	4	09:00	17:00	f	2026-06-03 03:04:43	2026-06-03 03:04:43
113	4	5	09:00	17:00	f	2026-06-03 03:04:43	2026-06-03 03:04:43
114	4	6	09:00	17:00	f	2026-06-03 03:04:43	2026-06-03 03:04:43
115	7	0	09:00	17:00	f	2026-06-03 03:08:25	2026-06-03 03:08:25
116	7	1	09:00	11:30	t	2026-06-03 03:08:25	2026-06-03 03:08:25
117	7	2	09:00	17:00	f	2026-06-03 03:08:25	2026-06-03 03:08:25
118	7	3	09:00	17:00	f	2026-06-03 03:08:25	2026-06-03 03:08:25
119	7	4	09:00	11:30	t	2026-06-03 03:08:25	2026-06-03 03:08:25
120	7	5	09:00	11:30	t	2026-06-03 03:08:25	2026-06-03 03:08:25
121	7	6	09:00	17:00	f	2026-06-03 03:08:25	2026-06-03 03:08:25
122	8	0	09:00	17:00	f	2026-06-03 03:08:45	2026-06-03 03:08:45
123	8	1	09:00	17:00	f	2026-06-03 03:08:45	2026-06-03 03:08:45
124	8	2	09:00	17:00	f	2026-06-03 03:08:45	2026-06-03 03:08:45
125	8	3	09:00	17:00	f	2026-06-03 03:08:45	2026-06-03 03:08:45
126	8	4	09:00	11:30	t	2026-06-03 03:08:45	2026-06-03 03:08:45
127	8	5	09:00	17:00	f	2026-06-03 03:08:45	2026-06-03 03:08:45
128	8	6	09:00	17:00	f	2026-06-03 03:08:45	2026-06-03 03:08:45
129	10	0	09:00	17:00	f	2026-06-03 03:09:18	2026-06-03 03:09:18
130	10	1	09:00	17:00	f	2026-06-03 03:09:18	2026-06-03 03:09:18
131	10	2	09:00	17:00	f	2026-06-03 03:09:18	2026-06-03 03:09:18
132	10	3	09:00	11:30	t	2026-06-03 03:09:18	2026-06-03 03:09:18
133	10	4	09:00	17:00	f	2026-06-03 03:09:18	2026-06-03 03:09:18
134	10	5	09:00	17:00	f	2026-06-03 03:09:18	2026-06-03 03:09:18
135	10	6	09:00	17:00	f	2026-06-03 03:09:18	2026-06-03 03:09:18
136	11	0	09:00	17:00	f	2026-06-03 03:09:56	2026-06-03 03:09:56
137	11	1	09:00	17:00	f	2026-06-03 03:09:56	2026-06-03 03:09:56
138	11	2	09:00	11:30	t	2026-06-03 03:09:56	2026-06-03 03:09:56
139	11	3	09:00	11:30	t	2026-06-03 03:09:56	2026-06-03 03:09:56
140	11	4	09:00	11:30	t	2026-06-03 03:09:56	2026-06-03 03:09:56
141	11	5	09:00	17:00	f	2026-06-03 03:09:56	2026-06-03 03:09:56
142	11	6	09:00	17:00	f	2026-06-03 03:09:56	2026-06-03 03:09:56
143	12	0	09:00	17:00	f	2026-06-03 03:10:19	2026-06-03 03:10:19
144	12	1	09:00	11:30	t	2026-06-03 03:10:19	2026-06-03 03:10:19
145	12	2	09:00	17:00	f	2026-06-03 03:10:19	2026-06-03 03:10:19
146	12	3	09:00	17:00	f	2026-06-03 03:10:19	2026-06-03 03:10:19
147	12	4	09:00	17:00	f	2026-06-03 03:10:19	2026-06-03 03:10:19
148	12	5	09:00	17:00	f	2026-06-03 03:10:19	2026-06-03 03:10:19
149	12	6	09:00	17:00	f	2026-06-03 03:10:19	2026-06-03 03:10:19
150	14	0	09:00	17:00	f	2026-06-03 03:10:35	2026-06-03 03:10:35
151	14	1	09:00	17:00	f	2026-06-03 03:10:35	2026-06-03 03:10:35
152	14	2	09:00	11:30	t	2026-06-03 03:10:35	2026-06-03 03:10:35
153	14	3	09:00	17:00	f	2026-06-03 03:10:35	2026-06-03 03:10:35
154	14	4	09:00	17:00	f	2026-06-03 03:10:35	2026-06-03 03:10:35
155	14	5	09:00	17:00	f	2026-06-03 03:10:35	2026-06-03 03:10:35
156	14	6	09:00	17:00	f	2026-06-03 03:10:35	2026-06-03 03:10:35
157	13	0	09:00	17:00	f	2026-06-03 03:10:53	2026-06-03 03:10:53
158	13	1	09:00	17:00	f	2026-06-03 03:10:53	2026-06-03 03:10:53
159	13	2	09:00	11:30	t	2026-06-03 03:10:53	2026-06-03 03:10:53
160	13	3	09:00	17:00	f	2026-06-03 03:10:53	2026-06-03 03:10:53
161	13	4	09:00	17:00	f	2026-06-03 03:10:53	2026-06-03 03:10:53
162	13	5	09:00	17:00	f	2026-06-03 03:10:53	2026-06-03 03:10:53
163	13	6	09:00	17:00	f	2026-06-03 03:10:53	2026-06-03 03:10:53
171	16	0	09:00	17:00	f	2026-06-03 03:11:44	2026-06-03 03:11:44
172	16	1	09:00	11:30	t	2026-06-03 03:11:44	2026-06-03 03:11:44
173	16	2	09:00	17:00	f	2026-06-03 03:11:44	2026-06-03 03:11:44
174	16	3	09:00	17:00	f	2026-06-03 03:11:44	2026-06-03 03:11:44
175	16	4	09:00	17:00	f	2026-06-03 03:11:44	2026-06-03 03:11:44
176	16	5	09:00	17:00	f	2026-06-03 03:11:44	2026-06-03 03:11:44
177	16	6	09:00	17:00	f	2026-06-03 03:11:44	2026-06-03 03:11:44
178	17	0	09:00	17:00	f	2026-06-03 03:12:09	2026-06-03 03:12:09
179	17	1	09:00	17:00	f	2026-06-03 03:12:10	2026-06-03 03:12:10
180	17	2	09:00	17:00	f	2026-06-03 03:12:10	2026-06-03 03:12:10
181	17	3	09:00	17:00	f	2026-06-03 03:12:10	2026-06-03 03:12:10
182	17	4	09:00	17:00	f	2026-06-03 03:12:10	2026-06-03 03:12:10
183	17	5	09:00	11:30	t	2026-06-03 03:12:10	2026-06-03 03:12:10
184	17	6	09:00	17:00	f	2026-06-03 03:12:10	2026-06-03 03:12:10
245	15	6	09:00	17:00	f	2026-06-07 14:48:36	2026-06-07 14:48:36
230	19	0	09:00	17:00	f	2026-06-06 23:58:18	2026-06-06 23:58:18
231	19	1	09:00	14:00	f	2026-06-06 23:58:18	2026-06-06 23:58:18
232	19	2	09:00	17:00	f	2026-06-06 23:58:18	2026-06-06 23:58:18
233	19	3	09:00	09:15	t	2026-06-06 23:58:18	2026-06-06 23:58:18
234	19	3	09:30	09:45	t	2026-06-06 23:58:18	2026-06-06 23:58:18
235	19	3	10:00	10:15	t	2026-06-06 23:58:18	2026-06-06 23:58:18
236	19	4	09:00	17:00	f	2026-06-06 23:58:18	2026-06-06 23:58:18
237	19	5	09:00	17:00	f	2026-06-06 23:58:18	2026-06-06 23:58:18
238	19	6	09:00	17:00	f	2026-06-06 23:58:18	2026-06-06 23:58:18
\.


--
-- Data for Name: location_closed_dates; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.location_closed_dates (id, location_id, start_date, end_date, label, created_at, updated_at) FROM stdin;
1	15	2026-06-17	2026-06-17	\N	2026-06-07 14:48:17	2026-06-07 14:48:17
\.


--
-- Data for Name: location_package; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.location_package (location_id, package_id) FROM stdin;
11	4
9	4
9	8
14	8
18	8
2	8
4	8
15	8
8	8
12	8
10	8
11	8
19	8
9	10
14	10
18	10
2	10
4	10
15	10
8	10
12	10
10	10
11	10
19	10
9	7
14	7
18	7
2	7
4	7
15	7
8	7
12	7
10	7
11	7
19	7
9	9
14	9
18	9
2	9
4	9
15	9
8	9
12	9
10	9
11	9
19	9
9	5
14	5
18	5
2	5
4	5
15	5
8	5
12	5
10	5
11	5
19	5
14	4
18	4
2	4
4	4
15	4
8	4
12	4
10	4
19	4
9	6
14	6
18	6
2	6
4	6
15	6
8	6
12	6
10	6
11	6
19	6
9	1
14	1
18	1
2	1
4	1
15	1
8	1
12	1
10	1
11	1
19	1
9	3
14	3
18	3
2	3
4	3
15	3
8	3
12	3
10	3
11	3
19	3
9	2
14	2
18	2
2	2
4	2
15	2
8	2
12	2
10	2
11	2
19	2
17	11
16	11
3	11
13	11
16	12
3	12
13	12
17	12
16	13
3	13
13	13
17	13
16	14
3	14
13	14
17	14
16	15
3	15
13	15
17	15
16	16
3	16
13	16
17	16
16	17
3	17
13	17
17	17
16	18
3	18
13	18
17	18
7	19
7	20
7	21
7	22
7	23
7	24
\.


--
-- Data for Name: location_types; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.location_types (id, slug, label, is_active, created_at, updated_at, description) FROM stdin;
2	mobile_zone	Mobile zone	f	2026-05-29 00:34:33	2026-05-29 01:30:39	We come to you at your home, office, or wherever works best.
1	fixed	Site	t	2026-05-29 00:34:33	2026-05-30 05:02:11	Drop off at one of our professional wash bays and pick it up spotless.
\.


--
-- Data for Name: location_user; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.location_user (location_id, user_id) FROM stdin;
11	3
9	3
15	31
14	32
8	32
12	32
10	32
11	33
3	34
7	34
11	34
17	34
16	34
9	35
18	35
2	35
4	35
13	35
13	36
15	36
10	36
11	36
\.


--
-- Data for Name: locations; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.locations (id, name, type, address, city, state, zip, lat, lng, service_radius_miles, service_zip_codes, is_active, opens_at, closes_at, created_at, updated_at, display_order) FROM stdin;
14	1640 S. Sepulveda	fixed	1640 S. Sepulveda Blvd	Los Angeles	CA	90025	34.0440000	-118.4420000	\N	\N	t	08:00:00	18:00:00	2026-05-25 20:59:46	2026-05-30 06:51:51	6
12	Marina Towers	fixed	4640 Admiralty Way	Marina Del Rey	CA	90292	33.9803000	-118.4517000	\N	\N	t	08:00:00	18:00:00	2026-05-25 20:59:46	2026-05-30 06:51:51	7
11	Water Garden	fixed	1620 26th St	Santa Monica	CA	90404	34.0240000	-118.4740000	\N	\N	t	08:00:00	18:00:00	2026-05-25 20:59:46	2026-05-30 06:51:51	8
10	The Brickyard	fixed	12105 W. Waterfront Drive	Playa Vista	CA	90094	33.9755000	-118.4195000	\N	\N	t	08:00:00	18:00:00	2026-05-25 20:59:46	2026-05-30 06:51:51	9
9	10900 Wilshire	fixed	10900 Wilshire Blvd	Los Angeles	CA	90024	34.0590000	-118.4450000	\N	\N	t	08:00:00	18:00:00	2026-05-25 20:59:46	2026-05-30 06:51:51	10
8	Collective P4	fixed	11975 Bluff Creek Dr	Los Angeles	CA	90094	33.9766000	-118.4173000	\N	\N	t	08:00:00	18:00:00	2026-05-25 20:59:46	2026-05-30 06:51:51	11
7	Polestar Los Angeles	fixed	9701 Wilshire Blvd	Beverly Hills	CA	90212	34.0669000	-118.4118000	\N	\N	t	08:00:00	18:00:00	2026-05-25 20:59:46	2026-05-30 06:51:51	12
6	Blackwelder	fixed	3129 S. La Cienega Blvd	Los Angeles	CA	90016	34.0260000	-118.3580000	\N	\N	t	08:00:00	18:00:00	2026-05-25 20:59:46	2026-05-30 06:51:51	13
5	Chatsworth	fixed	10000 Canoga Ave, C3	Chatsworth	CA	91311	34.2572000	-118.6012000	\N	\N	t	08:00:00	18:00:00	2026-05-25 20:59:46	2026-05-30 06:51:51	14
4	888 N Douglas	fixed	888 N Douglas St	El Segundo	CA	90245	33.9192000	-118.4165000	\N	\N	t	08:00:00	18:00:00	2026-05-25 20:59:46	2026-05-30 06:51:51	15
3	9701 Wilshire	fixed	9701 Wilshire Blvd	Beverly Hills	CA	90212	34.0668000	-118.4117000	\N	\N	t	08:00:00	18:00:00	2026-05-25 20:59:46	2026-05-30 06:51:51	16
2	6345 Balboa	fixed	6345 Balboa Blvd	Lake Balboa	CA	91406	34.1861000	-118.4980000	\N	\N	t	08:00:00	18:00:00	2026-05-25 20:59:46	2026-05-30 06:51:51	17
1	LA Metro Mobile	mobile_zone	\N	Los Angeles	CA	\N	\N	\N	30	["91406","90212","90245","91311","90016","90094","90024","90404","90292","90066","90025","91367","90210","91505","91103"]	f	08:00:00	18:00:00	2026-05-25 20:59:46	2026-06-06 23:28:44	18
19	74 N Pasadena	fixed	74 N Pasadena Ave	Pasadena	CA	91103	34.1590000	-118.1420000	\N	\N	t	08:00:00	18:00:00	2026-05-25 20:59:46	2026-05-30 06:51:51	0
18	2601 / 2625 Alameda	fixed	2601 / 2625 W Alameda Ave	Burbank	CA	91505	34.1680000	-118.3290000	\N	\N	t	08:00:00	18:00:00	2026-05-25 20:59:46	2026-05-30 06:51:51	1
17	120 S Spalding	fixed	120 S Spalding Dr	Beverly Hills	CA	90212	34.0675000	-118.3950000	\N	\N	t	08:00:00	18:00:00	2026-05-25 20:59:46	2026-05-30 06:51:51	2
16	9301 Wilshire	fixed	9301 Wilshire Blvd	Beverly Hills	CA	90210	34.0689000	-118.4030000	\N	\N	t	08:00:00	18:00:00	2026-05-25 20:59:46	2026-05-30 06:51:51	3
15	Campus at Warner Center	fixed	5790 Canoga Avenue	Woodland Hills	CA	91367	34.1680000	-118.6050000	\N	\N	t	08:00:00	18:00:00	2026-05-25 20:59:46	2026-05-30 06:51:51	4
13	Beethoven	fixed	5454 Beethoven St	Los Angeles	CA	90066	34.0030000	-118.4290000	\N	\N	t	08:00:00	18:00:00	2026-05-25 20:59:46	2026-05-30 06:51:51	5
\.


--
-- Data for Name: membership_plans; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.membership_plans (id, name, description, washes_per_month, price_monthly, stripe_price_id, eligible_vehicle_sizes, is_active, created_at, updated_at) FROM stdin;
1	Monthly Unlimited Sedan	Two express washes per month for sedans.	2	5900	\N	["sedan"]	t	2026-05-25 20:59:46	2026-05-25 20:59:46
2	Family SUV Plan	Four washes per month for SUVs and vans.	4	12900	\N	["suv","van"]	t	2026-05-25 20:59:46	2026-05-25 20:59:46
\.


--
-- Data for Name: migrations; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.migrations (id, migration, batch) FROM stdin;
1	0001_01_01_000000_create_users_table	1
2	0001_01_01_000001_create_cache_table	1
3	0001_01_01_000002_create_jobs_table	1
4	2024_01_01_000000_create_passkeys_table	1
5	2025_08_14_170933_add_two_factor_columns_to_users_table	1
6	2026_05_25_184040_create_locations_table	1
7	2026_05_25_184040_create_packages_table	1
8	2026_05_25_184040_create_service_zones_table	1
9	2026_05_25_184040_create_vehicles_table	1
10	2026_05_25_184150_add_booking_columns_to_users_table	1
11	2026_05_25_185757_create_addons_table	1
12	2026_05_25_185757_create_bookings_table	1
13	2026_05_25_185758_create_booking_addons_table	1
14	2026_05_25_191032_create_notification_logs_table	1
15	2026_05_25_192338_create_job_status_logs_table	1
16	2026_05_25_192338_create_membership_plans_table	1
17	2026_05_25_192339_create_customer_memberships_table	1
18	2026_05_25_192339_create_fleet_accounts_table	2
19	2026_05_25_192339_create_webhook_endpoints_table	2
20	2026_05_25_192340_create_webhook_deliveries_table	2
21	2026_05_25_192341_create_fleet_account_vehicles_table	2
22	2026_05_25_193751_split_status_columns_on_bookings_table	2
23	2026_05_25_200100_add_recurrence_columns_to_bookings_table	2
24	2026_05_25_201200_create_personal_access_tokens_table	2
25	2026_05_25_210504_add_payment_method_to_bookings_table	3
26	2026_05_25_222418_add_internal_notes_to_users_table	4
27	2026_05_26_061323_create_location_package_table	4
28	2026_05_26_070852_create_vehicle_size_categories_table	5
29	2026_05_26_070853_create_package_vehicle_size_prices_table	5
30	2026_05_26_070854_migrate_package_pricing_to_vehicle_size_categories	5
31	2026_05_27_024636_add_full_size_suv_to_vehicles_size_enum	6
32	2026_05_27_063210_create_permission_tables	7
33	2026_05_27_063221_add_location_id_to_users_table	8
34	2026_05_27_065417_add_avatar_to_users_table	9
35	2026_05_27_072302_create_location_user_table	10
36	2026_05_28_034822_create_location_availability_slots_table	11
37	2026_05_28_100000_create_location_types_table	12
38	2026_05_28_100001_change_locations_type_to_string	13
39	2026_05_28_100002_add_description_to_location_types_table	14
40	2026_05_29_013752_add_featured_icon_to_packages_table	15
41	2026_05_29_044424_create_settings_table	16
42	2026_05_29_084020_add_schedule_index_to_bookings_table	17
43	2026_05_29_100001_create_email_templates_table	18
44	2026_05_29_100002_create_email_template_events_table	18
45	2026_05_29_100003_create_email_template_recipients_table	18
46	2026_05_29_100004_create_email_template_attachments_table	18
47	2026_05_29_100005_create_email_template_exceptions_table	18
48	2026_05_29_100006_create_sent_emails_tables	18
49	2026_05_30_050924_add_display_order_to_locations_table	19
50	2026_05_30_120000_remove_on_the_way_service_status	20
51	2026_05_31_022247_add_office_suite_and_cell_to_users_table	21
52	2026_05_31_100000_create_admin_notifications_table	22
53	2026_05_31_192319_create_faq_categories_table	22
54	2026_05_31_192320_create_faq_items_table	22
55	2026_06_01_035856_add_is_active_to_users_table	23
56	2026_06_01_041957_add_default_location_id_to_users_table	23
57	2026_06_06_000000_create_location_closed_dates_table	24
\.


--
-- Data for Name: model_has_permissions; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.model_has_permissions (permission_id, model_type, model_id) FROM stdin;
1	App\\Models\\User	31
2	App\\Models\\User	31
\.


--
-- Data for Name: model_has_roles; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.model_has_roles (role_id, model_type, model_id) FROM stdin;
1	App\\Models\\User	1
3	App\\Models\\User	3
4	App\\Models\\User	4
2	App\\Models\\User	2
1	App\\Models\\User	29
1	App\\Models\\User	30
3	App\\Models\\User	31
3	App\\Models\\User	32
3	App\\Models\\User	33
3	App\\Models\\User	34
3	App\\Models\\User	35
3	App\\Models\\User	36
\.


--
-- Data for Name: notification_logs; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.notification_logs (id, booking_id, user_id, channel, type, message, sent_at, status, created_at, updated_at) FROM stdin;
1	10	4	email	booking_balance_due	Balance due invoice email sent.	2026-05-27 03:43:47	sent	2026-05-27 03:43:47	2026-05-27 03:43:47
2	12	4	email	booking_balance_due	Balance due invoice email sent.	2026-05-27 04:56:23	sent	2026-05-27 04:56:23	2026-05-27 04:56:23
3	10	4	email	booking_balance_due	Balance due invoice email sent.	2026-05-27 05:27:04	sent	2026-05-27 05:27:04	2026-05-27 05:27:04
\.


--
-- Data for Name: package_vehicle_size_prices; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.package_vehicle_size_prices (id, package_id, vehicle_size_category_id, price_cents, created_at, updated_at) FROM stdin;
12	3	2	21900	2026-05-26 07:10:38	2026-06-01 04:55:19
15	3	5	27900	2026-05-26 07:10:38	2026-06-01 04:55:19
14	3	4	24900	2026-05-26 07:10:38	2026-06-01 04:55:19
13	3	3	24900	2026-05-26 07:10:38	2026-06-01 04:55:19
69	21	1	9500	2026-06-06 03:16:57	2026-06-06 03:16:57
70	21	2	11000	2026-06-06 03:16:57	2026-06-06 03:16:57
71	21	5	0	2026-06-06 03:16:57	2026-06-06 03:16:57
72	22	1	8000	2026-06-06 03:19:13	2026-06-06 03:19:13
73	22	2	9000	2026-06-06 03:19:13	2026-06-06 03:19:13
74	22	5	0	2026-06-06 03:19:13	2026-06-06 03:19:13
75	23	1	13500	2026-06-06 03:20:16	2026-06-06 03:20:16
76	23	2	14500	2026-06-06 03:20:16	2026-06-06 03:20:16
77	23	5	0	2026-06-06 03:20:16	2026-06-06 03:20:16
78	24	1	23500	2026-06-06 03:21:30	2026-06-06 03:21:30
39	11	1	4000	2026-06-03 03:18:20	2026-06-03 03:18:20
30	8	1	8500	2026-06-01 04:21:41	2026-06-01 04:36:45
31	8	2	10000	2026-06-01 04:21:41	2026-06-01 04:36:46
32	8	5	11500	2026-06-01 04:21:41	2026-06-01 04:36:46
36	10	1	20000	2026-06-01 04:24:32	2026-06-01 04:38:33
37	10	2	23500	2026-06-01 04:24:32	2026-06-01 04:38:33
38	10	5	26500	2026-06-01 04:24:32	2026-06-01 04:38:33
27	7	1	7000	2026-06-01 04:20:30	2026-06-01 04:40:12
28	7	2	8000	2026-06-01 04:20:30	2026-06-01 04:40:12
29	7	5	9000	2026-06-01 04:20:30	2026-06-01 04:40:12
33	9	1	12500	2026-06-01 04:23:13	2026-06-01 04:41:13
34	9	2	13500	2026-06-01 04:23:13	2026-06-01 04:41:13
35	9	5	14500	2026-06-01 04:23:13	2026-06-01 04:41:13
21	5	1	3000	2026-06-01 04:08:51	2026-06-01 04:47:43
22	5	2	3500	2026-06-01 04:08:51	2026-06-01 04:47:43
23	5	5	4000	2026-06-01 04:08:51	2026-06-01 04:47:43
79	24	2	26500	2026-06-06 03:21:30	2026-06-06 03:21:30
80	24	5	0	2026-06-06 03:21:30	2026-06-06 03:21:30
66	20	1	5000	2026-06-06 03:15:59	2026-06-06 23:18:33
67	20	2	5500	2026-06-06 03:15:59	2026-06-06 23:18:33
68	20	5	0	2026-06-06 03:15:59	2026-06-06 23:18:33
24	6	1	7500	2026-06-01 04:19:07	2026-06-01 04:49:46
25	6	2	8000	2026-06-01 04:19:07	2026-06-01 04:49:46
26	6	5	8500	2026-06-01 04:19:07	2026-06-01 04:49:46
1	1	1	2000	2026-05-26 07:10:38	2026-06-01 04:50:43
2	1	2	2500	2026-05-26 07:10:38	2026-06-01 04:50:43
5	1	5	4000	2026-05-26 07:10:38	2026-06-01 04:50:43
4	1	4	5500	2026-05-26 07:10:38	2026-06-01 04:50:43
3	1	3	5500	2026-05-26 07:10:38	2026-06-01 04:50:43
40	11	2	4500	2026-06-03 03:18:20	2026-06-03 03:18:20
19	4	4	9000	2026-05-26 07:10:38	2026-06-06 23:25:27
18	4	3	8500	2026-05-26 07:10:38	2026-06-06 23:25:27
41	11	5	5000	2026-06-03 03:18:20	2026-06-03 03:18:20
42	12	1	3000	2026-06-03 03:22:08	2026-06-03 03:22:08
43	12	2	3500	2026-06-03 03:22:08	2026-06-03 03:22:08
44	12	5	4000	2026-06-03 03:22:08	2026-06-03 03:22:08
6	2	1	12500	2026-05-26 07:10:38	2026-06-01 04:54:55
7	2	2	15500	2026-05-26 07:10:38	2026-06-01 04:54:55
10	2	5	19500	2026-05-26 07:10:38	2026-06-01 04:54:55
9	2	4	17500	2026-05-26 07:10:38	2026-06-01 04:54:55
8	2	3	17500	2026-05-26 07:10:38	2026-06-01 04:54:55
11	3	1	18900	2026-05-26 07:10:38	2026-06-01 04:55:19
48	14	1	8500	2026-06-04 03:05:52	2026-06-04 03:05:52
49	14	2	10000	2026-06-04 03:05:52	2026-06-04 03:05:52
50	14	5	11000	2026-06-04 03:05:52	2026-06-04 03:05:52
51	15	1	9500	2026-06-04 03:07:26	2026-06-04 03:07:26
52	15	2	11000	2026-06-04 03:07:26	2026-06-04 03:07:26
53	15	5	12500	2026-06-04 03:07:26	2026-06-04 03:07:26
57	17	1	13500	2026-06-04 03:12:10	2026-06-04 03:12:10
58	17	2	14500	2026-06-04 03:12:10	2026-06-04 03:12:10
59	17	5	15000	2026-06-04 03:12:10	2026-06-04 03:12:10
60	18	1	23500	2026-06-04 03:13:51	2026-06-04 03:15:08
61	18	2	26500	2026-06-04 03:13:51	2026-06-04 03:15:08
62	18	5	29500	2026-06-04 03:13:51	2026-06-04 03:15:08
54	16	1	8000	2026-06-04 03:08:56	2026-06-04 03:23:02
55	16	2	9000	2026-06-04 03:08:56	2026-06-04 03:23:02
56	16	5	10000	2026-06-04 03:08:56	2026-06-04 03:23:02
16	4	1	4000	2026-05-26 07:10:38	2026-06-06 23:25:27
17	4	2	4500	2026-05-26 07:10:38	2026-06-06 23:25:27
20	4	5	5000	2026-05-26 07:10:38	2026-06-06 23:25:27
63	19	1	3000	2026-06-06 03:14:58	2026-06-06 03:14:58
64	19	2	3500	2026-06-06 03:14:58	2026-06-06 03:14:58
65	19	5	0	2026-06-06 03:14:58	2026-06-06 03:14:58
45	13	1	5000	2026-06-03 03:24:46	2026-06-06 23:24:16
46	13	2	5500	2026-06-03 03:24:46	2026-06-06 23:24:16
47	13	5	6000	2026-06-03 03:24:46	2026-06-06 23:24:16
\.


--
-- Data for Name: packages; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.packages (id, name, description, duration_minutes, is_active, display_order, created_at, updated_at, is_featured, icon) FROM stdin;
21	Clay Bar	Wash Plus Exterior Oxidation Removal & Spray Wax (Please note some oxidation may not be removed)	45	t	3	2026-06-06 03:16:57	2026-06-06 03:22:00	f	\N
23	Mini Detail	Car Wash Plus Interior Vacuum, Interior Dusting Window Cleaning, Wheel Wash, Tire Dressing, Hand Wax and Matt Washing	90	t	4	2026-06-06 03:20:16	2026-06-06 03:22:00	f	\N
24	Detail	Mini Detail (Car Wash Plus Interior Vacuum, Interior Dusting Window Cleaning, Wheel Wash, Tire Dressing, Hand Wax and Matt Washing) Plus Clay Bar	90	t	5	2026-06-06 03:21:30	2026-06-06 03:22:00	f	\N
12	Exterior Wash	\N	20	t	6	2026-06-03 03:22:08	2026-06-06 03:22:00	f	\N
11	Car wash	Wash, Interior Vacuum, Light Interior Dusting Window Cleaning, Light Wheel Wash, Tire Dressing	30	t	7	2026-06-03 03:18:20	2026-06-06 03:22:00	f	\N
13	Spray Wax	Wash, Spray Wax applied, Interior Vacuum, Light Interior Dusting Window Cleaning, Light Wheel Wash, Tire Dressing	30	t	8	2026-06-03 03:24:46	2026-06-06 03:22:00	t	\N
16	Wax	Wash plus Wax, Interior Vacuum, Interior Dusting Window Cleaning, Wheel Wash, Tire Dressing	45	t	9	2026-06-04 03:08:56	2026-06-06 03:22:00	f	\N
14	Furry Pet	Wash, Spray Wax applied, Interior Vacuum, Interior Dusting Window Cleaning, Wheel Wash, Tire Dressing and Pet hair removal.	45	t	10	2026-06-04 03:05:52	2026-06-06 03:22:00	f	\N
15	Clay Bar	Wash Plus Exterior Oxidation Removal & Spray Wax (Please note some oxidation may not be removed)	45	t	11	2026-06-04 03:07:26	2026-06-06 03:22:00	f	\N
17	Mini Detail	Car Wash Plus Interior Vacuum, Interior Dusting Window Cleaning, Wheel Wash, Tire Dressing, Hand Wax and Matt Washing	60	t	12	2026-06-04 03:12:10	2026-06-06 03:22:00	f	\N
18	Full Detail	Mini Detail (Car Wash Plus Interior Vacuum, Interior Dusting Window Cleaning, Wheel Wash, Tire Dressing, Hand Wax and Matt Washing) Plus Clay Bar	90	t	13	2026-06-04 03:13:51	2026-06-06 03:22:00	f	\N
1	Exterior Wash	Exterior hand wash and dry with Tire Dressing	30	t	14	2026-05-25 20:59:46	2026-06-06 03:22:00	f	car-wash-self-service
5	Car Wash	Wash, Interior Vacuum, Light Wheel Wash, Tire Dressing Window Cleaning, Light Interior Dusting	30	t	15	2026-06-01 04:08:51	2026-06-06 03:22:00	f	\N
4	Spray Wax	Wash, Spray Wax applied, Interior Vacuum, Light Interior Dusting Window Cleaning, Light Wheel Wash, Tire Dressing	35	t	16	2026-05-26 06:24:44	2026-06-06 03:22:00	t	car-cleaning
7	Wax	Wash plus Wax, Interior Vacuum, Light Interior Dusting Window Cleaning, Light Wheel Wash, Tire Dressing	45	t	17	2026-06-01 04:20:30	2026-06-06 03:22:00	f	car-wash-tunnel
19	Exterior Wash	Exterior Wash Only. Exterior Dry Only. Tire Dressing	30	t	0	2026-06-06 03:14:58	2026-06-06 03:22:00	f	\N
20	Spray Wax	Wash, Spray Wax applied, Interior Vacuum, Light Interior Dusting Window Cleaning, Light Wheel Wash, Tire Dressing	40	t	1	2026-06-06 03:15:59	2026-06-06 03:22:00	f	\N
22	Wax	Wash plus Wax, Interior Vacuum, Interior Dusting Window Cleaning, Wheel Wash, Tire Dressing	60	t	2	2026-06-06 03:19:13	2026-06-06 03:22:00	f	\N
6	Furry Pet Wash	Wash, Spray Wax applied, Interior Vacuum, Interior Dusting Window Cleaning, Wheel Wash, Tire Dressing and Pet hair removal.	60	t	18	2026-06-01 04:19:07	2026-06-06 03:22:00	f	\N
8	Clay Bar	Wash Plus Exterior Oxidation Removal & Spray Wax (Please note some oxidation may not be removed)	60	t	19	2026-06-01 04:21:41	2026-06-06 03:22:00	f	\N
9	Mini Detail	Car Wash Plus Interior Vacuum, Interior Dusting Window Cleaning, Wheel Wash, Tire Dressing, Hand Wax and Matt Washing	60	t	20	2026-06-01 04:23:13	2026-06-06 03:22:00	f	\N
10	Full Detail	Mini Detail (Car Wash Plus Interior Vacuum, Interior Dusting Window Cleaning, Wheel Wash, Tire Dressing, Hand Wax and Matt Washing) Plus Clay Bar	90	t	21	2026-06-01 04:24:32	2026-06-06 03:22:00	f	microfiber
3	Premium Ceramic	Full detail plus paint-safe ceramic spray sealant.	120	f	22	2026-05-25 20:59:46	2026-06-06 03:22:00	t	car-wash-portal
2	Full Detail	Interior and exterior detail with vacuum and wipe-down.	90	f	23	2026-05-25 20:59:46	2026-06-06 03:22:00	f	polisher
\.


--
-- Data for Name: permissions; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.permissions (id, name, guard_name, created_at, updated_at) FROM stdin;
1	view appointments	web	2026-05-27 06:38:41	2026-05-27 06:38:41
2	manage appointments	web	2026-05-27 06:38:41	2026-05-27 06:38:41
3	assign technicians	web	2026-05-27 06:38:41	2026-05-27 06:38:41
4	manage customers	web	2026-05-27 06:38:41	2026-05-27 06:38:41
5	manage users	web	2026-05-27 06:38:41	2026-05-27 06:38:41
6	manage locations	web	2026-05-27 06:38:41	2026-05-27 06:38:41
7	manage packages	web	2026-05-27 06:38:41	2026-05-27 06:38:41
8	manage addons	web	2026-05-27 06:38:41	2026-05-27 06:38:41
9	manage fleet	web	2026-05-27 06:38:41	2026-05-27 06:38:41
10	view reports	web	2026-05-27 06:38:41	2026-05-27 06:38:41
\.


--
-- Data for Name: role_has_permissions; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.role_has_permissions (permission_id, role_id) FROM stdin;
1	1
2	1
3	1
4	1
5	1
6	1
7	1
8	1
9	1
10	1
1	2
2	2
3	2
4	2
6	2
7	2
8	2
9	2
10	2
1	3
\.


--
-- Data for Name: roles; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.roles (id, name, guard_name, created_at, updated_at) FROM stdin;
1	admin	web	2026-05-27 06:38:41	2026-05-27 06:38:41
2	manager	web	2026-05-27 06:38:41	2026-05-27 06:38:41
3	technician	web	2026-05-27 06:38:41	2026-05-27 06:38:41
4	customer	web	2026-05-27 06:38:41	2026-05-27 06:38:41
\.


--
-- Data for Name: service_zones; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.service_zones (id, location_id, zip_code, is_active, created_at, updated_at) FROM stdin;
\.


--
-- Data for Name: sessions; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.sessions (id, user_id, ip_address, user_agent, payload, last_activity) FROM stdin;
\.


--
-- Data for Name: vehicle_size_categories; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.vehicle_size_categories (id, slug, name, description, image_path, emoji_fallback, display_order, is_active, created_at, updated_at) FROM stdin;
2	suv	SUV	Crossovers, SUVs	vehicle-sizes/2/YozjpRO1OPRddhK6Y1yqP9uz1obXAfKb89ppUlMC.svg	🚙	2	t	2026-05-26 07:10:38	2026-05-27 02:01:33
4	van	Van	Minivans, cargo vans	vehicle-sizes/4/zu40w6inm0I2IJGSWO39iRlS4MsgxSrM7SehVQiN.svg	🚐	4	f	2026-05-26 07:10:38	2026-05-28 06:25:01
3	truck	Truck	Pickup trucks	vehicle-sizes/3/h4RRhtSU3ZWuhpPwYybygsppAsHm05SmuOkrpio6.svg	🛻	4	f	2026-05-26 07:10:38	2026-05-28 06:30:27
5	full-size-suv	Full Size SUV	Large vehicles	vehicle-sizes/5/PbgEzCqJFXwG1T8r4XdSx6x9Okqt7TbJWhOpPZLv.svg	🚌	3	t	2026-05-26 07:10:38	2026-06-06 03:12:07
1	sedan	Sedan	Cars, coupes, hatchbacks	vehicle-sizes/1/aRMXUrfPPYaiCRf6FyGeeZHUN10etV8zy9fIXPeB.svg	\N	1	t	2026-05-26 07:10:38	2026-06-19 09:26:53
\.


--
-- Data for Name: vehicles; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.vehicles (id, user_id, make, model, year, color, size, license_plate, notes, is_default, created_at, updated_at) FROM stdin;
1	4	Tesla	Model 3	2023	White	sedan	DEMO123	\N	t	2026-05-25 20:59:46	2026-05-25 20:59:46
4	1	Toyota	4Runner	2024	Underground	suv	\N	\N	f	2026-05-25 21:11:32	2026-05-25 21:11:32
5	1	Toyota	4Runner	2024	Underground	suv	\N	\N	f	2026-05-25 23:38:48	2026-05-25 23:38:48
6	1	Toyota	4Runner	2024	Underground	suv	\N	\N	f	2026-05-26 01:52:59	2026-05-26 01:52:59
7	4	Toyota	4Runner	2026	Red	suv	\N	\N	f	2026-05-26 04:47:38	2026-05-26 04:47:38
8	4	Toyota	4Runner	2026	Underground	suv	\N	\N	f	2026-05-26 04:50:51	2026-05-26 04:50:51
9	4	Toyota	4Runner	2024	Underground	suv	\N	\N	f	2026-05-27 02:27:05	2026-05-27 02:27:05
11	4	Toyota	Sequoia	2026	Black	full-size-suv	\N	\N	f	2026-05-27 02:47:29	2026-05-27 02:47:29
12	4	Toyota	4Runner	2024	Underground	suv	\N	\N	f	2026-05-27 03:35:39	2026-05-27 03:35:39
13	1	Toyota	4Runner	2024	Underground	suv	\N	\N	f	2026-05-27 05:18:00	2026-05-27 05:18:00
14	4	Toyota	4Runner	2024	Underground	suv	\N	\N	f	2026-05-28 18:39:10	2026-05-28 18:39:10
30	\N	Mercedes-Benz	C-Class	2023	Obsidian Black	sedan	7CAR001	\N	t	2026-05-29 06:32:10	2026-05-29 06:32:10
31	\N	Toyota	Tundra	2022	Magnetic Gray	truck	7CAR002	\N	f	2026-05-29 06:32:10	2026-05-29 06:32:10
32	\N	Mercedes-Benz	GLE	2024	Polar White	suv	7CAR003	\N	f	2026-05-29 06:32:10	2026-05-29 06:32:10
33	\N	Subaru	Outback	2022	Magnetite Gray	suv	7LIS001	\N	t	2026-05-29 06:32:11	2026-05-29 06:32:11
34	\N	Ford	Transit	2021	Oxford White	van	7LIS002	\N	f	2026-05-29 06:32:11	2026-05-29 06:32:11
35	\N	Cadillac	Escalade ESV	2023	Black Raven	oversized	7MIC001	\N	t	2026-05-29 06:32:12	2026-05-29 06:32:12
15	\N	Tesla	Model Y	2023	Pearl White	sedan	7SAR001	\N	t	2026-05-29 06:32:03	2026-05-29 06:32:03
16	\N	Rivian	R1S	2024	Midnight Blue	suv	7SAR002	\N	f	2026-05-29 06:32:03	2026-05-29 06:32:03
17	\N	Ford	F-150	2022	Oxford White	truck	7MAR001	\N	t	2026-05-29 06:32:04	2026-05-29 06:32:04
18	\N	Honda	Civic	2021	Sonic Gray Pearl	sedan	7EMI001	\N	t	2026-05-29 06:32:05	2026-05-29 06:32:05
19	\N	Honda	Pilot	2022	Lunar Silver	suv	7EMI002	\N	f	2026-05-29 06:32:05	2026-05-29 06:32:05
20	\N	Chrysler	Pacifica	2020	Brilliant Black	van	7EMI003	\N	f	2026-05-29 06:32:05	2026-05-29 06:32:05
21	\N	BMW	X5	2023	Carbon Black	suv	7JAM001	\N	t	2026-05-29 06:32:06	2026-05-29 06:32:06
22	\N	Chevy	Silverado	2021	Summit White	truck	7JAM002	\N	f	2026-05-29 06:32:06	2026-05-29 06:32:06
23	\N	Toyota	Camry	2020	Midnight Black	sedan	7SOF001	\N	t	2026-05-29 06:32:06	2026-05-29 06:32:06
24	\N	Lexus	ES 350	2022	Eminent White	sedan	7DAV001	\N	t	2026-05-29 06:32:07	2026-05-29 06:32:07
25	\N	Lexus	GX 550	2024	Nori Green	suv	7DAV002	\N	f	2026-05-29 06:32:07	2026-05-29 06:32:07
26	\N	Toyota	Sienna	2022	Wind Chill Pearl	van	7AMA001	\N	t	2026-05-29 06:32:08	2026-05-29 06:32:08
27	\N	Ram	1500	2023	Flame Red	truck	7RYA001	\N	t	2026-05-29 06:32:09	2026-05-29 06:32:09
28	\N	Jeep	Grand Cherokee	2022	Diamond Black	suv	7RYA002	\N	f	2026-05-29 06:32:09	2026-05-29 06:32:09
29	\N	Audi	A4	2021	Glacier White	sedan	7PRI001	\N	t	2026-05-29 06:32:09	2026-05-29 06:32:09
36	17	Tesla	Model Y	2023	Pearl White	sedan	7SAR001	\N	t	2026-05-29 06:35:34	2026-05-29 06:35:34
37	17	Rivian	R1S	2024	Midnight Blue	suv	7SAR002	\N	f	2026-05-29 06:35:34	2026-05-29 06:35:34
38	18	Ford	F-150	2022	Oxford White	truck	7MAR001	\N	t	2026-05-29 06:35:34	2026-05-29 06:35:34
39	19	Honda	Civic	2021	Sonic Gray Pearl	sedan	7EMI001	\N	t	2026-05-29 06:35:35	2026-05-29 06:35:35
40	19	Honda	Pilot	2022	Lunar Silver	suv	7EMI002	\N	f	2026-05-29 06:35:35	2026-05-29 06:35:35
41	19	Chrysler	Pacifica	2020	Brilliant Black	van	7EMI003	\N	f	2026-05-29 06:35:35	2026-05-29 06:35:35
42	20	BMW	X5	2023	Carbon Black	suv	7JAM001	\N	t	2026-05-29 06:35:36	2026-05-29 06:35:36
43	20	Chevy	Silverado	2021	Summit White	truck	7JAM002	\N	f	2026-05-29 06:35:36	2026-05-29 06:35:36
44	21	Toyota	Camry	2020	Midnight Black	sedan	7SOF001	\N	t	2026-05-29 06:35:37	2026-05-29 06:35:37
45	22	Lexus	ES 350	2022	Eminent White	sedan	7DAV001	\N	t	2026-05-29 06:35:38	2026-05-29 06:35:38
46	22	Lexus	GX 550	2024	Nori Green	suv	7DAV002	\N	f	2026-05-29 06:35:38	2026-05-29 06:35:38
47	23	Toyota	Sienna	2022	Wind Chill Pearl	van	7AMA001	\N	t	2026-05-29 06:35:38	2026-05-29 06:35:38
48	24	Ram	1500	2023	Flame Red	truck	7RYA001	\N	t	2026-05-29 06:35:39	2026-05-29 06:35:39
49	24	Jeep	Grand Cherokee	2022	Diamond Black	suv	7RYA002	\N	f	2026-05-29 06:35:39	2026-05-29 06:35:39
50	25	Audi	A4	2021	Glacier White	sedan	7PRI001	\N	t	2026-05-29 06:35:40	2026-05-29 06:35:40
51	26	Mercedes-Benz	C-Class	2023	Obsidian Black	sedan	7CAR001	\N	t	2026-05-29 06:35:41	2026-05-29 06:35:41
52	26	Toyota	Tundra	2022	Magnetic Gray	truck	7CAR002	\N	f	2026-05-29 06:35:41	2026-05-29 06:35:41
53	26	Mercedes-Benz	GLE	2024	Polar White	suv	7CAR003	\N	f	2026-05-29 06:35:41	2026-05-29 06:35:41
54	27	Subaru	Outback	2022	Magnetite Gray	suv	7LIS001	\N	t	2026-05-29 06:35:41	2026-05-29 06:35:41
55	27	Ford	Transit	2021	Oxford White	van	7LIS002	\N	f	2026-05-29 06:35:41	2026-05-29 06:35:41
56	28	Cadillac	Escalade ESV	2023	Black Raven	oversized	7MIC001	\N	t	2026-05-29 06:35:42	2026-05-29 06:35:42
57	29	Toyota	4Runner	2014	Underground	sedan	\N	\N	f	2026-05-30 02:38:02	2026-05-30 02:38:02
58	29	Toyota	4Runner	2021	maroon	suv	\N	\N	f	2026-05-30 03:56:29	2026-05-30 03:56:29
59	4	Chevy	camaro	2018	black	suv	\N	\N	f	2026-05-30 04:07:35	2026-05-30 04:07:35
60	1	Toyota	truck	2024	\N	sedan	\N	\N	f	2026-05-30 06:43:53	2026-05-30 06:43:53
61	4	Tesla	Model 3	2023	White	sedan	\N	\N	f	2026-06-01 06:08:34	2026-06-01 06:08:34
62	30	Toyota	camry	2024	silver	suv	\N	\N	f	2026-06-03 03:30:49	2026-06-03 03:30:49
63	30	Toyota	camry	2024	silver	sedan	\N	\N	f	2026-06-06 03:28:14	2026-06-06 03:28:14
64	30	Toyota	camry	2024	silver	sedan	\N	\N	f	2026-06-06 03:37:02	2026-06-06 03:37:02
65	30	Toyota	camry	2024	silver	sedan	\N	\N	f	2026-06-06 03:39:05	2026-06-06 03:39:05
66	30	Toyota	camry	2024	silver	sedan	\N	\N	f	2026-06-06 03:41:20	2026-06-06 03:41:20
67	30	Toyota	camry	2024	silver	sedan	\N	\N	f	2026-06-07 14:48:48	2026-06-07 14:48:48
68	30	Toyota	Camry	2024	Silver	sedan	\N	\N	f	2026-06-07 14:53:43	2026-06-07 14:53:43
69	30	Toyota	Camry	2024	Silver	sedan	\N	\N	f	2026-06-08 04:22:01	2026-06-08 04:22:01
70	30	Toyota	Camry	2024	Silver	sedan	\N	\N	f	2026-06-16 05:56:12	2026-06-16 05:56:12
71	30	Toyota	Camry	2024	Silver	sedan	\N	\N	f	2026-06-16 15:01:21	2026-06-16 15:01:21
72	30	Toyota	Camry	2024	Silver	sedan	\N	\N	f	2026-06-16 22:34:08	2026-06-16 22:34:08
73	30	Toyota	Camry	2024	Silver	sedan	\N	\N	f	2026-06-18 03:38:58	2026-06-18 03:38:58
74	37	Toyota	Tacoma	2020	white	suv	\N	\N	f	2026-06-18 04:06:15	2026-06-18 04:06:15
75	37	Chevy	Truck	2005	white	full-size-suv	\N	\N	f	2026-06-18 04:12:48	2026-06-18 04:12:48
\.


--
-- Data for Name: webhook_deliveries; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.webhook_deliveries (id, endpoint_id, event, payload, response_status, attempts, last_attempt_at, created_at, updated_at) FROM stdin;
\.



--
-- Name: addons addons_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.addons
    ADD CONSTRAINT addons_pkey PRIMARY KEY (id);


--
-- Name: admin_notifications admin_notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.admin_notifications
    ADD CONSTRAINT admin_notifications_pkey PRIMARY KEY (id);


--
-- Name: booking_addons booking_addons_booking_id_addon_id_unique; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.booking_addons
    ADD CONSTRAINT booking_addons_booking_id_addon_id_unique UNIQUE (booking_id, addon_id);


--
-- Name: booking_addons booking_addons_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.booking_addons
    ADD CONSTRAINT booking_addons_pkey PRIMARY KEY (id);


--
-- Name: bookings bookings_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.bookings
    ADD CONSTRAINT bookings_pkey PRIMARY KEY (id);


--
-- Name: bookings bookings_uuid_unique; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.bookings
    ADD CONSTRAINT bookings_uuid_unique UNIQUE (uuid);


--
-- Name: customer_memberships customer_memberships_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.customer_memberships
    ADD CONSTRAINT customer_memberships_pkey PRIMARY KEY (id);


--
-- Name: email_template_attachments email_template_attachments_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.email_template_attachments
    ADD CONSTRAINT email_template_attachments_pkey PRIMARY KEY (id);


--
-- Name: email_template_events email_template_events_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.email_template_events
    ADD CONSTRAINT email_template_events_pkey PRIMARY KEY (id);


--
-- Name: email_template_exceptions email_template_exceptions_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.email_template_exceptions
    ADD CONSTRAINT email_template_exceptions_pkey PRIMARY KEY (id);


--
-- Name: email_template_recipients email_template_recipients_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.email_template_recipients
    ADD CONSTRAINT email_template_recipients_pkey PRIMARY KEY (id);


--
-- Name: email_templates email_templates_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.email_templates
    ADD CONSTRAINT email_templates_pkey PRIMARY KEY (id);


--
-- Name: email_templates email_templates_slug_unique; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.email_templates
    ADD CONSTRAINT email_templates_slug_unique UNIQUE (slug);


--
-- Name: failed_jobs failed_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.failed_jobs
    ADD CONSTRAINT failed_jobs_pkey PRIMARY KEY (id);


--
-- Name: failed_jobs failed_jobs_uuid_unique; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.failed_jobs
    ADD CONSTRAINT failed_jobs_uuid_unique UNIQUE (uuid);


--
-- Name: faq_categories faq_categories_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.faq_categories
    ADD CONSTRAINT faq_categories_pkey PRIMARY KEY (id);


--
-- Name: faq_items faq_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.faq_items
    ADD CONSTRAINT faq_items_pkey PRIMARY KEY (id);


--
-- Name: fleet_account_vehicles fleet_account_vehicles_fleet_account_id_vehicle_id_unique; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.fleet_account_vehicles
    ADD CONSTRAINT fleet_account_vehicles_fleet_account_id_vehicle_id_unique UNIQUE (fleet_account_id, vehicle_id);


--
-- Name: fleet_account_vehicles fleet_account_vehicles_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.fleet_account_vehicles
    ADD CONSTRAINT fleet_account_vehicles_pkey PRIMARY KEY (id);


--
-- Name: fleet_accounts fleet_accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.fleet_accounts
    ADD CONSTRAINT fleet_accounts_pkey PRIMARY KEY (id);


--
-- Name: job_batches job_batches_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.job_batches
    ADD CONSTRAINT job_batches_pkey PRIMARY KEY (id);


--
-- Name: job_status_logs job_status_logs_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.job_status_logs
    ADD CONSTRAINT job_status_logs_pkey PRIMARY KEY (id);


--
-- Name: jobs jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.jobs
    ADD CONSTRAINT jobs_pkey PRIMARY KEY (id);


--
-- Name: location_availability_slots location_availability_slots_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.location_availability_slots
    ADD CONSTRAINT location_availability_slots_pkey PRIMARY KEY (id);


--
-- Name: location_closed_dates location_closed_dates_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.location_closed_dates
    ADD CONSTRAINT location_closed_dates_pkey PRIMARY KEY (id);


--
-- Name: location_package location_package_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.location_package
    ADD CONSTRAINT location_package_pkey PRIMARY KEY (location_id, package_id);


--
-- Name: location_types location_types_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.location_types
    ADD CONSTRAINT location_types_pkey PRIMARY KEY (id);


--
-- Name: location_types location_types_slug_unique; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.location_types
    ADD CONSTRAINT location_types_slug_unique UNIQUE (slug);


--
-- Name: location_user location_user_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.location_user
    ADD CONSTRAINT location_user_pkey PRIMARY KEY (location_id, user_id);


--
-- Name: locations locations_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.locations
    ADD CONSTRAINT locations_pkey PRIMARY KEY (id);


--
-- Name: membership_plans membership_plans_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.membership_plans
    ADD CONSTRAINT membership_plans_pkey PRIMARY KEY (id);


--
-- Name: migrations migrations_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.migrations
    ADD CONSTRAINT migrations_pkey PRIMARY KEY (id);


--
-- Name: model_has_permissions model_has_permissions_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.model_has_permissions
    ADD CONSTRAINT model_has_permissions_pkey PRIMARY KEY (permission_id, model_id, model_type);


--
-- Name: model_has_roles model_has_roles_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.model_has_roles
    ADD CONSTRAINT model_has_roles_pkey PRIMARY KEY (role_id, model_id, model_type);


--
-- Name: notification_logs notification_logs_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.notification_logs
    ADD CONSTRAINT notification_logs_pkey PRIMARY KEY (id);


--
-- Name: package_vehicle_size_prices package_vehicle_size_prices_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.package_vehicle_size_prices
    ADD CONSTRAINT package_vehicle_size_prices_pkey PRIMARY KEY (id);


--
-- Name: package_vehicle_size_prices package_vehicle_size_unique; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.package_vehicle_size_prices
    ADD CONSTRAINT package_vehicle_size_unique UNIQUE (package_id, vehicle_size_category_id);


--
-- Name: packages packages_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.packages
    ADD CONSTRAINT packages_pkey PRIMARY KEY (id);


--
-- Name: permissions permissions_name_guard_name_unique; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.permissions
    ADD CONSTRAINT permissions_name_guard_name_unique UNIQUE (name, guard_name);


--
-- Name: permissions permissions_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.permissions
    ADD CONSTRAINT permissions_pkey PRIMARY KEY (id);


--
-- Name: role_has_permissions role_has_permissions_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.role_has_permissions
    ADD CONSTRAINT role_has_permissions_pkey PRIMARY KEY (permission_id, role_id);


--
-- Name: roles roles_name_guard_name_unique; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.roles
    ADD CONSTRAINT roles_name_guard_name_unique UNIQUE (name, guard_name);


--
-- Name: roles roles_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.roles
    ADD CONSTRAINT roles_pkey PRIMARY KEY (id);


--
-- Name: service_zones service_zones_location_id_zip_code_unique; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.service_zones
    ADD CONSTRAINT service_zones_location_id_zip_code_unique UNIQUE (location_id, zip_code);


--
-- Name: service_zones service_zones_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.service_zones
    ADD CONSTRAINT service_zones_pkey PRIMARY KEY (id);


--
-- Name: sessions sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.sessions
    ADD CONSTRAINT sessions_pkey PRIMARY KEY (id);


--
-- Name: vehicle_size_categories vehicle_size_categories_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.vehicle_size_categories
    ADD CONSTRAINT vehicle_size_categories_pkey PRIMARY KEY (id);


--
-- Name: vehicle_size_categories vehicle_size_categories_slug_unique; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.vehicle_size_categories
    ADD CONSTRAINT vehicle_size_categories_slug_unique UNIQUE (slug);


--
-- Name: vehicles vehicles_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.vehicles
    ADD CONSTRAINT vehicles_pkey PRIMARY KEY (id);


--
-- Name: webhook_deliveries webhook_deliveries_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.webhook_deliveries
    ADD CONSTRAINT webhook_deliveries_pkey PRIMARY KEY (id);


--
-- Name: admin_notifications_category_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX admin_notifications_category_index ON public.admin_notifications USING btree (category);


--
-- Name: admin_notifications_is_read_created_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX admin_notifications_is_read_created_at_index ON public.admin_notifications USING btree (is_read, created_at);


--
-- Name: bookings_location_schedule_idx; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX bookings_location_schedule_idx ON public.bookings USING btree (location_id, scheduled_at, ends_at);


--
-- Name: email_template_events_event_key_is_active_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX email_template_events_event_key_is_active_index ON public.email_template_events USING btree (event_key, is_active);


--
-- Name: failed_jobs_connection_queue_failed_at_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX failed_jobs_connection_queue_failed_at_index ON public.failed_jobs USING btree (connection, queue, failed_at);


--
-- Name: jobs_queue_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX jobs_queue_index ON public.jobs USING btree (queue);


--
-- Name: location_availability_slots_location_id_day_of_week_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX location_availability_slots_location_id_day_of_week_index ON public.location_availability_slots USING btree (location_id, day_of_week);


--
-- Name: location_closed_dates_location_id_start_date_end_date_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX location_closed_dates_location_id_start_date_end_date_index ON public.location_closed_dates USING btree (location_id, start_date, end_date);


--
-- Name: model_has_permissions_model_id_model_type_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX model_has_permissions_model_id_model_type_index ON public.model_has_permissions USING btree (model_id, model_type);


--
-- Name: model_has_roles_model_id_model_type_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX model_has_roles_model_id_model_type_index ON public.model_has_roles USING btree (model_id, model_type);


--
-- Name: service_zones_zip_code_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX service_zones_zip_code_index ON public.service_zones USING btree (zip_code);


--
-- Name: sessions_last_activity_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX sessions_last_activity_index ON public.sessions USING btree (last_activity);


--
-- Name: sessions_user_id_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX sessions_user_id_index ON public.sessions USING btree (user_id);


--
-- Name: vehicles_size_index; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX vehicles_size_index ON public.vehicles USING btree (size);


--
-- Name: booking_addons booking_addons_addon_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.booking_addons
    ADD CONSTRAINT booking_addons_addon_id_foreign FOREIGN KEY (addon_id) REFERENCES public.addons(id) ON DELETE CASCADE;


--
-- Name: booking_addons booking_addons_booking_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.booking_addons
    ADD CONSTRAINT booking_addons_booking_id_foreign FOREIGN KEY (booking_id) REFERENCES public.bookings(id) ON DELETE CASCADE;


--
-- Name: bookings bookings_customer_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.bookings
    ADD CONSTRAINT bookings_customer_id_foreign FOREIGN KEY (customer_id) REFERENCES public.users(id) ON DELETE CASCADE;


--
-- Name: bookings bookings_location_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.bookings
    ADD CONSTRAINT bookings_location_id_foreign FOREIGN KEY (location_id) REFERENCES public.locations(id) ON DELETE SET NULL;


--
-- Name: bookings bookings_package_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.bookings
    ADD CONSTRAINT bookings_package_id_foreign FOREIGN KEY (package_id) REFERENCES public.packages(id) ON DELETE CASCADE;


--
-- Name: bookings bookings_parent_booking_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.bookings
    ADD CONSTRAINT bookings_parent_booking_id_foreign FOREIGN KEY (parent_booking_id) REFERENCES public.bookings(id) ON DELETE SET NULL;


--
-- Name: bookings bookings_technician_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.bookings
    ADD CONSTRAINT bookings_technician_id_foreign FOREIGN KEY (technician_id) REFERENCES public.users(id) ON DELETE SET NULL;


--
-- Name: bookings bookings_vehicle_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.bookings
    ADD CONSTRAINT bookings_vehicle_id_foreign FOREIGN KEY (vehicle_id) REFERENCES public.vehicles(id) ON DELETE CASCADE;


--
-- Name: customer_memberships customer_memberships_plan_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.customer_memberships
    ADD CONSTRAINT customer_memberships_plan_id_foreign FOREIGN KEY (plan_id) REFERENCES public.membership_plans(id) ON DELETE CASCADE;


--
-- Name: customer_memberships customer_memberships_user_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.customer_memberships
    ADD CONSTRAINT customer_memberships_user_id_foreign FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE;


--
-- Name: email_template_attachments email_template_attachments_template_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.email_template_attachments
    ADD CONSTRAINT email_template_attachments_template_id_foreign FOREIGN KEY (template_id) REFERENCES public.email_templates(id) ON DELETE CASCADE;


--
-- Name: email_template_events email_template_events_template_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.email_template_events
    ADD CONSTRAINT email_template_events_template_id_foreign FOREIGN KEY (template_id) REFERENCES public.email_templates(id) ON DELETE CASCADE;


--
-- Name: email_template_exceptions email_template_exceptions_template_event_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.email_template_exceptions
    ADD CONSTRAINT email_template_exceptions_template_event_id_foreign FOREIGN KEY (template_event_id) REFERENCES public.email_template_events(id) ON DELETE CASCADE;


--
-- Name: email_template_recipients email_template_recipients_template_event_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.email_template_recipients
    ADD CONSTRAINT email_template_recipients_template_event_id_foreign FOREIGN KEY (template_event_id) REFERENCES public.email_template_events(id) ON DELETE CASCADE;


--
-- Name: faq_items faq_items_faq_category_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.faq_items
    ADD CONSTRAINT faq_items_faq_category_id_foreign FOREIGN KEY (faq_category_id) REFERENCES public.faq_categories(id) ON DELETE CASCADE;


--
-- Name: fleet_account_vehicles fleet_account_vehicles_fleet_account_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.fleet_account_vehicles
    ADD CONSTRAINT fleet_account_vehicles_fleet_account_id_foreign FOREIGN KEY (fleet_account_id) REFERENCES public.fleet_accounts(id) ON DELETE CASCADE;


--
-- Name: fleet_account_vehicles fleet_account_vehicles_vehicle_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.fleet_account_vehicles
    ADD CONSTRAINT fleet_account_vehicles_vehicle_id_foreign FOREIGN KEY (vehicle_id) REFERENCES public.vehicles(id) ON DELETE CASCADE;


--
-- Name: job_status_logs job_status_logs_booking_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.job_status_logs
    ADD CONSTRAINT job_status_logs_booking_id_foreign FOREIGN KEY (booking_id) REFERENCES public.bookings(id) ON DELETE CASCADE;


--
-- Name: job_status_logs job_status_logs_created_by_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.job_status_logs
    ADD CONSTRAINT job_status_logs_created_by_foreign FOREIGN KEY (created_by) REFERENCES public.users(id) ON DELETE CASCADE;


--
-- Name: location_availability_slots location_availability_slots_location_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.location_availability_slots
    ADD CONSTRAINT location_availability_slots_location_id_foreign FOREIGN KEY (location_id) REFERENCES public.locations(id) ON DELETE CASCADE;


--
-- Name: location_closed_dates location_closed_dates_location_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.location_closed_dates
    ADD CONSTRAINT location_closed_dates_location_id_foreign FOREIGN KEY (location_id) REFERENCES public.locations(id) ON DELETE CASCADE;


--
-- Name: location_package location_package_location_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.location_package
    ADD CONSTRAINT location_package_location_id_foreign FOREIGN KEY (location_id) REFERENCES public.locations(id) ON DELETE CASCADE;


--
-- Name: location_package location_package_package_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.location_package
    ADD CONSTRAINT location_package_package_id_foreign FOREIGN KEY (package_id) REFERENCES public.packages(id) ON DELETE CASCADE;


--
-- Name: location_user location_user_location_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.location_user
    ADD CONSTRAINT location_user_location_id_foreign FOREIGN KEY (location_id) REFERENCES public.locations(id) ON DELETE CASCADE;


--
-- Name: location_user location_user_user_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.location_user
    ADD CONSTRAINT location_user_user_id_foreign FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE;


--
-- Name: model_has_permissions model_has_permissions_permission_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.model_has_permissions
    ADD CONSTRAINT model_has_permissions_permission_id_foreign FOREIGN KEY (permission_id) REFERENCES public.permissions(id) ON DELETE CASCADE;


--
-- Name: model_has_roles model_has_roles_role_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.model_has_roles
    ADD CONSTRAINT model_has_roles_role_id_foreign FOREIGN KEY (role_id) REFERENCES public.roles(id) ON DELETE CASCADE;


--
-- Name: notification_logs notification_logs_booking_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.notification_logs
    ADD CONSTRAINT notification_logs_booking_id_foreign FOREIGN KEY (booking_id) REFERENCES public.bookings(id) ON DELETE CASCADE;


--
-- Name: notification_logs notification_logs_user_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.notification_logs
    ADD CONSTRAINT notification_logs_user_id_foreign FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE;


--
-- Name: package_vehicle_size_prices package_vehicle_size_prices_package_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.package_vehicle_size_prices
    ADD CONSTRAINT package_vehicle_size_prices_package_id_foreign FOREIGN KEY (package_id) REFERENCES public.packages(id) ON DELETE CASCADE;


--
-- Name: package_vehicle_size_prices package_vehicle_size_prices_vehicle_size_category_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.package_vehicle_size_prices
    ADD CONSTRAINT package_vehicle_size_prices_vehicle_size_category_id_foreign FOREIGN KEY (vehicle_size_category_id) REFERENCES public.vehicle_size_categories(id) ON DELETE CASCADE;


--
-- Name: role_has_permissions role_has_permissions_permission_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.role_has_permissions
    ADD CONSTRAINT role_has_permissions_permission_id_foreign FOREIGN KEY (permission_id) REFERENCES public.permissions(id) ON DELETE CASCADE;


--
-- Name: role_has_permissions role_has_permissions_role_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.role_has_permissions
    ADD CONSTRAINT role_has_permissions_role_id_foreign FOREIGN KEY (role_id) REFERENCES public.roles(id) ON DELETE CASCADE;


--
-- Name: service_zones service_zones_location_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.service_zones
    ADD CONSTRAINT service_zones_location_id_foreign FOREIGN KEY (location_id) REFERENCES public.locations(id) ON DELETE CASCADE;


--
-- Name: vehicles vehicles_user_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.vehicles
    ADD CONSTRAINT vehicles_user_id_foreign FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE SET NULL;


--
-- Name: webhook_deliveries webhook_deliveries_endpoint_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.webhook_deliveries
    ADD CONSTRAINT webhook_deliveries_endpoint_id_foreign FOREIGN KEY (endpoint_id) REFERENCES public.webhook_endpoints(id) ON DELETE CASCADE;


--
--

