--
--

\restrict FiKb4e1EPJLkhBaxbmNHdCeNR6R4C1XbM0UHUVQnSf4v8aeHctV9aKNQMb08gbS


SET transaction_timeout = 0;
SELECT pg_catalog.set_config('search_path', '', false);

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

CREATE EXTENSION IF NOT EXISTS pgcrypto WITH SCHEMA public;


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

COMMENT ON EXTENSION pgcrypto IS 'cryptographic functions';


--
-- Name: BookingType; Type: TYPE; Schema: public; Owner: postgres
--

CREATE TYPE public."BookingType" AS ENUM (
    'CAB_ENQUIRY',
    'CAB_BOOKING'
);


ALTER TYPE public."BookingType" OWNER TO postgres;

--
-- Name: EnquiryStage; Type: TYPE; Schema: public; Owner: postgres
--

CREATE TYPE public."EnquiryStage" AS ENUM (
    'LEAD',
    'QUOTE_SENT',
    'FOLLOW_UP',
    'BOOKED',
    'CLOSED'
);


ALTER TYPE public."EnquiryStage" OWNER TO postgres;

--
-- Name: EnquiryStatus; Type: TYPE; Schema: public; Owner: postgres
--

CREATE TYPE public."EnquiryStatus" AS ENUM (
    'NEW',
    'PENDING_CUSTOMER',
    'PENDING_INTERNAL',
    'CONFIRMED',
    'CANCELLED',
    'COMPLETED',
    'SPAM'
);


ALTER TYPE public."EnquiryStatus" OWNER TO postgres;

--
-- Name: EnquiryType; Type: TYPE; Schema: public; Owner: postgres
--

CREATE TYPE public."EnquiryType" AS ENUM (
    'CAB_TRIP',
    'PACKAGE'
);


ALTER TYPE public."EnquiryType" OWNER TO postgres;

--
-- Name: LeadStatus; Type: TYPE; Schema: public; Owner: postgres
--

CREATE TYPE public."LeadStatus" AS ENUM (
    'NEW',
    'CONTACTED',
    'QUOTED',
    'WON',
    'LOST',
    'SPAM'
);


ALTER TYPE public."LeadStatus" OWNER TO postgres;

--
-- Name: LedgerOwnerType; Type: TYPE; Schema: public; Owner: postgres
--

CREATE TYPE public."LedgerOwnerType" AS ENUM (
    'PLATFORM',
    'HOST',
    'GUEST',
    'NONE'
);


ALTER TYPE public."LedgerOwnerType" OWNER TO postgres;

--
-- Name: LedgerReferenceType; Type: TYPE; Schema: public; Owner: postgres
--

CREATE TYPE public."LedgerReferenceType" AS ENUM (
    'PAYMENT',
    'PAYOUT',
    'REFUND',
    'ADJUSTMENT',
    'SETTLEMENT'
);


ALTER TYPE public."LedgerReferenceType" OWNER TO postgres;

--
-- Name: PromoVideoType; Type: TYPE; Schema: public; Owner: postgres
--

CREATE TYPE public."PromoVideoType" AS ENUM (
    'YOUTUBE',
    'VIMEO',
    'MP4'
);


ALTER TYPE public."PromoVideoType" OWNER TO postgres;

--
-- Name: TripType; Type: TYPE; Schema: public; Owner: postgres
--

CREATE TYPE public."TripType" AS ENUM (
    'ONEWAY',
    'ROUNDTRIP'
);


ALTER TYPE public."TripType" OWNER TO postgres;

--
-- Name: WebhookProvider; Type: TYPE; Schema: public; Owner: postgres
--

CREATE TYPE public."WebhookProvider" AS ENUM (
    'STRIPE',
    'RAZORPAY'
);


ALTER TYPE public."WebhookProvider" OWNER TO postgres;

--
-- Name: booking_status_enum; Type: TYPE; Schema: public; Owner: postgres
--

CREATE TYPE public.booking_status_enum AS ENUM (
    'pending',
    'confirmed',
    'cancelled',
    'completed'
);


ALTER TYPE public.booking_status_enum OWNER TO postgres;

--
-- Name: host_bank_account_status_enum; Type: TYPE; Schema: public; Owner: postgres
--

CREATE TYPE public.host_bank_account_status_enum AS ENUM (
    'PENDING',
    'VERIFIED',
    'REJECTED'
);


ALTER TYPE public.host_bank_account_status_enum OWNER TO postgres;

--
-- Name: host_earning_status_enum; Type: TYPE; Schema: public; Owner: postgres
--

CREATE TYPE public.host_earning_status_enum AS ENUM (
    'pending',
    'available',
    'on_hold',
    'reversed'
);


ALTER TYPE public.host_earning_status_enum OWNER TO postgres;

--
-- Name: host_payout_event_actor_enum; Type: TYPE; Schema: public; Owner: postgres
--

CREATE TYPE public.host_payout_event_actor_enum AS ENUM (
    'host',
    'admin',
    'system'
);


ALTER TYPE public.host_payout_event_actor_enum OWNER TO postgres;

--
-- Name: host_payout_method_enum; Type: TYPE; Schema: public; Owner: postgres
--

CREATE TYPE public.host_payout_method_enum AS ENUM (
    'bank',
    'mobile_money',
    'paypal',
    'manual'
);


ALTER TYPE public.host_payout_method_enum OWNER TO postgres;

--
-- Name: host_payout_verification_status_enum; Type: TYPE; Schema: public; Owner: postgres
--

CREATE TYPE public.host_payout_verification_status_enum AS ENUM (
    'pending',
    'verified',
    'rejected'
);


ALTER TYPE public.host_payout_verification_status_enum OWNER TO postgres;

--
-- Name: payment_payout_trigger_enum; Type: TYPE; Schema: public; Owner: postgres
--

CREATE TYPE public.payment_payout_trigger_enum AS ENUM (
    'AFTER_CHECKIN',
    'AFTER_CHECKOUT'
);


ALTER TYPE public.payment_payout_trigger_enum OWNER TO postgres;

--
-- Name: review_actor_enum; Type: TYPE; Schema: public; Owner: postgres
--

CREATE TYPE public.review_actor_enum AS ENUM (
    'guest',
    'host',
    'admin',
    'system'
);


ALTER TYPE public.review_actor_enum OWNER TO postgres;

--
-- Name: review_status_enum; Type: TYPE; Schema: public; Owner: postgres
--

CREATE TYPE public.review_status_enum AS ENUM (
    'published',
    'hidden',
    'removed',
    'pending'
);


ALTER TYPE public.review_status_enum OWNER TO postgres;

--
-- Name: tour_booking_status_enum; Type: TYPE; Schema: public; Owner: postgres
--

CREATE TYPE public.tour_booking_status_enum AS ENUM (
    'pending',
    'confirmed',
    'cancelled',
    'completed'
);


ALTER TYPE public.tour_booking_status_enum OWNER TO postgres;

--
-- Name: tour_status_enum; Type: TYPE; Schema: public; Owner: postgres
--

CREATE TYPE public.tour_status_enum AS ENUM (
    'active',
    'inactive',
    'draft'
);


ALTER TYPE public.tour_status_enum OWNER TO postgres;

--
-- Name: update_updated_at_column(); Type: FUNCTION; Schema: public; Owner: postgres
--

CREATE FUNCTION public.update_updated_at_column() RETURNS trigger
    LANGUAGE plpgsql
    AS $$
BEGIN
    NEW.updated_at = NOW();
    RETURN NEW;
END;
$$;


ALTER FUNCTION public.update_updated_at_column() OWNER TO postgres;



--
-- Name: _prisma_migrations; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public._prisma_migrations (
    id character varying(36) NOT NULL,
    checksum character varying(64) NOT NULL,
    finished_at timestamp with time zone,
    migration_name character varying(255) NOT NULL,
    logs text,
    rolled_back_at timestamp with time zone,
    started_at timestamp with time zone DEFAULT now() NOT NULL,
    applied_steps_count integer DEFAULT 0 NOT NULL
);


ALTER TABLE public._prisma_migrations OWNER TO postgres;

--
-- Name: admin_adjustments; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.admin_adjustments (
    id integer NOT NULL,
    host_id integer,
    ledger_id integer,
    booking_id integer,
    amount numeric(14,2) NOT NULL,
    reason text,
    created_by_admin_id integer,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.admin_adjustments OWNER TO postgres;

--
-- Name: admin_adjustments_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.admin_adjustments_id_seq OWNER TO postgres;

--
-- Name: admin_adjustments_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.admin_adjustments_id_seq OWNED BY public.admin_adjustments.id;


--
-- Name: admin_audit_logs; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.admin_audit_logs (
    id integer NOT NULL,
    admin_user_id integer,
    entity_type character varying(255) NOT NULL,
    entity_id character varying(255),
    action character varying(255) NOT NULL,
    before_json jsonb,
    after_json jsonb,
    ip_address character varying(255),
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.admin_audit_logs OWNER TO postgres;

--
-- Name: admin_audit_logs_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.admin_audit_logs_id_seq OWNER TO postgres;

--
-- Name: admin_audit_logs_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.admin_audit_logs_id_seq OWNED BY public.admin_audit_logs.id;


--
-- Name: admin_conversation_notes; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.admin_conversation_notes (
    id integer NOT NULL,
    conversation_id integer,
    admin_id integer,
    note text NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.admin_conversation_notes OWNER TO postgres;

--
-- Name: admin_conversation_notes_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.admin_conversation_notes_id_seq OWNER TO postgres;

--
-- Name: admin_conversation_notes_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.admin_conversation_notes_id_seq OWNED BY public.admin_conversation_notes.id;


--
-- Name: admin_refresh_tokens; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.admin_refresh_tokens (
    id integer NOT NULL,
    admin_id integer,
    token_hash character varying(255) NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    expires_at timestamp with time zone NOT NULL
);


ALTER TABLE public.admin_refresh_tokens OWNER TO postgres;

--
-- Name: admin_refresh_tokens_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.admin_refresh_tokens_id_seq OWNER TO postgres;

--
-- Name: admin_refresh_tokens_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.admin_refresh_tokens_id_seq OWNED BY public.admin_refresh_tokens.id;


--
-- Name: admin_settings; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.admin_settings (
    key character varying(255) NOT NULL,
    value_json jsonb,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.admin_settings OWNER TO postgres;

--
-- Name: admin_users; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.admin_users (
    id integer NOT NULL,
    name character varying(255) NOT NULL,
    email character varying(255) NOT NULL,
    password_hash character varying(255) NOT NULL,
    role text DEFAULT 'ADMIN'::text NOT NULL,
    status text DEFAULT 'active'::text NOT NULL,
    last_login_at timestamp with time zone,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    CONSTRAINT admin_users_role_check CHECK ((role = ANY (ARRAY['SUPER_ADMIN'::text, 'ADMIN'::text, 'CONTENT_MANAGER'::text, 'PRICING_MANAGER'::text, 'OPERATIONS'::text, 'REVIEW_MODERATOR'::text]))),
    CONSTRAINT admin_users_status_check CHECK ((status = ANY (ARRAY['active'::text, 'disabled'::text])))
);


ALTER TABLE public.admin_users OWNER TO postgres;

--
-- Name: admin_users_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.admin_users_id_seq OWNER TO postgres;

--
-- Name: admin_users_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.admin_users_id_seq OWNED BY public.admin_users.id;


--
-- Name: admins; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.admins (
    id integer NOT NULL,
    name character varying(255) NOT NULL,
    email character varying(255) NOT NULL,
    password_hash character varying(255) NOT NULL,
    role text DEFAULT 'content_manager'::text NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    CONSTRAINT admins_role_check CHECK ((role = ANY (ARRAY['super_admin'::text, 'content_manager'::text])))
);


ALTER TABLE public.admins OWNER TO postgres;

--
-- Name: admins_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.admins_id_seq OWNER TO postgres;

--
-- Name: admins_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.admins_id_seq OWNED BY public.admins.id;


--
-- Name: amenities; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.amenities (
    id integer NOT NULL,
    name character varying(255) NOT NULL,
    category character varying(255),
    icon_key character varying(255),
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    slug character varying(255) NOT NULL,
    is_active boolean DEFAULT true NOT NULL,
    sort_order integer DEFAULT 0 NOT NULL
);


ALTER TABLE public.amenities OWNER TO postgres;

--
-- Name: amenities_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.amenities_id_seq OWNER TO postgres;

--
-- Name: amenities_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.amenities_id_seq OWNED BY public.amenities.id;


--
-- Name: api_integrations; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.api_integrations (
    id integer NOT NULL,
    name character varying(255),
    config_json text,
    active boolean DEFAULT true,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.api_integrations OWNER TO postgres;

--
-- Name: api_integrations_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.api_integrations_id_seq OWNER TO postgres;

--
-- Name: api_integrations_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.api_integrations_id_seq OWNED BY public.api_integrations.id;


--
-- Name: audit_logs; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.audit_logs (
    id integer NOT NULL,
    actor_user_id integer,
    entity_type character varying(255) NOT NULL,
    entity_id character varying(255) NOT NULL,
    action character varying(255) NOT NULL,
    from_status character varying(255),
    to_status character varying(255),
    metadata_json jsonb,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.audit_logs OWNER TO postgres;

--
-- Name: audit_logs_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.audit_logs_id_seq OWNER TO postgres;

--
-- Name: audit_logs_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.audit_logs_id_seq OWNED BY public.audit_logs.id;


--
-- Name: availability_blocks; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.availability_blocks (
    id integer NOT NULL,
    property_id integer,
    start_date date NOT NULL,
    end_date date NOT NULL,
    block_type text NOT NULL,
    note text,
    created_by integer,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    CONSTRAINT availability_blocks_block_type_check CHECK ((block_type = ANY (ARRAY['booked'::text, 'maintenance'::text, 'owner_hold'::text])))
);


ALTER TABLE public.availability_blocks OWNER TO postgres;

--
-- Name: availability_blocks_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.availability_blocks_id_seq OWNER TO postgres;

--
-- Name: availability_blocks_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.availability_blocks_id_seq OWNED BY public.availability_blocks.id;


--
-- Name: banners; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.banners (
    id integer NOT NULL,
    title character varying(255),
    image_url character varying(255),
    cta_text character varying(255),
    cta_link character varying(255),
    status character varying(255) DEFAULT 'draft'::character varying,
    sort_order integer DEFAULT 0,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    placement character varying(255) DEFAULT 'hero'::character varying,
    subtitle character varying(255),
    description text,
    overlay_align character varying(255) DEFAULT 'left'::character varying,
    theme character varying(255) DEFAULT 'dark'::character varying,
    meta jsonb
);


ALTER TABLE public.banners OWNER TO postgres;

--
-- Name: banners_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.banners_id_seq OWNER TO postgres;

--
-- Name: banners_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.banners_id_seq OWNED BY public.banners.id;


--
-- Name: blog_posts; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.blog_posts (
    id integer NOT NULL,
    title character varying(255),
    slug character varying(255),
    body text,
    status character varying(255) DEFAULT 'draft'::character varying,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.blog_posts OWNER TO postgres;

--
-- Name: blog_posts_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.blog_posts_id_seq OWNER TO postgres;

--
-- Name: blog_posts_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.blog_posts_id_seq OWNED BY public.blog_posts.id;


--
-- Name: blogs; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.blogs (
    id uuid DEFAULT gen_random_uuid() NOT NULL,
    title text NOT NULL,
    slug text NOT NULL,
    "coverImageUrl" text NOT NULL,
    excerpt text,
    content text NOT NULL,
    "publishedAt" timestamp(3) without time zone,
    "isActive" boolean DEFAULT true NOT NULL,
    "sortOrder" integer DEFAULT 0 NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.blogs OWNER TO postgres;

--
-- Name: booking_discounts; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.booking_discounts (
    id integer NOT NULL,
    booking_id integer,
    source text NOT NULL,
    source_id character varying(255),
    code character varying(255),
    amount numeric(12,2) DEFAULT '0'::numeric NOT NULL,
    currency character varying(255) DEFAULT 'INR'::character varying NOT NULL,
    metadata jsonb DEFAULT '{}'::jsonb,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    CONSTRAINT booking_discounts_source_check CHECK ((source = ANY (ARRAY['promotion'::text, 'promo_code'::text, 'card_offer'::text])))
);


ALTER TABLE public.booking_discounts OWNER TO postgres;

--
-- Name: booking_discounts_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.booking_discounts_id_seq OWNER TO postgres;

--
-- Name: booking_discounts_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.booking_discounts_id_seq OWNED BY public.booking_discounts.id;


--
-- Name: booking_events; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.booking_events (
    id integer NOT NULL,
    booking_id integer,
    actor_type character varying(255) NOT NULL,
    actor_id integer,
    event_type character varying(255) NOT NULL,
    from_status character varying(255),
    to_status character varying(255),
    metadata jsonb,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.booking_events OWNER TO postgres;

--
-- Name: booking_events_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.booking_events_id_seq OWNER TO postgres;

--
-- Name: booking_events_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.booking_events_id_seq OWNED BY public.booking_events.id;


--
-- Name: booking_holds; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.booking_holds (
    id integer NOT NULL,
    property_id integer,
    check_in date NOT NULL,
    check_out date NOT NULL,
    guests integer DEFAULT 1,
    hold_status text DEFAULT 'active'::text,
    expires_at timestamp with time zone NOT NULL,
    session_id character varying(255),
    user_id integer,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    CONSTRAINT booking_holds_hold_status_check CHECK ((hold_status = ANY (ARRAY['active'::text, 'expired'::text, 'converted'::text])))
);


ALTER TABLE public.booking_holds OWNER TO postgres;

--
-- Name: booking_holds_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.booking_holds_id_seq OWNER TO postgres;

--
-- Name: booking_holds_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.booking_holds_id_seq OWNED BY public.booking_holds.id;


--
-- Name: booking_items; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.booking_items (
    id integer NOT NULL,
    booking_id integer,
    type character varying(255) NOT NULL,
    label character varying(255),
    qty numeric(12,2) DEFAULT '1'::numeric,
    unit_price numeric(12,2) DEFAULT '0'::numeric,
    amount numeric(12,2) DEFAULT '0'::numeric,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.booking_items OWNER TO postgres;

--
-- Name: booking_items_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.booking_items_id_seq OWNER TO postgres;

--
-- Name: booking_items_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.booking_items_id_seq OWNED BY public.booking_items.id;


--
-- Name: booking_notes; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.booking_notes (
    id integer NOT NULL,
    booking_id integer,
    created_by integer,
    visible_to_host boolean DEFAULT false NOT NULL,
    note text NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.booking_notes OWNER TO postgres;

--
-- Name: booking_notes_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.booking_notes_id_seq OWNER TO postgres;

--
-- Name: booking_notes_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.booking_notes_id_seq OWNED BY public.booking_notes.id;


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

CREATE TABLE public.bookings (
    id integer NOT NULL,
    booking_code character varying(255) NOT NULL,
    booking_type text NOT NULL,
    property_id integer,
    package_id integer,
    customer_name character varying(255) NOT NULL,
    customer_email character varying(255),
    customer_phone character varying(255),
    check_in_date date,
    check_out_date date,
    travel_start_date date,
    travel_end_date date,
    no_of_guests integer,
    no_of_rooms integer,
    total_amount numeric(12,2),
    currency character varying(255) DEFAULT 'INR'::character varying,
    payment_status character varying(255) DEFAULT 'pending'::character varying NOT NULL,
    booking_status character varying(255) DEFAULT 'pending'::character varying NOT NULL,
    special_requests text,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    notes text,
    customer_id integer,
    pricing_snapshot_json jsonb,
    subtotal_amount numeric(12,2),
    fees_amount numeric(12,2),
    tax_amount numeric(12,2),
    discount_amount numeric(12,2),
    coupon_code character varying(255),
    coupon_title character varying(255),
    hold_expires_at timestamp with time zone,
    extras_json jsonb,
    payment_provider character varying(255),
    payment_intent_id character varying(255),
    payment_reference character varying(255),
    payment_amount numeric(12,2),
    payment_currency character varying(255),
    terms_accepted boolean DEFAULT false,
    arrival_time character varying(255),
    host_id integer,
    guest_id integer,
    nights integer,
    guests_count integer,
    payout_status character varying(255) DEFAULT 'not_ready'::character varying NOT NULL,
    cancellation_policy text,
    cancel_initiated_by character varying(255),
    cancel_reason text,
    totals_json jsonb,
    promotion_id integer,
    promo_code_id integer,
    card_offer_id integer,
    client_id integer,
    core_status text DEFAULT 'CREATED'::text,
    total_amount_paise integer,
    room_type_id integer,
    room_count integer DEFAULT 1,
    CONSTRAINT bookings_booking_type_check CHECK ((booking_type = ANY (ARRAY['property'::text, 'package'::text]))),
    CONSTRAINT bookings_core_status_check CHECK ((core_status = ANY (ARRAY['CREATED'::text, 'CONFIRMED'::text, 'CANCELLED'::text, 'COMPLETED'::text]))),
    CONSTRAINT bookings_payment_status_check_v3 CHECK (((payment_status)::text = ANY ((ARRAY['unpaid'::character varying, 'paid'::character varying, 'partial'::character varying, 'refunded'::character varying, 'failed'::character varying, 'pending'::character varying, 'requires_payment'::character varying])::text[]))),
    CONSTRAINT bookings_status_check_v3 CHECK (((booking_status)::text = ANY ((ARRAY['pending'::character varying, 'awaiting_payment'::character varying, 'confirmed'::character varying, 'checked_in'::character varying, 'checked_out'::character varying, 'completed'::character varying, 'cancel_requested'::character varying, 'cancelled'::character varying, 'declined'::character varying, 'expired'::character varying, 'refunded'::character varying, 'no_show'::character varying, 'draft'::character varying, 'paid'::character varying, 'new'::character varying])::text[])))
);


ALTER TABLE public.bookings OWNER TO postgres;

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

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


ALTER SEQUENCE public.bookings_id_seq OWNER TO postgres;

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

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


--
-- Name: cab_amenities; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.cab_amenities (
    id uuid DEFAULT gen_random_uuid() NOT NULL,
    name text NOT NULL,
    slug text NOT NULL,
    category text,
    description text,
    icon text,
    "isActive" boolean DEFAULT true NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.cab_amenities OWNER TO postgres;

--
-- Name: cab_packages; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.cab_packages (
    id uuid DEFAULT gen_random_uuid() NOT NULL,
    name text NOT NULL,
    slug text NOT NULL,
    description text,
    "locationId" uuid NOT NULL,
    "vehicleCategoryId" uuid NOT NULL,
    "seatConfigId" uuid NOT NULL,
    "tripType" public."TripType" DEFAULT 'ONEWAY'::public."TripType" NOT NULL,
    "hoursIncluded" integer NOT NULL,
    "kmIncluded" integer NOT NULL,
    "baseFare" numeric(12,2) NOT NULL,
    "extraHourRate" numeric(12,2) NOT NULL,
    "extraKmRate" numeric(12,2) NOT NULL,
    currency text DEFAULT 'INR'::text NOT NULL,
    "isActive" boolean DEFAULT true NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.cab_packages OWNER TO postgres;

--
-- Name: cabs_hero_banners; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.cabs_hero_banners (
    id uuid DEFAULT gen_random_uuid() NOT NULL,
    title text NOT NULL,
    subtitle text,
    "imageUrl" text NOT NULL,
    "ctaText" text,
    "ctaLink" text,
    "sortOrder" integer DEFAULT 0 NOT NULL,
    "isActive" boolean DEFAULT true NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.cabs_hero_banners OWNER TO postgres;

--
-- Name: cabs_vehicle_banners; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.cabs_vehicle_banners (
    id uuid DEFAULT gen_random_uuid() NOT NULL,
    name text NOT NULL,
    category text,
    "imageUrl" text NOT NULL,
    "sortOrder" integer DEFAULT 0 NOT NULL,
    "isActive" boolean DEFAULT true NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.cabs_vehicle_banners OWNER TO postgres;

--
-- Name: cancellation_policies; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.cancellation_policies (
    id integer NOT NULL,
    code character varying(255) NOT NULL,
    name character varying(255) NOT NULL,
    rules_json jsonb DEFAULT '{}'::jsonb NOT NULL,
    is_active boolean DEFAULT true NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.cancellation_policies OWNER TO postgres;

--
-- Name: cancellation_policies_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.cancellation_policies_id_seq OWNER TO postgres;

--
-- Name: cancellation_policies_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.cancellation_policies_id_seq OWNED BY public.cancellation_policies.id;


--
-- Name: cancellation_requests; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.cancellation_requests (
    id integer NOT NULL,
    booking_id integer,
    initiated_by text NOT NULL,
    reason text,
    refund_amount numeric(12,2),
    status text DEFAULT 'pending'::text NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    property_id integer,
    host_id integer,
    guest_id integer,
    requested_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    host_action character varying(255),
    host_action_note text,
    admin_action_note text,
    policy_snapshot jsonb DEFAULT '{}'::jsonb NOT NULL,
    refund_snapshot jsonb DEFAULT '{}'::jsonb NOT NULL,
    cancellation_fee numeric(12,2) DEFAULT '0'::numeric NOT NULL,
    platform_fee_refund numeric(12,2) DEFAULT '0'::numeric NOT NULL,
    host_payout_adjustment numeric(12,2) DEFAULT '0'::numeric NOT NULL,
    currency character varying(255) DEFAULT 'INR'::character varying NOT NULL,
    CONSTRAINT cancellation_requests_initiated_by_check_v3 CHECK ((initiated_by = ANY (ARRAY['guest'::text, 'host'::text, 'admin'::text]))),
    CONSTRAINT cancellation_requests_status_check_v3 CHECK ((status = ANY (ARRAY['requested'::text, 'host_reviewed'::text, 'admin_reviewed'::text, 'approved'::text, 'rejected'::text, 'refund_initiated'::text, 'refunded'::text, 'closed'::text, 'disputed'::text])))
);


ALTER TABLE public.cancellation_requests OWNER TO postgres;

--
-- Name: cancellation_requests_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.cancellation_requests_id_seq OWNER TO postgres;

--
-- Name: cancellation_requests_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.cancellation_requests_id_seq OWNED BY public.cancellation_requests.id;


--
-- Name: card_offers; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.card_offers (
    id integer NOT NULL,
    host_id integer,
    property_id integer,
    provider_name character varying(255) NOT NULL,
    card_type text DEFAULT 'any'::text NOT NULL,
    discount_type text NOT NULL,
    discount_value numeric(10,2) NOT NULL,
    min_amount numeric(12,2),
    start_date date NOT NULL,
    end_date date NOT NULL,
    terms text,
    is_active boolean DEFAULT true NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    image_url text,
    card_brand text DEFAULT 'other'::text,
    CONSTRAINT card_offers_card_brand_check CHECK ((card_brand = ANY (ARRAY['visa'::text, 'mastercard'::text, 'amex'::text, 'rupay'::text, 'momo'::text, 'other'::text]))),
    CONSTRAINT card_offers_card_type_check CHECK ((card_type = ANY (ARRAY['credit'::text, 'debit'::text, 'prepaid'::text, 'any'::text]))),
    CONSTRAINT card_offers_discount_type_check CHECK ((discount_type = ANY (ARRAY['percent'::text, 'fixed'::text])))
);


ALTER TABLE public.card_offers OWNER TO postgres;

--
-- Name: card_offers_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.card_offers_id_seq OWNER TO postgres;

--
-- Name: card_offers_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.card_offers_id_seq OWNED BY public.card_offers.id;


--
-- Name: channel_audit_logs; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.channel_audit_logs (
    id uuid DEFAULT gen_random_uuid() NOT NULL,
    admin_id integer,
    action character varying(255) NOT NULL,
    entity_type character varying(255) NOT NULL,
    entity_id uuid,
    payload jsonb,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.channel_audit_logs OWNER TO postgres;

--
-- Name: channel_events; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.channel_events (
    id uuid DEFAULT gen_random_uuid() NOT NULL,
    provider_connection_id uuid,
    event_type text NOT NULL,
    signature_valid boolean DEFAULT false NOT NULL,
    raw_payload jsonb,
    processed boolean DEFAULT false NOT NULL,
    processed_at timestamp with time zone,
    error text,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.channel_events OWNER TO postgres;

--
-- Name: channel_sync_jobs; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.channel_sync_jobs (
    id uuid DEFAULT gen_random_uuid() NOT NULL,
    mapping_id uuid,
    job_type text DEFAULT 'full_sync'::text NOT NULL,
    status text DEFAULT 'queued'::text NOT NULL,
    started_at timestamp with time zone,
    finished_at timestamp with time zone,
    attempts integer DEFAULT 0 NOT NULL,
    error_message text,
    request_payload jsonb,
    response_payload jsonb,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    CONSTRAINT channel_sync_jobs_job_type_check CHECK ((job_type = ANY (ARRAY['calendar_pull'::text, 'calendar_push'::text, 'price_pull'::text, 'price_push'::text, 'content_pull'::text, 'content_push'::text, 'full_sync'::text, 'test_connection'::text]))),
    CONSTRAINT channel_sync_jobs_status_check CHECK ((status = ANY (ARRAY['queued'::text, 'running'::text, 'success'::text, 'failed'::text])))
);


ALTER TABLE public.channel_sync_jobs OWNER TO postgres;

--
-- Name: cities; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.cities (
    id integer NOT NULL,
    state_id integer,
    name character varying(255) NOT NULL,
    code character varying(255) NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.cities OWNER TO postgres;

--
-- Name: cities_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.cities_id_seq OWNER TO postgres;

--
-- Name: cities_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.cities_id_seq OWNED BY public.cities.id;


--
-- Name: clients; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.clients (
    id integer NOT NULL,
    full_name character varying(255),
    email character varying(255),
    phone character varying(255),
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.clients OWNER TO postgres;

--
-- Name: clients_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.clients_id_seq OWNER TO postgres;

--
-- Name: clients_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.clients_id_seq OWNED BY public.clients.id;


--
-- Name: conversation_events; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.conversation_events (
    id integer NOT NULL,
    conversation_id integer,
    actor_type character varying(255) NOT NULL,
    actor_id integer,
    event_type character varying(255) NOT NULL,
    metadata jsonb DEFAULT '{}'::jsonb,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.conversation_events OWNER TO postgres;

--
-- Name: conversation_events_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.conversation_events_id_seq OWNER TO postgres;

--
-- Name: conversation_events_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.conversation_events_id_seq OWNED BY public.conversation_events.id;


--
-- Name: conversations; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.conversations (
    id integer NOT NULL,
    booking_id integer,
    host_id integer,
    customer_id integer,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    property_id integer,
    guest_id integer,
    last_message_at timestamp with time zone,
    last_message_preview text,
    host_unread_count integer DEFAULT 0 NOT NULL,
    guest_unread_count integer DEFAULT 0 NOT NULL,
    admin_flagged boolean DEFAULT false NOT NULL,
    host_muted boolean DEFAULT false NOT NULL,
    guest_muted boolean DEFAULT false NOT NULL
);


ALTER TABLE public.conversations OWNER TO postgres;

--
-- Name: conversations_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.conversations_id_seq OWNER TO postgres;

--
-- Name: conversations_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.conversations_id_seq OWNED BY public.conversations.id;


--
-- Name: countries; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.countries (
    id integer NOT NULL,
    name character varying(255) NOT NULL,
    code character varying(255) NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.countries OWNER TO postgres;

--
-- Name: countries_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.countries_id_seq OWNER TO postgres;

--
-- Name: countries_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.countries_id_seq OWNED BY public.countries.id;


--
-- Name: coupon_property_scope; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.coupon_property_scope (
    id integer NOT NULL,
    coupon_id integer,
    property_id integer,
    city character varying(255),
    state character varying(255),
    country character varying(255)
);


ALTER TABLE public.coupon_property_scope OWNER TO postgres;

--
-- Name: coupon_property_scope_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.coupon_property_scope_id_seq OWNER TO postgres;

--
-- Name: coupon_property_scope_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.coupon_property_scope_id_seq OWNED BY public.coupon_property_scope.id;


--
-- Name: coupon_redemptions; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.coupon_redemptions (
    id integer NOT NULL,
    coupon_id integer,
    booking_id integer,
    user_id integer,
    session_id character varying(255),
    redeemed_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    discount_amount numeric(12,2)
);


ALTER TABLE public.coupon_redemptions OWNER TO postgres;

--
-- Name: coupon_redemptions_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.coupon_redemptions_id_seq OWNER TO postgres;

--
-- Name: coupon_redemptions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.coupon_redemptions_id_seq OWNED BY public.coupon_redemptions.id;


--
-- Name: coupons; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.coupons (
    id integer NOT NULL,
    code text,
    discount_amount numeric(12,2),
    discount_percent numeric(5,2),
    valid_from date,
    valid_to date,
    active boolean DEFAULT true,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    title text,
    description text,
    "discountType" text,
    "discountValue" numeric(12,2),
    "minSpend" numeric(12,2),
    "maxDiscount" numeric(12,2),
    currency text,
    "usageLimit" integer,
    "usageCount" integer,
    "startsAt" timestamp(3) without time zone,
    "endsAt" timestamp(3) without time zone,
    "isActive" boolean DEFAULT true,
    "appliesToCabs" boolean DEFAULT true,
    "appliesToPackages" boolean DEFAULT true,
    "vehicleCategoryId" uuid,
    "transportPackageId" uuid,
    "createdAt" timestamp(3) without time zone,
    "updatedAt" timestamp(3) without time zone
);


ALTER TABLE public.coupons OWNER TO postgres;

--
-- Name: coupons_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.coupons_id_seq OWNER TO postgres;

--
-- Name: coupons_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.coupons_id_seq OWNED BY public.coupons.id;


--
-- Name: customer_reviews; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.customer_reviews (
    id integer NOT NULL,
    customer_id integer,
    booking_id integer,
    rating integer NOT NULL,
    comment text,
    status character varying(255) DEFAULT 'pending'::character varying,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.customer_reviews OWNER TO postgres;

--
-- Name: customer_reviews_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.customer_reviews_id_seq OWNER TO postgres;

--
-- Name: customer_reviews_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.customer_reviews_id_seq OWNED BY public.customer_reviews.id;


--
-- Name: customer_sessions; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.customer_sessions (
    id integer NOT NULL,
    customer_id integer,
    refresh_token_hash character varying(255) NOT NULL,
    user_agent character varying(255),
    ip character varying(255),
    expires_at timestamp with time zone NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.customer_sessions OWNER TO postgres;

--
-- Name: customer_sessions_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.customer_sessions_id_seq OWNER TO postgres;

--
-- Name: customer_sessions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.customer_sessions_id_seq OWNED BY public.customer_sessions.id;


--
-- Name: customers; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.customers (
    id integer NOT NULL,
    name character varying(255) NOT NULL,
    phone character varying(255) NOT NULL,
    email character varying(255),
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    full_name character varying(255),
    country_code character varying(255) DEFAULT '+91'::character varying,
    password_hash text,
    is_phone_verified boolean DEFAULT false,
    is_email_verified boolean DEFAULT false,
    status character varying(255) DEFAULT 'active'::character varying,
    avatar_url character varying(255),
    address character varying(255),
    city character varying(255),
    country character varying(255),
    user_id integer
);


ALTER TABLE public.customers OWNER TO postgres;

--
-- Name: customers_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.customers_id_seq OWNER TO postgres;

--
-- Name: customers_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.customers_id_seq OWNED BY public.customers.id;


--
-- Name: daily_rate_overrides; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.daily_rate_overrides (
    id integer NOT NULL,
    property_id integer,
    rate_plan_id integer,
    date date NOT NULL,
    nightly_rate numeric(12,2) NOT NULL,
    min_nights integer,
    note text
);


ALTER TABLE public.daily_rate_overrides OWNER TO postgres;

--
-- Name: daily_rate_overrides_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.daily_rate_overrides_id_seq OWNER TO postgres;

--
-- Name: daily_rate_overrides_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.daily_rate_overrides_id_seq OWNED BY public.daily_rate_overrides.id;


--
-- Name: enquiry_leads; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.enquiry_leads (
    id uuid DEFAULT gen_random_uuid() NOT NULL,
    "enquiryType" public."EnquiryType" NOT NULL,
    status public."EnquiryStatus" DEFAULT 'NEW'::public."EnquiryStatus" NOT NULL,
    "fullName" text NOT NULL,
    phone text NOT NULL,
    email text,
    pax integer NOT NULL,
    "travelDate" timestamp(3) without time zone NOT NULL,
    budget numeric(12,2),
    notes text,
    consent boolean DEFAULT true NOT NULL,
    "vehicleId" uuid,
    "transportPackageId" uuid,
    "transportPackageVariantId" uuid,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "enquiryDate" date DEFAULT CURRENT_DATE,
    "tripStartDate" date,
    "tripEndDate" date,
    "tripType" public."TripType",
    "pickupLocationId" uuid,
    "dropLocationId" uuid,
    "pickupDate" date,
    "pickupTime" text,
    "returnDate" date,
    passengers integer,
    "routeId" uuid,
    "lastFollowUpAt" timestamp(3) without time zone,
    "nextFollowUpAt" timestamp(3) without time zone,
    "assignedToAdminId" integer,
    "customerName" text,
    "estimatedTotal" numeric(12,2),
    "pricingBreakdownJson" jsonb,
    source text DEFAULT 'cabs_landing'::text,
    stage public."EnquiryStage" DEFAULT 'LEAD'::public."EnquiryStage",
    "bookingType" public."BookingType" DEFAULT 'CAB_ENQUIRY'::public."BookingType"
);


ALTER TABLE public.enquiry_leads OWNER TO postgres;

--
-- Name: faqs; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.faqs (
    id integer NOT NULL,
    question character varying(255) NOT NULL,
    answer text NOT NULL,
    status character varying(255) DEFAULT 'draft'::character varying,
    sort_order integer DEFAULT 0,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.faqs OWNER TO postgres;

--
-- Name: faqs_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.faqs_id_seq OWNER TO postgres;

--
-- Name: faqs_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.faqs_id_seq OWNED BY public.faqs.id;


--
-- Name: fees; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.fees (
    id integer NOT NULL,
    property_id integer,
    name character varying(255) NOT NULL,
    fee_type text DEFAULT 'fixed'::text NOT NULL,
    amount numeric(12,2) NOT NULL,
    taxable boolean DEFAULT false NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    CONSTRAINT fees_fee_type_check CHECK ((fee_type = ANY (ARRAY['fixed'::text, 'per_night'::text, 'per_stay'::text, 'per_person'::text])))
);


ALTER TABLE public.fees OWNER TO postgres;

--
-- Name: fees_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.fees_id_seq OWNER TO postgres;

--
-- Name: fees_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.fees_id_seq OWNED BY public.fees.id;


--
-- Name: footer_configs; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.footer_configs (
    id text DEFAULT 'main'::text NOT NULL,
    sections jsonb NOT NULL,
    contact jsonb NOT NULL,
    socials jsonb NOT NULL,
    "copyrightText" text,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "newsletterHeading" text,
    "newsletterSubheading" text,
    "newsletterButtonLabel" text,
    "newsletterPlaceholder" text,
    "newsletterEyebrow" text,
    places jsonb
);


ALTER TABLE public.footer_configs OWNER TO postgres;

--
-- Name: guest_trips; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.guest_trips (
    id uuid DEFAULT gen_random_uuid() NOT NULL,
    title text NOT NULL,
    caption text,
    location text,
    "tripDate" date,
    "imageUrl" text NOT NULL,
    "sortOrder" integer DEFAULT 0 NOT NULL,
    "isActive" boolean DEFAULT true NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.guest_trips OWNER TO postgres;

--
-- Name: host_bank_accounts; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.host_bank_accounts (
    id integer NOT NULL,
    host_id integer,
    account_holder_name character varying(255) NOT NULL,
    bank_name character varying(255) NOT NULL,
    account_number_masked character varying(255) NOT NULL,
    account_number_encrypted text NOT NULL,
    ifsc character varying(255) NOT NULL,
    status public.host_bank_account_status_enum DEFAULT 'PENDING'::public.host_bank_account_status_enum NOT NULL,
    rejection_reason text,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.host_bank_accounts OWNER TO postgres;

--
-- Name: host_bank_accounts_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.host_bank_accounts_id_seq OWNER TO postgres;

--
-- Name: host_bank_accounts_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.host_bank_accounts_id_seq OWNED BY public.host_bank_accounts.id;


--
-- Name: host_earnings_ledger; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.host_earnings_ledger (
    id integer NOT NULL,
    host_id integer,
    property_id integer,
    booking_id integer,
    gross_amount numeric(12,2) DEFAULT '0'::numeric NOT NULL,
    commission_amount numeric(12,2) DEFAULT '0'::numeric NOT NULL,
    fees_amount numeric(12,2) DEFAULT '0'::numeric NOT NULL,
    tax_amount numeric(12,2) DEFAULT '0'::numeric NOT NULL,
    net_amount numeric(12,2) DEFAULT '0'::numeric NOT NULL,
    payout_status text DEFAULT 'pending'::text NOT NULL,
    payout_id integer,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    currency character varying(255) DEFAULT 'INR'::character varying NOT NULL,
    platform_commission numeric(14,2) DEFAULT '0'::numeric NOT NULL,
    taxes numeric(14,2) DEFAULT '0'::numeric NOT NULL,
    fees numeric(14,2) DEFAULT '0'::numeric NOT NULL,
    refunds numeric(14,2) DEFAULT '0'::numeric NOT NULL,
    adjustments numeric(14,2) DEFAULT '0'::numeric NOT NULL,
    net_earnings numeric(14,2) DEFAULT '0'::numeric NOT NULL,
    earning_status public.host_earning_status_enum DEFAULT 'pending'::public.host_earning_status_enum NOT NULL,
    available_at timestamp with time zone,
    CONSTRAINT host_earnings_ledger_payout_status_check CHECK ((payout_status = ANY (ARRAY['pending'::text, 'ready'::text, 'paid'::text, 'failed'::text])))
);


ALTER TABLE public.host_earnings_ledger OWNER TO postgres;

--
-- Name: host_earnings_ledger_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.host_earnings_ledger_id_seq OWNER TO postgres;

--
-- Name: host_earnings_ledger_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.host_earnings_ledger_id_seq OWNED BY public.host_earnings_ledger.id;


--
-- Name: host_kyc; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.host_kyc (
    id integer NOT NULL,
    host_id integer,
    status character varying(255) DEFAULT 'pending'::character varying,
    notes text,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.host_kyc OWNER TO postgres;

--
-- Name: host_kyc_documents; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.host_kyc_documents (
    id integer NOT NULL,
    host_id integer,
    document_type text NOT NULL,
    document_number character varying(255),
    file_url character varying(255) NOT NULL,
    status text DEFAULT 'PENDING'::text,
    reviewer_admin_id integer,
    review_notes text,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    doc_type character varying(255),
    doc_number character varying(255),
    admin_comment text,
    uploaded_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    reviewed_at timestamp with time zone,
    CONSTRAINT host_kyc_documents_document_type_check CHECK ((document_type = ANY (ARRAY['ID_FRONT'::text, 'ID_BACK'::text, 'LICENSE'::text, 'TAX'::text, 'OTHER'::text]))),
    CONSTRAINT host_kyc_documents_status_check CHECK ((status = ANY (ARRAY['PENDING'::text, 'VERIFIED'::text, 'REJECTED'::text])))
);


ALTER TABLE public.host_kyc_documents OWNER TO postgres;

--
-- Name: host_kyc_documents_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.host_kyc_documents_id_seq OWNER TO postgres;

--
-- Name: host_kyc_documents_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.host_kyc_documents_id_seq OWNED BY public.host_kyc_documents.id;


--
-- Name: host_kyc_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.host_kyc_id_seq OWNER TO postgres;

--
-- Name: host_kyc_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.host_kyc_id_seq OWNED BY public.host_kyc.id;


--
-- Name: host_kyc_submissions; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.host_kyc_submissions (
    id integer NOT NULL,
    host_id integer,
    id_type character varying(255) NOT NULL,
    id_number character varying(255),
    id_front_file character varying(255),
    id_back_file character varying(255),
    selfie_file character varying(255),
    address_proof_file character varying(255),
    bank_proof_file character varying(255),
    status text DEFAULT 'not_submitted'::text NOT NULL,
    rejection_reason text,
    submitted_at timestamp with time zone,
    reviewed_at timestamp with time zone,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    CONSTRAINT host_kyc_submissions_status_check CHECK ((status = ANY (ARRAY['not_submitted'::text, 'under_review'::text, 'approved'::text, 'rejected'::text])))
);


ALTER TABLE public.host_kyc_submissions OWNER TO postgres;

--
-- Name: host_kyc_submissions_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.host_kyc_submissions_id_seq OWNER TO postgres;

--
-- Name: host_kyc_submissions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.host_kyc_submissions_id_seq OWNED BY public.host_kyc_submissions.id;


--
-- Name: host_payout_accounts; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.host_payout_accounts (
    id integer NOT NULL,
    host_id integer,
    method text NOT NULL,
    account_name character varying(255) NOT NULL,
    account_number_or_mobile character varying(255) NOT NULL,
    bank_name character varying(255),
    ifsc_swift character varying(255),
    country character varying(255),
    is_default boolean DEFAULT false,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    payout_method public.host_payout_method_enum DEFAULT 'bank'::public.host_payout_method_enum NOT NULL,
    account_number character varying(255),
    branch character varying(255),
    currency character varying(255) DEFAULT 'INR'::character varying,
    mobile_money_provider character varying(255),
    mobile_money_number character varying(255),
    paypal_email character varying(255),
    is_verified boolean DEFAULT false NOT NULL,
    verification_status public.host_payout_verification_status_enum DEFAULT 'pending'::public.host_payout_verification_status_enum NOT NULL,
    rejection_reason text,
    CONSTRAINT host_payout_accounts_method_check CHECK ((method = ANY (ARRAY['BANK'::text, 'MOBILE_MONEY'::text, 'PAYPAL'::text, 'OTHER'::text])))
);


ALTER TABLE public.host_payout_accounts OWNER TO postgres;

--
-- Name: host_payout_accounts_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.host_payout_accounts_id_seq OWNER TO postgres;

--
-- Name: host_payout_accounts_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.host_payout_accounts_id_seq OWNED BY public.host_payout_accounts.id;


--
-- Name: host_payout_events; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.host_payout_events (
    id integer NOT NULL,
    payout_id integer,
    actor_type public.host_payout_event_actor_enum NOT NULL,
    actor_id integer,
    event_type character varying(255) NOT NULL,
    metadata jsonb DEFAULT '{}'::jsonb,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.host_payout_events OWNER TO postgres;

--
-- Name: host_payout_events_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.host_payout_events_id_seq OWNER TO postgres;

--
-- Name: host_payout_events_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.host_payout_events_id_seq OWNED BY public.host_payout_events.id;


--
-- Name: host_payouts; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.host_payouts (
    id integer NOT NULL,
    host_id integer,
    booking_id integer,
    amount numeric(12,2),
    status character varying(255) DEFAULT 'pending'::character varying,
    period character varying(255),
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    currency character varying(255) DEFAULT 'INR'::character varying NOT NULL,
    period_start date,
    period_end date,
    method_snapshot jsonb DEFAULT '{}'::jsonb NOT NULL,
    reference character varying(255),
    failure_reason text,
    scheduled_for timestamp with time zone,
    processed_at timestamp with time zone,
    created_by_admin_id integer,
    payout_ref character varying(255),
    payment_id integer,
    amount_paise integer,
    processing_at timestamp with time zone,
    paid_at timestamp with time zone,
    hold_reason text,
    processing_token character varying(255),
    gateway_transfer_id character varying(255)
);


ALTER TABLE public.host_payouts OWNER TO postgres;

--
-- Name: host_payouts_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.host_payouts_id_seq OWNER TO postgres;

--
-- Name: host_payouts_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.host_payouts_id_seq OWNED BY public.host_payouts.id;


--
-- Name: host_sessions; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.host_sessions (
    id integer NOT NULL,
    host_id integer,
    refresh_token_hash character varying(255) NOT NULL,
    user_agent character varying(255),
    ip character varying(255),
    expires_at timestamp with time zone NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.host_sessions OWNER TO postgres;

--
-- Name: host_sessions_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.host_sessions_id_seq OWNER TO postgres;

--
-- Name: host_sessions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.host_sessions_id_seq OWNED BY public.host_sessions.id;


--
-- Name: host_stripe_accounts; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.host_stripe_accounts (
    id integer NOT NULL,
    host_id integer,
    stripe_account_id character varying(255) NOT NULL,
    charges_enabled boolean DEFAULT false NOT NULL,
    payouts_enabled boolean DEFAULT false NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.host_stripe_accounts OWNER TO postgres;

--
-- Name: host_stripe_accounts_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.host_stripe_accounts_id_seq OWNER TO postgres;

--
-- Name: host_stripe_accounts_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.host_stripe_accounts_id_seq OWNED BY public.host_stripe_accounts.id;


--
-- Name: hosts; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.hosts (
    id integer NOT NULL,
    name character varying(255) NOT NULL,
    email character varying(255),
    phone character varying(255),
    city character varying(255),
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    full_name character varying(255),
    business_name character varying(255),
    country_code character varying(255) DEFAULT '+91'::character varying,
    password_hash text,
    status text DEFAULT 'PENDING'::text,
    rejection_reason text,
    blocked_reason text,
    commission_rate numeric(5,2) DEFAULT '0'::numeric,
    company_name character varying(255),
    profile_photo_url character varying(255),
    bio text,
    kyc_status text DEFAULT 'pending'::text NOT NULL,
    kyc_doc_type character varying(255),
    kyc_doc_number character varying(255),
    address text,
    state character varying(255),
    country character varying(255) DEFAULT 'India'::character varying,
    payout_method text DEFAULT 'bank'::text NOT NULL,
    payout_details jsonb,
    timezone character varying(255) DEFAULT 'Asia/Kolkata'::character varying,
    language character varying(255) DEFAULT 'en'::character varying,
    address_line character varying(255),
    postal_code character varying(255),
    photo_url character varying(255),
    profile_image_url character varying(255),
    address_line1 character varying(255),
    pincode character varying(255),
    user_id integer,
    CONSTRAINT hosts_kyc_status_check CHECK ((kyc_status = ANY (ARRAY['pending'::text, 'verified'::text, 'rejected'::text]))),
    CONSTRAINT hosts_payout_method_check CHECK ((payout_method = ANY (ARRAY['bank'::text, 'upi'::text, 'paypal'::text]))),
    CONSTRAINT hosts_status_check CHECK ((status = ANY (ARRAY['PENDING'::text, 'APPROVED'::text, 'REJECTED'::text, 'BLOCKED'::text])))
);


ALTER TABLE public.hosts OWNER TO postgres;

--
-- Name: hosts_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.hosts_id_seq OWNER TO postgres;

--
-- Name: hosts_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.hosts_id_seq OWNED BY public.hosts.id;


--
-- Name: invoice_sequences; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.invoice_sequences (
    key character varying(255) NOT NULL,
    current integer DEFAULT 0 NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.invoice_sequences OWNER TO postgres;

--
-- Name: invoices; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.invoices (
    id integer NOT NULL,
    invoice_number character varying(255) NOT NULL,
    invoice_type text NOT NULL,
    booking_id integer,
    guest_id integer,
    host_id integer,
    currency character varying(8) DEFAULT 'INR'::character varying,
    issued_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    status text DEFAULT 'ISSUED'::text NOT NULL,
    billed_to_json jsonb,
    issued_by_json jsonb,
    stay_details_json jsonb,
    payment_info_json jsonb,
    line_items_json jsonb,
    totals_json jsonb,
    payout_info_json jsonb,
    notes text,
    pdf_file_name character varying(255),
    pdf_file_path character varying(255),
    pdf_url character varying(255),
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    CONSTRAINT invoices_invoice_type_check CHECK ((invoice_type = ANY (ARRAY['GUEST_RECEIPT'::text, 'HOST_SETTLEMENT'::text, 'HV_TO_HOST_COMMISSION'::text]))),
    CONSTRAINT invoices_status_check CHECK ((status = ANY (ARRAY['ISSUED'::text, 'VOID'::text, 'REFUNDED'::text])))
);


ALTER TABLE public.invoices OWNER TO postgres;

--
-- Name: invoices_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.invoices_id_seq OWNER TO postgres;

--
-- Name: invoices_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.invoices_id_seq OWNED BY public.invoices.id;


--
-- Name: knex_migrations; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.knex_migrations (
    id integer NOT NULL,
    name character varying(255),
    batch integer,
    migration_time timestamp with time zone
);


ALTER TABLE public.knex_migrations OWNER TO postgres;

--
-- Name: knex_migrations_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.knex_migrations_id_seq OWNER TO postgres;

--
-- Name: knex_migrations_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.knex_migrations_id_seq OWNED BY public.knex_migrations.id;


--
-- Name: knex_migrations_lock; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.knex_migrations_lock (
    index integer NOT NULL,
    is_locked integer
);


ALTER TABLE public.knex_migrations_lock OWNER TO postgres;

--
-- Name: knex_migrations_lock_index_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.knex_migrations_lock_index_seq OWNER TO postgres;

--
-- Name: knex_migrations_lock_index_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.knex_migrations_lock_index_seq OWNED BY public.knex_migrations_lock.index;


--
-- Name: landing_modules; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.landing_modules (
    id integer NOT NULL,
    module_type character varying(255) NOT NULL,
    title character varying(255),
    config_json jsonb,
    sort_order integer DEFAULT 0,
    visible_from timestamp with time zone,
    visible_to timestamp with time zone,
    is_active boolean DEFAULT true,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.landing_modules OWNER TO postgres;

--
-- Name: landing_modules_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.landing_modules_id_seq OWNER TO postgres;

--
-- Name: landing_modules_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.landing_modules_id_seq OWNED BY public.landing_modules.id;


--
-- Name: ledger_accounts; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.ledger_accounts (
    id integer NOT NULL,
    code character varying(255) NOT NULL,
    name character varying(255) NOT NULL,
    owner_type public."LedgerOwnerType" DEFAULT 'NONE'::public."LedgerOwnerType" NOT NULL,
    owner_id integer,
    currency character varying(255) DEFAULT 'INR'::character varying NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.ledger_accounts OWNER TO postgres;

--
-- Name: ledger_accounts_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.ledger_accounts_id_seq OWNER TO postgres;

--
-- Name: ledger_accounts_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.ledger_accounts_id_seq OWNED BY public.ledger_accounts.id;


--
-- Name: ledger_entries; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.ledger_entries (
    id integer NOT NULL,
    reference_type public."LedgerReferenceType" NOT NULL,
    reference_id integer,
    debit_account_id integer NOT NULL,
    credit_account_id integer NOT NULL,
    amount integer NOT NULL,
    currency character varying(255) NOT NULL,
    memo text,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.ledger_entries OWNER TO postgres;

--
-- Name: ledger_entries_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.ledger_entries_id_seq OWNER TO postgres;

--
-- Name: ledger_entries_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.ledger_entries_id_seq OWNED BY public.ledger_entries.id;


--
-- Name: length_of_stay_discounts; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.length_of_stay_discounts (
    id integer NOT NULL,
    property_id integer,
    rate_plan_id integer,
    min_nights integer NOT NULL,
    discount_type text DEFAULT 'percent'::text NOT NULL,
    discount_value numeric(12,2) NOT NULL,
    stackable boolean DEFAULT false NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    CONSTRAINT length_of_stay_discounts_discount_type_check CHECK ((discount_type = ANY (ARRAY['percent'::text, 'fixed'::text])))
);


ALTER TABLE public.length_of_stay_discounts OWNER TO postgres;

--
-- Name: length_of_stay_discounts_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.length_of_stay_discounts_id_seq OWNER TO postgres;

--
-- Name: length_of_stay_discounts_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.length_of_stay_discounts_id_seq OWNED BY public.length_of_stay_discounts.id;


--
-- Name: location_nodes; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.location_nodes (
    id integer NOT NULL,
    type text NOT NULL,
    name character varying(255) NOT NULL,
    code character varying(255),
    parent_id integer,
    is_active boolean DEFAULT true NOT NULL,
    sort_order integer DEFAULT 0 NOT NULL,
    meta jsonb,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    CONSTRAINT location_nodes_type_check CHECK ((type = ANY (ARRAY['country'::text, 'state'::text, 'city'::text, 'area'::text])))
);


ALTER TABLE public.location_nodes OWNER TO postgres;

--
-- Name: location_nodes_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.location_nodes_id_seq OWNER TO postgres;

--
-- Name: location_nodes_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.location_nodes_id_seq OWNED BY public.location_nodes.id;


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

CREATE TABLE public.locations (
    id uuid DEFAULT gen_random_uuid() NOT NULL,
    name text NOT NULL,
    slug text NOT NULL,
    city text NOT NULL,
    state text,
    country text NOT NULL,
    timezone text,
    latitude numeric(9,6),
    longitude numeric(9,6),
    "isActive" boolean DEFAULT true NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "imageUrl" text
);


ALTER TABLE public.locations OWNER TO postgres;

--
-- Name: message_reads; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.message_reads (
    message_id integer NOT NULL,
    user_id integer NOT NULL,
    read_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.message_reads OWNER TO postgres;

--
-- Name: messages; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.messages (
    id integer NOT NULL,
    conversation_id integer,
    sender_type text NOT NULL,
    sender_id integer,
    body text NOT NULL,
    read_at timestamp with time zone,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    delivered_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    read_by_host_at timestamp with time zone,
    read_by_guest_at timestamp with time zone,
    attachment_url text,
    is_deleted boolean DEFAULT false NOT NULL,
    CONSTRAINT messages_sender_type_check CHECK ((sender_type = ANY (ARRAY['host'::text, 'guest'::text, 'admin'::text, 'system'::text])))
);


ALTER TABLE public.messages OWNER TO postgres;

--
-- Name: messages_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.messages_id_seq OWNER TO postgres;

--
-- Name: messages_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.messages_id_seq OWNED BY public.messages.id;


--
-- Name: notification_templates; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.notification_templates (
    id integer NOT NULL,
    channel character varying(255),
    name character varying(255),
    subject text,
    body text,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.notification_templates OWNER TO postgres;

--
-- Name: notification_templates_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.notification_templates_id_seq OWNER TO postgres;

--
-- Name: notification_templates_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.notification_templates_id_seq OWNED BY public.notification_templates.id;


--
-- Name: occupancy_pricing_rules; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.occupancy_pricing_rules (
    id integer NOT NULL,
    property_id integer,
    rate_plan_id integer,
    base_guests integer DEFAULT 2,
    per_extra_guest_fee numeric(12,2) DEFAULT '0'::numeric,
    max_guests integer,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.occupancy_pricing_rules OWNER TO postgres;

--
-- Name: occupancy_pricing_rules_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.occupancy_pricing_rules_id_seq OWNER TO postgres;

--
-- Name: occupancy_pricing_rules_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.occupancy_pricing_rules_id_seq OWNED BY public.occupancy_pricing_rules.id;


--
-- Name: payment_settings; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.payment_settings (
    id integer NOT NULL,
    currency character varying(255) DEFAULT 'INR'::character varying NOT NULL,
    platform_fee_bps integer DEFAULT 1000 NOT NULL,
    payout_trigger public.payment_payout_trigger_enum DEFAULT 'AFTER_CHECKOUT'::public.payment_payout_trigger_enum NOT NULL,
    payout_delay_hours integer DEFAULT 0 NOT NULL,
    min_payout_amount integer DEFAULT 0 NOT NULL,
    auto_refund_enabled boolean DEFAULT false NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    singleton_id character varying(255) DEFAULT 'singleton'::character varying NOT NULL
);


ALTER TABLE public.payment_settings OWNER TO postgres;

--
-- Name: payment_settings_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.payment_settings_id_seq OWNER TO postgres;

--
-- Name: payment_settings_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.payment_settings_id_seq OWNED BY public.payment_settings.id;


--
-- Name: payments; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.payments (
    id integer NOT NULL,
    booking_id integer,
    method character varying(255),
    txn_id character varying(255),
    amount numeric(12,2),
    status character varying(255),
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    provider character varying(255),
    reference character varying(255),
    currency character varying(255) DEFAULT 'INR'::character varying,
    raw_payload jsonb,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    gateway_provider character varying(255),
    gateway_payment_id character varying(255),
    processing_token character varying(255),
    processing_at timestamp with time zone,
    gateway_order_id character varying(255),
    CONSTRAINT payments_status_check_v5 CHECK (((status)::text = ANY ((ARRAY['created'::character varying, 'authorized'::character varying, 'captured'::character varying, 'failed'::character varying, 'partially_refunded'::character varying, 'refunded'::character varying, 'pending'::character varying, 'initiated'::character varying, 'paid'::character varying])::text[])))
);


ALTER TABLE public.payments OWNER TO postgres;

--
-- Name: payments_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.payments_id_seq OWNER TO postgres;

--
-- Name: payments_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.payments_id_seq OWNED BY public.payments.id;


--
-- Name: payouts; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.payouts (
    id integer NOT NULL,
    host_id integer,
    amount numeric(12,2) NOT NULL,
    currency character varying(255) DEFAULT 'INR'::character varying,
    period_start date,
    period_end date,
    status text DEFAULT 'PENDING'::text,
    admin_approved_by integer,
    admin_notes text,
    paid_at timestamp with time zone,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    booking_id integer,
    failure_reason text,
    CONSTRAINT payouts_status_check CHECK ((status = ANY (ARRAY['PENDING'::text, 'APPROVED'::text, 'DISAPPROVED'::text, 'PROCESSING'::text, 'PAID'::text, 'FAILED'::text])))
);


ALTER TABLE public.payouts OWNER TO postgres;

--
-- Name: payouts_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.payouts_id_seq OWNER TO postgres;

--
-- Name: payouts_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.payouts_id_seq OWNED BY public.payouts.id;


--
-- Name: platform_ledger_entries; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.platform_ledger_entries (
    id integer NOT NULL,
    account character varying(255) NOT NULL,
    amount numeric(12,2) DEFAULT '0'::numeric NOT NULL,
    currency character varying(255) DEFAULT 'INR'::character varying NOT NULL,
    reference_type character varying(255),
    reference_id integer,
    metadata jsonb DEFAULT '{}'::jsonb NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.platform_ledger_entries OWNER TO postgres;

--
-- Name: platform_ledger_entries_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.platform_ledger_entries_id_seq OWNER TO postgres;

--
-- Name: platform_ledger_entries_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.platform_ledger_entries_id_seq OWNED BY public.platform_ledger_entries.id;


--
-- Name: policy_templates; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.policy_templates (
    id integer NOT NULL,
    name character varying(255) NOT NULL,
    slug character varying(255) NOT NULL,
    policy_type text DEFAULT 'other'::text NOT NULL,
    summary text,
    content jsonb,
    is_default boolean DEFAULT false NOT NULL,
    is_active boolean DEFAULT true NOT NULL,
    sort_order integer DEFAULT 0 NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    CONSTRAINT policy_templates_policy_type_check CHECK ((policy_type = ANY (ARRAY['cancellation'::text, 'house_rules'::text, 'refund'::text, 'pet'::text, 'smoking'::text, 'id_requirement'::text, 'other'::text])))
);


ALTER TABLE public.policy_templates OWNER TO postgres;

--
-- Name: policy_templates_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.policy_templates_id_seq OWNER TO postgres;

--
-- Name: policy_templates_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.policy_templates_id_seq OWNED BY public.policy_templates.id;


--
-- Name: popular_route_groups; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.popular_route_groups (
    id uuid DEFAULT gen_random_uuid() NOT NULL,
    "fromLocationId" uuid NOT NULL,
    title text NOT NULL,
    "isActive" boolean DEFAULT true NOT NULL,
    "sortOrder" integer DEFAULT 0 NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.popular_route_groups OWNER TO postgres;

--
-- Name: popular_route_items; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.popular_route_items (
    id uuid DEFAULT gen_random_uuid() NOT NULL,
    "groupId" uuid NOT NULL,
    "toLocationId" uuid NOT NULL,
    "imageUrl" text,
    "sortOrder" integer DEFAULT 0 NOT NULL,
    "isActive" boolean DEFAULT true NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.popular_route_items OWNER TO postgres;

--
-- Name: pricing_labels; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.pricing_labels (
    id integer NOT NULL,
    name character varying(255) NOT NULL,
    type text NOT NULL,
    color character varying(255),
    description text,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    CONSTRAINT pricing_labels_type_check CHECK ((type = ANY (ARRAY['seasonal'::text, 'offer'::text, 'tax'::text, 'fee'::text, 'base_price'::text, 'calendar_override'::text])))
);


ALTER TABLE public.pricing_labels OWNER TO postgres;

--
-- Name: pricing_labels_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.pricing_labels_id_seq OWNER TO postgres;

--
-- Name: pricing_labels_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.pricing_labels_id_seq OWNED BY public.pricing_labels.id;


--
-- Name: pricing_rule_sets; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.pricing_rule_sets (
    id integer NOT NULL,
    name character varying(255) NOT NULL,
    scope text DEFAULT 'platform'::text NOT NULL,
    region character varying(255),
    property_type character varying(255),
    property_id integer,
    host_id integer,
    is_active boolean DEFAULT true NOT NULL,
    priority integer DEFAULT 100 NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    CONSTRAINT pricing_rule_sets_scope_check CHECK ((scope = ANY (ARRAY['platform'::text, 'region'::text, 'property_type'::text, 'property'::text, 'host'::text])))
);


ALTER TABLE public.pricing_rule_sets OWNER TO postgres;

--
-- Name: pricing_rule_sets_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.pricing_rule_sets_id_seq OWNER TO postgres;

--
-- Name: pricing_rule_sets_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.pricing_rule_sets_id_seq OWNED BY public.pricing_rule_sets.id;


--
-- Name: pricing_rules; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.pricing_rules (
    id uuid DEFAULT gen_random_uuid() NOT NULL,
    name text NOT NULL,
    "tripType" public."TripType" NOT NULL,
    "vehicleCategoryId" uuid NOT NULL,
    "seatConfigId" uuid,
    "routeId" uuid,
    "originLocationId" uuid,
    "destinationLocationId" uuid,
    "baseFare" numeric(12,2) NOT NULL,
    "perKmRate" numeric(12,2) NOT NULL,
    "perHourRate" numeric(12,2),
    "minFare" numeric(12,2),
    "minKmPerDay" integer,
    "driverAllowancePerDay" numeric(12,2),
    "nightChargePct" numeric(5,2),
    "gstPct" numeric(5,2),
    "tollIncluded" boolean DEFAULT false NOT NULL,
    currency text DEFAULT 'INR'::text NOT NULL,
    "effectiveFrom" timestamp(3) without time zone NOT NULL,
    "effectiveTo" timestamp(3) without time zone,
    priority integer DEFAULT 0 NOT NULL,
    "isActive" boolean DEFAULT true NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.pricing_rules OWNER TO postgres;

--
-- Name: promo_code_properties; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.promo_code_properties (
    id integer NOT NULL,
    promo_code_id integer,
    property_id integer,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.promo_code_properties OWNER TO postgres;

--
-- Name: promo_code_properties_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.promo_code_properties_id_seq OWNER TO postgres;

--
-- Name: promo_code_properties_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.promo_code_properties_id_seq OWNED BY public.promo_code_properties.id;


--
-- Name: promo_code_redemptions; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.promo_code_redemptions (
    id integer NOT NULL,
    promo_code_id integer,
    booking_id integer,
    guest_id integer,
    redeemed_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    discount_amount numeric(12,2) DEFAULT '0'::numeric NOT NULL
);


ALTER TABLE public.promo_code_redemptions OWNER TO postgres;

--
-- Name: promo_code_redemptions_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.promo_code_redemptions_id_seq OWNER TO postgres;

--
-- Name: promo_code_redemptions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.promo_code_redemptions_id_seq OWNED BY public.promo_code_redemptions.id;


--
-- Name: promo_codes; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.promo_codes (
    id integer NOT NULL,
    code character varying(255) NOT NULL,
    scope text DEFAULT 'platform'::text NOT NULL,
    host_id integer,
    property_id integer,
    name character varying(255) NOT NULL,
    description text,
    discount_type text NOT NULL,
    discount_value numeric(10,2) NOT NULL,
    min_nights integer DEFAULT 1 NOT NULL,
    start_date date NOT NULL,
    end_date date NOT NULL,
    max_uses_total integer,
    max_uses_per_guest integer,
    first_time_only boolean DEFAULT false NOT NULL,
    is_active boolean DEFAULT true NOT NULL,
    created_by_admin_id integer,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    image_url text,
    coupon_type text DEFAULT 'CODE'::text NOT NULL,
    card_image_url text,
    min_booking_amount numeric(12,2),
    max_discount_amount numeric(12,2),
    applies_to text DEFAULT 'ALL'::text NOT NULL,
    created_by text DEFAULT 'ADMIN'::text NOT NULL,
    usage_limit_total integer,
    usage_limit_per_user integer,
    used_count integer DEFAULT 0 NOT NULL,
    CONSTRAINT promo_codes_applies_to_check CHECK ((applies_to = ANY (ARRAY['ALL'::text, 'PROPERTY'::text, 'TOUR'::text]))),
    CONSTRAINT promo_codes_coupon_type_check CHECK ((coupon_type = ANY (ARRAY['CODE'::text, 'CARD'::text]))),
    CONSTRAINT promo_codes_created_by_check CHECK ((created_by = ANY (ARRAY['ADMIN'::text, 'HOST'::text]))),
    CONSTRAINT promo_codes_discount_type_check CHECK ((discount_type = ANY (ARRAY['percent'::text, 'fixed'::text]))),
    CONSTRAINT promo_codes_scope_check CHECK ((scope = ANY (ARRAY['platform'::text, 'host'::text, 'property'::text])))
);


ALTER TABLE public.promo_codes OWNER TO postgres;

--
-- Name: promo_codes_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.promo_codes_id_seq OWNER TO postgres;

--
-- Name: promo_codes_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.promo_codes_id_seq OWNED BY public.promo_codes.id;


--
-- Name: promo_videos; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.promo_videos (
    id uuid DEFAULT gen_random_uuid() NOT NULL,
    title text NOT NULL,
    "videoType" public."PromoVideoType" NOT NULL,
    "videoUrl" text NOT NULL,
    "thumbnailUrl" text NOT NULL,
    caption text,
    "sortOrder" integer DEFAULT 0 NOT NULL,
    "isActive" boolean DEFAULT true NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.promo_videos OWNER TO postgres;

--
-- Name: promotions; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.promotions (
    id integer NOT NULL,
    host_id integer,
    property_id integer,
    discount_type text DEFAULT 'percent'::text CONSTRAINT promotions_type_not_null NOT NULL,
    discount_value numeric(10,2) CONSTRAINT promotions_value_not_null NOT NULL,
    start_date date NOT NULL,
    end_date date NOT NULL,
    min_nights integer,
    max_uses_total integer,
    is_active boolean DEFAULT true CONSTRAINT promotions_active_not_null NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    name character varying(255),
    description text,
    max_uses_per_guest integer,
    approval_status text DEFAULT 'active'::text NOT NULL,
    stack_rule text DEFAULT 'none'::text NOT NULL,
    CONSTRAINT promotions_approval_status_check CHECK ((approval_status = ANY (ARRAY['active'::text, 'paused'::text, 'expired'::text, 'admin_disabled'::text]))),
    CONSTRAINT promotions_stack_rule_check CHECK ((stack_rule = ANY (ARRAY['none'::text, 'allow_with_coupons'::text, 'allow_with_cards'::text, 'allow_all'::text]))),
    CONSTRAINT promotions_type_check CHECK ((discount_type = ANY (ARRAY['percent'::text, 'fixed'::text])))
);


ALTER TABLE public.promotions OWNER TO postgres;

--
-- Name: promotions_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.promotions_id_seq OWNER TO postgres;

--
-- Name: promotions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.promotions_id_seq OWNED BY public.promotions.id;


--
-- Name: properties; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.properties (
    id integer NOT NULL,
    title character varying(255) NOT NULL,
    slug character varying(255) NOT NULL,
    property_code character varying(255) NOT NULL,
    description text,
    short_description text,
    property_type character varying(255),
    accommodation_type character varying(255),
    country character varying(255),
    state character varying(255),
    city character varying(255),
    area character varying(255),
    address_line character varying(255),
    latitude numeric(10,7),
    longitude numeric(10,7),
    bedrooms integer,
    bathrooms integer,
    max_guests integer,
    min_nights integer,
    max_nights integer,
    base_price_per_night numeric(12,2),
    weekend_price_per_night numeric(12,2),
    extra_guest_charge numeric(12,2),
    cleaning_fee numeric(12,2),
    service_fee numeric(12,2),
    currency character varying(255) DEFAULT 'INR'::character varying,
    check_in_time character varying(255),
    check_out_time character varying(255),
    cancellation_policy text,
    house_rules text,
    is_featured boolean DEFAULT false,
    status text DEFAULT 'draft'::text,
    publish_date timestamp with time zone,
    seo_title character varying(255),
    seo_description text,
    seo_keywords text,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    name character varying(255),
    address text,
    tax_percent numeric(5,2) DEFAULT '0'::numeric,
    instant_booking boolean DEFAULT false,
    verified boolean DEFAULT false,
    is_trending boolean DEFAULT false NOT NULL,
    host_id integer,
    full_address text,
    locality character varying(255),
    landmark character varying(255),
    beds integer DEFAULT 0,
    highlights jsonb,
    base_weekday_price numeric(12,2) DEFAULT '0'::numeric NOT NULL,
    base_weekend_price numeric(12,2) DEFAULT '0'::numeric NOT NULL,
    security_deposit numeric(12,2) DEFAULT '0'::numeric NOT NULL,
    taxes_percent numeric(6,3) DEFAULT '0'::numeric NOT NULL,
    avg_rating numeric(3,2) DEFAULT '0'::numeric NOT NULL,
    review_count integer DEFAULT 0 NOT NULL,
    meta_title character varying(255),
    meta_description text,
    is_luxury boolean DEFAULT false NOT NULL,
    availability_enabled boolean DEFAULT true NOT NULL,
    advance_booking_min_days integer DEFAULT 0,
    advance_booking_max_days integer,
    allow_same_day_booking boolean DEFAULT true,
    check_in_days integer[],
    check_out_days integer[],
    star_rating numeric(2,1),
    pet_policy text,
    smoking_policy text,
    id_requirement text,
    refund_rules text,
    addons jsonb,
    featured_listing boolean DEFAULT false NOT NULL,
    featured_image character varying(255),
    video_url character varying(255),
    weekly_discount numeric(6,3) DEFAULT '0'::numeric,
    monthly_discount numeric(6,3) DEFAULT '0'::numeric,
    marketplace_status text DEFAULT 'ACTIVE'::text,
    booking_mode character varying(255) DEFAULT 'full_property'::character varying NOT NULL,
    check_in_notes text,
    check_out_notes text,
    security_deposit_policy text,
    meal_details text,
    faq_items jsonb,
    house_rules_sections jsonb,
    CONSTRAINT properties_latitude_range CHECK (((latitude IS NULL) OR ((latitude >= ('-90'::integer)::numeric) AND (latitude <= (90)::numeric)))),
    CONSTRAINT properties_longitude_range CHECK (((longitude IS NULL) OR ((longitude >= ('-180'::integer)::numeric) AND (longitude <= (180)::numeric)))),
    CONSTRAINT properties_status_check CHECK ((status = ANY (ARRAY['draft'::text, 'pending'::text, 'published'::text, 'suspended'::text, 'unpublished'::text, 'active'::text])))
);


ALTER TABLE public.properties OWNER TO postgres;

--
-- Name: COLUMN properties.star_rating; Type: COMMENT; Schema: public; Owner: postgres
--

COMMENT ON COLUMN public.properties.star_rating IS '0-5 rating';


--
-- Name: properties_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.properties_id_seq OWNER TO postgres;

--
-- Name: properties_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.properties_id_seq OWNED BY public.properties.id;


--
-- Name: property_amenities; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.property_amenities (
    id integer NOT NULL,
    property_id integer,
    amenity_id integer,
    wifi boolean DEFAULT false NOT NULL,
    ac boolean DEFAULT false NOT NULL,
    heater boolean DEFAULT false NOT NULL,
    tv boolean DEFAULT false NOT NULL,
    kitchen boolean DEFAULT false NOT NULL,
    microwave boolean DEFAULT false NOT NULL,
    refrigerator boolean DEFAULT false NOT NULL,
    washing_machine boolean DEFAULT false NOT NULL,
    dryer boolean DEFAULT false NOT NULL,
    free_parking boolean DEFAULT false NOT NULL,
    paid_parking boolean DEFAULT false NOT NULL,
    pool boolean DEFAULT false NOT NULL,
    private_pool boolean DEFAULT false NOT NULL,
    jacuzzi boolean DEFAULT false NOT NULL,
    gym boolean DEFAULT false NOT NULL,
    bbq_grill boolean DEFAULT false NOT NULL,
    bonfire boolean DEFAULT false NOT NULL,
    garden boolean DEFAULT false NOT NULL,
    balcony boolean DEFAULT false NOT NULL,
    pet_friendly boolean DEFAULT false NOT NULL,
    smoking_allowed boolean DEFAULT false NOT NULL,
    wheelchair_access boolean DEFAULT false NOT NULL,
    power_backup boolean DEFAULT false NOT NULL,
    security_cameras boolean DEFAULT false NOT NULL,
    first_aid_kit boolean DEFAULT false NOT NULL,
    fire_extinguisher boolean DEFAULT false NOT NULL,
    extra_notes jsonb,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.property_amenities OWNER TO postgres;

--
-- Name: property_amenities_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.property_amenities_id_seq OWNER TO postgres;

--
-- Name: property_amenities_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.property_amenities_id_seq OWNED BY public.property_amenities.id;


--
-- Name: property_availability; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.property_availability (
    id integer NOT NULL,
    property_id integer,
    date date NOT NULL,
    is_available boolean DEFAULT true,
    special_price numeric(12,2),
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    source text DEFAULT 'manual'::text NOT NULL,
    source_mapping_id uuid,
    status character varying(255) DEFAULT 'AVAILABLE'::character varying NOT NULL,
    price numeric(12,2),
    CONSTRAINT property_availability_source_check CHECK ((source = ANY (ARRAY['manual'::text, 'channel'::text, 'booking'::text])))
);


ALTER TABLE public.property_availability OWNER TO postgres;

--
-- Name: property_availability_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.property_availability_id_seq OWNER TO postgres;

--
-- Name: property_availability_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.property_availability_id_seq OWNED BY public.property_availability.id;


--
-- Name: property_availability_rules; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.property_availability_rules (
    id integer NOT NULL,
    property_id integer,
    timezone character varying(255) DEFAULT 'Asia/Kolkata'::character varying NOT NULL,
    min_nights integer,
    max_nights integer,
    cutoff_hours integer DEFAULT 0,
    booking_window_days integer,
    checkin_time character varying(255),
    checkout_time character varying(255),
    instant_booking boolean DEFAULT false NOT NULL,
    cancellation_policy character varying(255),
    weekend_days integer[],
    weekend_pricing_type text DEFAULT 'percent'::text,
    weekend_pricing_value numeric(8,2),
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    allow_same_day_booking boolean DEFAULT true NOT NULL,
    CONSTRAINT property_availability_rules_weekend_pricing_type_check CHECK ((weekend_pricing_type = ANY (ARRAY['percent'::text, 'fixed'::text])))
);


ALTER TABLE public.property_availability_rules OWNER TO postgres;

--
-- Name: property_availability_rules_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.property_availability_rules_id_seq OWNER TO postgres;

--
-- Name: property_availability_rules_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.property_availability_rules_id_seq OWNED BY public.property_availability_rules.id;


--
-- Name: property_base_pricing; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.property_base_pricing (
    id integer NOT NULL,
    property_id integer,
    currency character varying(255) DEFAULT 'INR'::character varying NOT NULL,
    weekday_price numeric(12,2) DEFAULT '0'::numeric NOT NULL,
    weekend_price numeric(12,2) DEFAULT '0'::numeric NOT NULL,
    weekly_discount_pct numeric(6,3) DEFAULT '0'::numeric NOT NULL,
    monthly_discount_pct numeric(6,3) DEFAULT '0'::numeric NOT NULL,
    cleaning_fee numeric(12,2) DEFAULT '0'::numeric NOT NULL,
    extra_guest_fee numeric(12,2) DEFAULT '0'::numeric NOT NULL,
    default_min_nights integer DEFAULT 1 NOT NULL,
    updated_by integer,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.property_base_pricing OWNER TO postgres;

--
-- Name: property_base_pricing_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.property_base_pricing_id_seq OWNER TO postgres;

--
-- Name: property_base_pricing_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.property_base_pricing_id_seq OWNED BY public.property_base_pricing.id;


--
-- Name: property_blackout_dates; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.property_blackout_dates (
    id integer NOT NULL,
    property_id integer,
    start_date date NOT NULL,
    end_date date NOT NULL,
    reason character varying(255),
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.property_blackout_dates OWNER TO postgres;

--
-- Name: property_blackout_dates_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.property_blackout_dates_id_seq OWNER TO postgres;

--
-- Name: property_blackout_dates_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.property_blackout_dates_id_seq OWNED BY public.property_blackout_dates.id;


--
-- Name: property_booking_locks; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.property_booking_locks (
    id integer NOT NULL,
    property_id integer,
    check_in date NOT NULL,
    check_out date NOT NULL,
    status text DEFAULT 'active'::text,
    expires_at timestamp with time zone NOT NULL,
    session_id character varying(255),
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    CONSTRAINT property_booking_locks_status_check CHECK ((status = ANY (ARRAY['active'::text, 'expired'::text, 'confirmed'::text])))
);


ALTER TABLE public.property_booking_locks OWNER TO postgres;

--
-- Name: property_booking_locks_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.property_booking_locks_id_seq OWNER TO postgres;

--
-- Name: property_booking_locks_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.property_booking_locks_id_seq OWNED BY public.property_booking_locks.id;


--
-- Name: property_calendar; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.property_calendar (
    property_id integer NOT NULL,
    date date NOT NULL,
    is_available boolean DEFAULT true NOT NULL,
    booking_id integer,
    price_override numeric(12,2),
    min_nights integer,
    min_nights_override integer
);


ALTER TABLE public.property_calendar OWNER TO postgres;

--
-- Name: property_calendar_days; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.property_calendar_days (
    id integer NOT NULL,
    property_id integer,
    date date NOT NULL,
    status text DEFAULT 'available'::text NOT NULL,
    price_override numeric(12,2),
    min_nights_override integer,
    note text,
    created_by integer,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    max_nights_override integer,
    checkin_allowed boolean DEFAULT true,
    checkout_allowed boolean DEFAULT true,
    CONSTRAINT property_calendar_days_status_check CHECK ((status = ANY (ARRAY['available'::text, 'blocked'::text])))
);


ALTER TABLE public.property_calendar_days OWNER TO postgres;

--
-- Name: property_calendar_days_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.property_calendar_days_id_seq OWNER TO postgres;

--
-- Name: property_calendar_days_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.property_calendar_days_id_seq OWNED BY public.property_calendar_days.id;


--
-- Name: property_calendar_overrides; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.property_calendar_overrides (
    id integer NOT NULL,
    property_id integer,
    date date NOT NULL,
    status text DEFAULT 'open'::text NOT NULL,
    price_override numeric(12,2),
    min_nights_override integer,
    source text DEFAULT 'host'::text NOT NULL,
    created_by integer,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    CONSTRAINT property_calendar_overrides_source_check CHECK ((source = ANY (ARRAY['host'::text, 'admin'::text, 'connector'::text]))),
    CONSTRAINT property_calendar_overrides_status_check CHECK ((status = ANY (ARRAY['open'::text, 'blocked'::text])))
);


ALTER TABLE public.property_calendar_overrides OWNER TO postgres;

--
-- Name: property_calendar_overrides_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.property_calendar_overrides_id_seq OWNER TO postgres;

--
-- Name: property_calendar_overrides_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.property_calendar_overrides_id_seq OWNED BY public.property_calendar_overrides.id;


--
-- Name: property_cancellation_policy; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.property_cancellation_policy (
    property_id integer NOT NULL,
    policy_id integer,
    custom_rules_json jsonb,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.property_cancellation_policy OWNER TO postgres;

--
-- Name: property_categories; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.property_categories (
    id integer NOT NULL,
    name character varying(255) NOT NULL,
    slug character varying(255) NOT NULL,
    description text,
    is_active boolean DEFAULT true NOT NULL,
    sort_order integer DEFAULT 0 NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.property_categories OWNER TO postgres;

--
-- Name: property_categories_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.property_categories_id_seq OWNER TO postgres;

--
-- Name: property_categories_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.property_categories_id_seq OWNED BY public.property_categories.id;


--
-- Name: property_channel_mappings; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.property_channel_mappings (
    id uuid DEFAULT gen_random_uuid() NOT NULL,
    property_id integer,
    provider_connection_id uuid,
    external_property_id character varying(255) NOT NULL,
    external_listing_url text,
    mapping_status text DEFAULT 'mapped'::text NOT NULL,
    sync_mode text DEFAULT 'two_way'::text NOT NULL,
    sync_calendar boolean DEFAULT true NOT NULL,
    sync_price boolean DEFAULT true NOT NULL,
    sync_content boolean DEFAULT false NOT NULL,
    sync_frequency_minutes integer DEFAULT 15 NOT NULL,
    timezone character varying(255) DEFAULT 'Asia/Kolkata'::character varying NOT NULL,
    source_of_truth text DEFAULT 'internal_wins'::text NOT NULL,
    last_sync_at timestamp with time zone,
    last_sync_result jsonb,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    CONSTRAINT property_channel_mappings_mapping_status_check CHECK ((mapping_status = ANY (ARRAY['mapped'::text, 'unmapped'::text, 'sync_error'::text]))),
    CONSTRAINT property_channel_mappings_source_of_truth_check CHECK ((source_of_truth = ANY (ARRAY['internal_wins'::text, 'external_wins'::text, 'manual_review'::text]))),
    CONSTRAINT property_channel_mappings_sync_mode_check CHECK ((sync_mode = ANY (ARRAY['push'::text, 'pull'::text, 'two_way'::text])))
);


ALTER TABLE public.property_channel_mappings OWNER TO postgres;

--
-- Name: property_images; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.property_images (
    id integer NOT NULL,
    property_id integer,
    image_url character varying(255) NOT NULL,
    is_cover boolean DEFAULT false,
    sort_order integer DEFAULT 0,
    alt_text character varying(255),
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    is_featured boolean DEFAULT false NOT NULL,
    width integer,
    height integer,
    file_size bigint,
    file_hash character varying(255)
);


ALTER TABLE public.property_images OWNER TO postgres;

--
-- Name: property_images_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.property_images_id_seq OWNER TO postgres;

--
-- Name: property_images_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.property_images_id_seq OWNED BY public.property_images.id;


--
-- Name: property_policy_templates; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.property_policy_templates (
    id integer NOT NULL,
    property_id integer,
    policy_template_id integer,
    policy_type text NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    CONSTRAINT property_policy_templates_policy_type_check CHECK ((policy_type = ANY (ARRAY['cancellation'::text, 'house_rules'::text, 'refund'::text, 'pet'::text, 'smoking'::text, 'id_requirement'::text, 'other'::text])))
);


ALTER TABLE public.property_policy_templates OWNER TO postgres;

--
-- Name: property_policy_templates_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.property_policy_templates_id_seq OWNER TO postgres;

--
-- Name: property_policy_templates_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.property_policy_templates_id_seq OWNED BY public.property_policy_templates.id;


--
-- Name: property_pricing_rules; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.property_pricing_rules (
    id integer NOT NULL,
    property_id integer,
    rule_type text NOT NULL,
    label character varying(255),
    start_date date,
    end_date date,
    days_of_week integer[],
    price_per_night numeric(12,2) NOT NULL,
    min_nights integer,
    max_nights integer,
    advance_booking_min_days integer,
    advance_booking_max_days integer,
    allow_same_day boolean DEFAULT true,
    priority integer DEFAULT 1 NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    CONSTRAINT property_pricing_rules_rule_type_check CHECK ((rule_type = ANY (ARRAY['seasonal'::text, 'special'::text, 'weekend'::text])))
);


ALTER TABLE public.property_pricing_rules OWNER TO postgres;

--
-- Name: property_pricing_rules_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.property_pricing_rules_id_seq OWNER TO postgres;

--
-- Name: property_pricing_rules_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.property_pricing_rules_id_seq OWNED BY public.property_pricing_rules.id;


--
-- Name: property_rating_stats; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.property_rating_stats (
    property_id integer NOT NULL,
    avg_rating numeric(4,2) DEFAULT '0'::numeric NOT NULL,
    review_count integer DEFAULT 0 NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.property_rating_stats OWNER TO postgres;

--
-- Name: property_room_types; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.property_room_types (
    id integer NOT NULL,
    property_id integer,
    name character varying(255) NOT NULL,
    description text,
    capacity integer DEFAULT 2,
    bed_type character varying(255),
    inventory integer DEFAULT 1,
    base_price_per_night numeric(12,2) DEFAULT '0'::numeric NOT NULL,
    weekend_price_per_night numeric(12,2) DEFAULT '0'::numeric,
    extra_guest_charge numeric(12,2) DEFAULT '0'::numeric,
    currency character varying(8) DEFAULT 'INR'::character varying,
    is_active boolean DEFAULT true,
    sort_order integer DEFAULT 1,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    image_url text
);


ALTER TABLE public.property_room_types OWNER TO postgres;

--
-- Name: property_room_types_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.property_room_types_id_seq OWNER TO postgres;

--
-- Name: property_room_types_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.property_room_types_id_seq OWNED BY public.property_room_types.id;


--
-- Name: property_services; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.property_services (
    id integer NOT NULL,
    property_id integer,
    service_id integer,
    default_selected boolean DEFAULT false NOT NULL,
    meta_json jsonb,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.property_services OWNER TO postgres;

--
-- Name: property_services_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.property_services_id_seq OWNER TO postgres;

--
-- Name: property_services_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.property_services_id_seq OWNED BY public.property_services.id;


--
-- Name: property_spaces; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.property_spaces (
    id integer NOT NULL,
    property_id integer,
    title character varying(255) NOT NULL,
    type character varying(255),
    description text,
    capacity integer,
    beds_json jsonb,
    images_json jsonb,
    sort_order integer DEFAULT 0,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.property_spaces OWNER TO postgres;

--
-- Name: property_spaces_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.property_spaces_id_seq OWNER TO postgres;

--
-- Name: property_spaces_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.property_spaces_id_seq OWNED BY public.property_spaces.id;


--
-- Name: property_types; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.property_types (
    id integer NOT NULL,
    category_id integer,
    name character varying(255) NOT NULL,
    slug character varying(255) NOT NULL,
    description text,
    is_active boolean DEFAULT true NOT NULL,
    sort_order integer DEFAULT 0 NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.property_types OWNER TO postgres;

--
-- Name: property_types_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.property_types_id_seq OWNER TO postgres;

--
-- Name: property_types_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.property_types_id_seq OWNED BY public.property_types.id;


--
-- Name: provider_connections; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.provider_connections (
    id uuid DEFAULT gen_random_uuid() NOT NULL,
    provider_id uuid,
    label character varying(255) NOT NULL,
    auth_type text DEFAULT 'none'::text NOT NULL,
    credentials_encrypted jsonb DEFAULT '{}'::jsonb NOT NULL,
    webhook_secret_encrypted text,
    rate_limit_per_min integer DEFAULT 60 NOT NULL,
    status text DEFAULT 'disconnected'::text NOT NULL,
    last_tested_at timestamp with time zone,
    last_error text,
    created_by integer,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    CONSTRAINT provider_connections_auth_type_check CHECK ((auth_type = ANY (ARRAY['api_key'::text, 'oauth2'::text, 'basic'::text, 'none'::text]))),
    CONSTRAINT provider_connections_status_check CHECK ((status = ANY (ARRAY['connected'::text, 'disconnected'::text, 'error'::text])))
);


ALTER TABLE public.provider_connections OWNER TO postgres;

--
-- Name: providers; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.providers (
    id uuid DEFAULT gen_random_uuid() NOT NULL,
    key character varying(255) NOT NULL,
    name character varying(255) NOT NULL,
    type text DEFAULT 'api'::text NOT NULL,
    status text DEFAULT 'active'::text NOT NULL,
    docs_url text,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    CONSTRAINT providers_status_check CHECK ((status = ANY (ARRAY['active'::text, 'inactive'::text]))),
    CONSTRAINT providers_type_check CHECK ((type = ANY (ARRAY['api'::text, 'ical'::text, 'webhook'::text])))
);


ALTER TABLE public.providers OWNER TO postgres;

--
-- Name: rate_plans; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.rate_plans (
    id integer NOT NULL,
    property_id integer,
    name character varying(255) NOT NULL,
    currency character varying(255) DEFAULT 'INR'::character varying,
    base_nightly_rate numeric(12,2) DEFAULT '0'::numeric NOT NULL,
    weekend_rate numeric(12,2),
    weekend_days jsonb,
    min_nights_default integer DEFAULT 1,
    max_nights_default integer,
    extra_guest_fee_per_night numeric(12,2) DEFAULT '0'::numeric,
    cleaning_fee numeric(12,2) DEFAULT '0'::numeric,
    service_fee numeric(12,2) DEFAULT '0'::numeric,
    tax_percent numeric(6,3) DEFAULT '0'::numeric,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.rate_plans OWNER TO postgres;

--
-- Name: rate_plans_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.rate_plans_id_seq OWNER TO postgres;

--
-- Name: rate_plans_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.rate_plans_id_seq OWNED BY public.rate_plans.id;


--
-- Name: recently_viewed; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.recently_viewed (
    id integer NOT NULL,
    user_id integer,
    session_id character varying(255),
    property_id integer,
    viewed_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.recently_viewed OWNER TO postgres;

--
-- Name: recently_viewed_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.recently_viewed_id_seq OWNER TO postgres;

--
-- Name: recently_viewed_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.recently_viewed_id_seq OWNED BY public.recently_viewed.id;


--
-- Name: refunds; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.refunds (
    id integer NOT NULL,
    booking_id integer,
    refund_amount numeric(12,2),
    refund_status character varying(255) DEFAULT 'requested'::character varying,
    processed_at timestamp with time zone,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    cancellation_request_id integer,
    payment_id integer,
    provider character varying(255),
    reference character varying(255),
    amount numeric(12,2),
    currency character varying(255) DEFAULT 'INR'::character varying,
    status text DEFAULT 'pending'::text NOT NULL,
    failure_reason text,
    raw_payload jsonb DEFAULT '{}'::jsonb,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    refund_ref character varying(255),
    guest_id integer,
    host_id integer,
    type character varying(255),
    reason text,
    created_by integer,
    approved_by integer,
    scheduled_for timestamp with time zone,
    amount_paise integer,
    rejection_reason text,
    processing_token character varying(255),
    gateway_refund_id character varying(255),
    processing_at timestamp with time zone,
    CONSTRAINT refunds_status_check_v4 CHECK ((status = ANY (ARRAY['requested'::text, 'approved'::text, 'processing'::text, 'refunded'::text, 'failed'::text, 'rejected'::text]))),
    CONSTRAINT refunds_type_check CHECK (((type IS NULL) OR ((type)::text = ANY ((ARRAY['GUEST_REFUND'::character varying, 'HOST_CLAWBACK'::character varying, 'PLATFORM_ADJUSTMENT'::character varying])::text[]))))
);


ALTER TABLE public.refunds OWNER TO postgres;

--
-- Name: refunds_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.refunds_id_seq OWNER TO postgres;

--
-- Name: refunds_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.refunds_id_seq OWNED BY public.refunds.id;


--
-- Name: review_events; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.review_events (
    id integer NOT NULL,
    review_id uuid NOT NULL,
    actor_type public.review_actor_enum NOT NULL,
    actor_id integer,
    event_type character varying(255) NOT NULL,
    metadata jsonb DEFAULT '{}'::jsonb,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.review_events OWNER TO postgres;

--
-- Name: review_events_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.review_events_id_seq OWNER TO postgres;

--
-- Name: review_events_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.review_events_id_seq OWNED BY public.review_events.id;


--
-- Name: review_media; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.review_media (
    id integer NOT NULL,
    review_id uuid NOT NULL,
    media_url text NOT NULL,
    type text DEFAULT 'image'::text,
    CONSTRAINT review_media_type_check CHECK ((type = ANY (ARRAY['image'::text, 'video'::text])))
);


ALTER TABLE public.review_media OWNER TO postgres;

--
-- Name: review_media_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.review_media_id_seq OWNER TO postgres;

--
-- Name: review_media_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.review_media_id_seq OWNED BY public.review_media.id;


--
-- Name: reviews; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.reviews (
    review_id uuid DEFAULT gen_random_uuid() NOT NULL,
    user_id uuid,
    rating integer NOT NULL,
    comment text,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    property_id integer,
    booking_id integer,
    host_id integer,
    guest_id integer,
    rating_overall integer DEFAULT 5 NOT NULL,
    rating_cleanliness integer,
    rating_accuracy integer,
    rating_checkin integer,
    rating_communication integer,
    rating_location integer,
    rating_value integer,
    title character varying(255),
    private_note_to_host text,
    status public.review_status_enum DEFAULT 'published'::public.review_status_enum NOT NULL,
    host_response text,
    host_responded_at timestamp with time zone,
    admin_note text,
    CONSTRAINT reviews_rating_check CHECK (((rating >= 1) AND (rating <= 5))),
    CONSTRAINT reviews_rating_overall_check CHECK (((rating_overall >= 1) AND (rating_overall <= 5)))
);


ALTER TABLE public.reviews OWNER TO postgres;

--
-- Name: routes; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.routes (
    id uuid DEFAULT gen_random_uuid() NOT NULL,
    "fromLocationId" uuid NOT NULL,
    "toLocationId" uuid NOT NULL,
    "distanceKm" numeric(10,2) NOT NULL,
    "durationMins" integer NOT NULL,
    "isActive" boolean DEFAULT true NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.routes OWNER TO postgres;

--
-- Name: seasonal_pricing; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.seasonal_pricing (
    id integer NOT NULL,
    property_id integer,
    start_date date,
    end_date date,
    price numeric(12,2),
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.seasonal_pricing OWNER TO postgres;

--
-- Name: seasonal_pricing_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.seasonal_pricing_id_seq OWNER TO postgres;

--
-- Name: seasonal_pricing_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.seasonal_pricing_id_seq OWNED BY public.seasonal_pricing.id;


--
-- Name: seasonal_pricing_rules; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.seasonal_pricing_rules (
    id integer NOT NULL,
    rule_set_id integer,
    label_id integer,
    scope text DEFAULT 'property'::text NOT NULL,
    property_id integer,
    host_id integer,
    property_type character varying(255),
    start_date date NOT NULL,
    end_date date NOT NULL,
    days_of_week integer[],
    price_mode text NOT NULL,
    value numeric(12,2) NOT NULL,
    min_nights integer DEFAULT 1 NOT NULL,
    is_active boolean DEFAULT true NOT NULL,
    priority integer DEFAULT 100 NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    name character varying(255),
    price_type character varying(255) DEFAULT 'set'::character varying NOT NULL,
    price_value numeric(12,2) DEFAULT NULL::numeric,
    CONSTRAINT seasonal_pricing_rules_price_mode_check CHECK ((price_mode = ANY (ARRAY['set'::text, 'add'::text, 'percent'::text]))),
    CONSTRAINT seasonal_pricing_rules_scope_check CHECK ((scope = ANY (ARRAY['platform'::text, 'property_type'::text, 'property'::text, 'host'::text])))
);


ALTER TABLE public.seasonal_pricing_rules OWNER TO postgres;

--
-- Name: seasonal_pricing_rules_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.seasonal_pricing_rules_id_seq OWNER TO postgres;

--
-- Name: seasonal_pricing_rules_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.seasonal_pricing_rules_id_seq OWNED BY public.seasonal_pricing_rules.id;


--
-- Name: seasonal_rates; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.seasonal_rates (
    id integer NOT NULL,
    property_id integer,
    rate_plan_id integer,
    season_name character varying(255),
    start_date date NOT NULL,
    end_date date NOT NULL,
    nightly_rate_override numeric(12,2) NOT NULL,
    min_nights_override integer,
    priority integer DEFAULT 1 NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.seasonal_rates OWNER TO postgres;

--
-- Name: seasonal_rates_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.seasonal_rates_id_seq OWNER TO postgres;

--
-- Name: seasonal_rates_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.seasonal_rates_id_seq OWNED BY public.seasonal_rates.id;


--
-- Name: seat_configs; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.seat_configs (
    id uuid DEFAULT gen_random_uuid() NOT NULL,
    name text NOT NULL,
    "seatCapacity" integer NOT NULL,
    "luggageCapacity" integer,
    "layoutJson" jsonb,
    "isActive" boolean DEFAULT true NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.seat_configs OWNER TO postgres;

--
-- Name: services; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.services (
    id integer NOT NULL,
    name character varying(255) NOT NULL,
    description text,
    charge_type text DEFAULT 'free'::text NOT NULL,
    pricing_model text DEFAULT 'flat'::text,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    CONSTRAINT services_charge_type_check CHECK ((charge_type = ANY (ARRAY['free'::text, 'paid'::text]))),
    CONSTRAINT services_pricing_model_check CHECK ((pricing_model = ANY (ARRAY['flat'::text, 'per_day'::text, 'per_person'::text])))
);


ALTER TABLE public.services OWNER TO postgres;

--
-- Name: services_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.services_id_seq OWNER TO postgres;

--
-- Name: services_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.services_id_seq OWNED BY public.services.id;


--
-- Name: special_offer_rules; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.special_offer_rules (
    id integer NOT NULL,
    rule_set_id integer,
    label_id integer,
    scope text DEFAULT 'property'::text NOT NULL,
    property_id integer,
    host_id integer,
    property_type character varying(255),
    start_date date,
    end_date date,
    discount_type text NOT NULL,
    discount_value numeric(12,2) NOT NULL,
    min_nights integer DEFAULT 1 NOT NULL,
    max_uses_total integer,
    max_uses_per_guest integer,
    stack_rule text DEFAULT 'none'::text NOT NULL,
    is_active boolean DEFAULT true NOT NULL,
    priority integer DEFAULT 100 NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    title character varying(255),
    description text,
    offer_type text DEFAULT 'GENERAL'::text NOT NULL,
    booking_window_days integer,
    stay_start_date date,
    stay_end_date date,
    CONSTRAINT special_offer_rules_discount_type_check CHECK ((discount_type = ANY (ARRAY['percent'::text, 'fixed'::text]))),
    CONSTRAINT special_offer_rules_offer_type_check CHECK ((offer_type = ANY (ARRAY['EARLY_BIRD'::text, 'LAST_MINUTE'::text, 'WEEKLY'::text, 'MONTHLY'::text, 'LONG_STAY'::text, 'FESTIVE'::text, 'GENERAL'::text]))),
    CONSTRAINT special_offer_rules_scope_check CHECK ((scope = ANY (ARRAY['platform'::text, 'property_type'::text, 'property'::text, 'host'::text]))),
    CONSTRAINT special_offer_rules_stack_rule_check CHECK ((stack_rule = ANY (ARRAY['none'::text, 'allow_with_coupons'::text, 'allow_with_promotions'::text, 'allow_all'::text])))
);


ALTER TABLE public.special_offer_rules OWNER TO postgres;

--
-- Name: special_offer_rules_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.special_offer_rules_id_seq OWNER TO postgres;

--
-- Name: special_offer_rules_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.special_offer_rules_id_seq OWNED BY public.special_offer_rules.id;


--
-- Name: special_offers; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.special_offers (
    id integer NOT NULL,
    title character varying(255),
    description text,
    start_date date,
    end_date date,
    discount_amount numeric(12,2),
    active boolean DEFAULT true,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.special_offers OWNER TO postgres;

--
-- Name: special_offers_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.special_offers_id_seq OWNER TO postgres;

--
-- Name: special_offers_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.special_offers_id_seq OWNED BY public.special_offers.id;


--
-- Name: states; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.states (
    id integer NOT NULL,
    country_id integer,
    name character varying(255) NOT NULL,
    code character varying(255) NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.states OWNER TO postgres;

--
-- Name: states_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.states_id_seq OWNER TO postgres;

--
-- Name: states_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.states_id_seq OWNED BY public.states.id;


--
-- Name: static_pages; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.static_pages (
    id integer NOT NULL,
    title character varying(255),
    slug character varying(255),
    body text,
    status character varying(255) DEFAULT 'draft'::character varying,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.static_pages OWNER TO postgres;

--
-- Name: static_pages_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.static_pages_id_seq OWNER TO postgres;

--
-- Name: static_pages_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.static_pages_id_seq OWNED BY public.static_pages.id;


--
-- Name: support_messages; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.support_messages (
    id integer NOT NULL,
    ticket_id integer,
    sender_type character varying(255) NOT NULL,
    sender_id integer NOT NULL,
    message text NOT NULL,
    attachment_url character varying(255),
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.support_messages OWNER TO postgres;

--
-- Name: support_messages_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.support_messages_id_seq OWNER TO postgres;

--
-- Name: support_messages_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.support_messages_id_seq OWNED BY public.support_messages.id;


--
-- Name: support_tickets; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.support_tickets (
    id integer NOT NULL,
    customer_id integer,
    subject character varying(255) NOT NULL,
    status character varying(255) DEFAULT 'open'::character varying,
    assigned_admin_id integer,
    notes text,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    host_id integer,
    ticket_number character varying(255),
    category character varying(255) DEFAULT 'OTHER'::character varying NOT NULL,
    priority character varying(255) DEFAULT 'LOW'::character varying NOT NULL,
    last_message_at timestamp with time zone,
    created_by integer,
    message text,
    assigned_to integer
);


ALTER TABLE public.support_tickets OWNER TO postgres;

--
-- Name: support_tickets_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.support_tickets_id_seq OWNER TO postgres;

--
-- Name: support_tickets_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.support_tickets_id_seq OWNED BY public.support_tickets.id;


--
-- Name: system_settings; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.system_settings (
    id integer NOT NULL,
    key character varying(255),
    value text,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.system_settings OWNER TO postgres;

--
-- Name: system_settings_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.system_settings_id_seq OWNER TO postgres;

--
-- Name: system_settings_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.system_settings_id_seq OWNED BY public.system_settings.id;


--
-- Name: tax_rules; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.tax_rules (
    id integer NOT NULL,
    property_id integer,
    tax_name character varying(255) NOT NULL,
    tax_type text DEFAULT 'percent'::text NOT NULL,
    tax_value numeric(12,3) NOT NULL,
    applies_to text DEFAULT 'all'::text NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    CONSTRAINT tax_rules_applies_to_check CHECK ((applies_to = ANY (ARRAY['nightly'::text, 'fees'::text, 'all'::text]))),
    CONSTRAINT tax_rules_tax_type_check CHECK ((tax_type = ANY (ARRAY['percent'::text, 'fixed'::text])))
);


ALTER TABLE public.tax_rules OWNER TO postgres;

--
-- Name: tax_rules_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.tax_rules_id_seq OWNER TO postgres;

--
-- Name: tax_rules_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.tax_rules_id_seq OWNED BY public.tax_rules.id;


--
-- Name: taxes_and_fees_rules; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.taxes_and_fees_rules (
    id integer NOT NULL,
    rule_set_id integer,
    label_id integer,
    scope text DEFAULT 'platform'::text NOT NULL,
    region character varying(255),
    property_type character varying(255),
    property_id integer,
    charge_type text NOT NULL,
    name character varying(255) NOT NULL,
    calc_type text NOT NULL,
    value numeric(12,2) NOT NULL,
    applies_to text DEFAULT 'base'::text NOT NULL,
    is_included_in_price boolean DEFAULT false NOT NULL,
    is_refundable boolean DEFAULT true NOT NULL,
    is_active boolean DEFAULT true NOT NULL,
    priority integer DEFAULT 100 NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    host_id integer,
    per_night boolean DEFAULT false NOT NULL,
    CONSTRAINT taxes_and_fees_rules_applies_to_check CHECK ((applies_to = ANY (ARRAY['base'::text, 'base_plus_fees'::text, 'total'::text]))),
    CONSTRAINT taxes_and_fees_rules_calc_type_check CHECK ((calc_type = ANY (ARRAY['percent'::text, 'fixed'::text, 'per_night'::text, 'per_guest'::text, 'per_booking'::text]))),
    CONSTRAINT taxes_and_fees_rules_charge_type_check CHECK ((charge_type = ANY (ARRAY['tax'::text, 'fee'::text]))),
    CONSTRAINT taxes_and_fees_rules_scope_check CHECK ((scope = ANY (ARRAY['platform'::text, 'region'::text, 'property_type'::text, 'property'::text])))
);


ALTER TABLE public.taxes_and_fees_rules OWNER TO postgres;

--
-- Name: taxes_and_fees_rules_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.taxes_and_fees_rules_id_seq OWNER TO postgres;

--
-- Name: taxes_and_fees_rules_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.taxes_and_fees_rules_id_seq OWNED BY public.taxes_and_fees_rules.id;


--
-- Name: taxes_fees; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.taxes_fees (
    id integer NOT NULL,
    name character varying(255),
    rate numeric(6,3),
    is_percentage boolean DEFAULT true,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.taxes_fees OWNER TO postgres;

--
-- Name: taxes_fees_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.taxes_fees_id_seq OWNER TO postgres;

--
-- Name: taxes_fees_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.taxes_fees_id_seq OWNED BY public.taxes_fees.id;


--
-- Name: tour_bookings; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.tour_bookings (
    id integer NOT NULL,
    tour_id integer,
    host_id integer,
    customer_id integer,
    booking_date date DEFAULT CURRENT_TIMESTAMP NOT NULL,
    qty integer DEFAULT 1 NOT NULL,
    status public.tour_booking_status_enum DEFAULT 'pending'::public.tour_booking_status_enum NOT NULL,
    total_amount numeric(14,2) DEFAULT '0'::numeric NOT NULL,
    platform_fee numeric(14,2) DEFAULT '0'::numeric NOT NULL,
    host_earnings numeric(14,2) DEFAULT '0'::numeric NOT NULL,
    currency character varying(255) DEFAULT 'INR'::character varying NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    client_id integer
);


ALTER TABLE public.tour_bookings OWNER TO postgres;

--
-- Name: tour_bookings_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.tour_bookings_id_seq OWNER TO postgres;

--
-- Name: tour_bookings_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.tour_bookings_id_seq OWNED BY public.tour_bookings.id;


--
-- Name: tours; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.tours (
    id integer NOT NULL,
    host_id integer,
    title character varying(255) NOT NULL,
    status public.tour_status_enum DEFAULT 'active'::public.tour_status_enum NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.tours OWNER TO postgres;

--
-- Name: tours_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.tours_id_seq OWNER TO postgres;

--
-- Name: tours_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.tours_id_seq OWNED BY public.tours.id;


--
-- Name: transactions; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.transactions (
    id integer NOT NULL,
    booking_id integer,
    method character varying(255),
    txn_id character varying(255),
    amount numeric(12,2),
    status character varying(255),
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.transactions OWNER TO postgres;

--
-- Name: transactions_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.transactions_id_seq OWNER TO postgres;

--
-- Name: transactions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.transactions_id_seq OWNED BY public.transactions.id;


--
-- Name: transport_package_media; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.transport_package_media (
    id uuid DEFAULT gen_random_uuid() NOT NULL,
    "packageId" uuid NOT NULL,
    url text NOT NULL,
    "altText" text,
    "isCover" boolean DEFAULT false NOT NULL,
    "sortOrder" integer DEFAULT 0 NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.transport_package_media OWNER TO postgres;

--
-- Name: transport_package_variants; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.transport_package_variants (
    id uuid DEFAULT gen_random_uuid() NOT NULL,
    "packageId" uuid NOT NULL,
    "vehicleCategoryId" uuid NOT NULL,
    "seatConfigId" uuid NOT NULL,
    "maxPax" integer NOT NULL,
    "priceTotal" numeric(12,2) NOT NULL,
    "kmsIncluded" integer,
    "extraKmRate" numeric(12,2),
    "driverAllowanceIncluded" boolean DEFAULT false NOT NULL,
    "tollIncluded" boolean DEFAULT false NOT NULL,
    "gstPct" numeric(5,2),
    priority integer DEFAULT 0 NOT NULL,
    "isActive" boolean DEFAULT true NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.transport_package_variants OWNER TO postgres;

--
-- Name: transport_packages; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.transport_packages (
    id uuid DEFAULT gen_random_uuid() NOT NULL,
    title text NOT NULL,
    slug text NOT NULL,
    "locationId" uuid NOT NULL,
    days integer NOT NULL,
    nights integer NOT NULL,
    description text,
    highlights text,
    inclusions text,
    exclusions text,
    "itineraryJson" jsonb,
    terms text,
    "sortOrder" integer DEFAULT 0 NOT NULL,
    "isActive" boolean DEFAULT true NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "durationDays" integer,
    "coverImageUrl" text,
    "galleryJson" jsonb
);


ALTER TABLE public.transport_packages OWNER TO postgres;

--
-- Name: travel_custom_tour_requests; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.travel_custom_tour_requests (
    id integer NOT NULL,
    name character varying(255) NOT NULL,
    email character varying(255) NOT NULL,
    phone character varying(255),
    destination_id integer,
    destination_text character varying(255),
    start_date date,
    end_date date,
    budget_min numeric(12,2),
    budget_max numeric(12,2),
    travelers integer,
    message text,
    status text DEFAULT 'new'::text,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    CONSTRAINT travel_custom_tour_requests_status_check CHECK ((status = ANY (ARRAY['new'::text, 'in_progress'::text, 'closed'::text])))
);


ALTER TABLE public.travel_custom_tour_requests OWNER TO postgres;

--
-- Name: travel_custom_tour_requests_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.travel_custom_tour_requests_id_seq OWNER TO postgres;

--
-- Name: travel_custom_tour_requests_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.travel_custom_tour_requests_id_seq OWNED BY public.travel_custom_tour_requests.id;


--
-- Name: travel_newsletter_subscribers; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.travel_newsletter_subscribers (
    id integer NOT NULL,
    email character varying(255) NOT NULL,
    source character varying(255),
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.travel_newsletter_subscribers OWNER TO postgres;

--
-- Name: travel_newsletter_subscribers_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.travel_newsletter_subscribers_id_seq OWNER TO postgres;

--
-- Name: travel_newsletter_subscribers_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.travel_newsletter_subscribers_id_seq OWNED BY public.travel_newsletter_subscribers.id;


--
-- Name: travel_package_articles; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.travel_package_articles (
    id integer NOT NULL,
    title character varying(255) NOT NULL,
    slug character varying(255) NOT NULL,
    category character varying(255),
    read_time character varying(255),
    image_url character varying(255),
    excerpt text,
    content text,
    is_active boolean DEFAULT true,
    published_at timestamp with time zone,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.travel_package_articles OWNER TO postgres;

--
-- Name: travel_package_articles_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.travel_package_articles_id_seq OWNER TO postgres;

--
-- Name: travel_package_articles_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.travel_package_articles_id_seq OWNED BY public.travel_package_articles.id;


--
-- Name: travel_package_destinations; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.travel_package_destinations (
    id integer NOT NULL,
    name character varying(255) NOT NULL,
    slug character varying(255) NOT NULL,
    image_url character varying(255),
    summary text,
    is_active boolean DEFAULT true,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.travel_package_destinations OWNER TO postgres;

--
-- Name: travel_package_destinations_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.travel_package_destinations_id_seq OWNER TO postgres;

--
-- Name: travel_package_destinations_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.travel_package_destinations_id_seq OWNED BY public.travel_package_destinations.id;


--
-- Name: travel_package_enquiries; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.travel_package_enquiries (
    id integer NOT NULL,
    package_id integer,
    package_title character varying(255) NOT NULL,
    destination_snapshot character varying(255),
    package_price numeric(12,2),
    package_currency character varying(10),
    name character varying(255) NOT NULL,
    email character varying(255) NOT NULL,
    phone character varying(255) NOT NULL,
    whatsapp character varying(255),
    travel_start_date date,
    travel_end_date date,
    preferred_month character varying(255),
    travellers_count integer,
    budget_min numeric(12,2),
    budget_max numeric(12,2),
    message text,
    contact_method character varying(255),
    status text DEFAULT 'NEW'::text,
    admin_notes text,
    source text DEFAULT 'LISTING'::text,
    utm_source character varying(255),
    utm_campaign character varying(255),
    newsletter_opt_in boolean DEFAULT false,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    is_read boolean DEFAULT false,
    read_at timestamp with time zone,
    CONSTRAINT travel_package_enquiries_source_check CHECK ((source = ANY (ARRAY['LISTING'::text, 'LANDING'::text, 'DETAILS'::text]))),
    CONSTRAINT travel_package_enquiries_status_check CHECK ((status = ANY (ARRAY['NEW'::text, 'CONTACTED'::text, 'CONFIRMED'::text, 'CLOSED'::text])))
);


ALTER TABLE public.travel_package_enquiries OWNER TO postgres;

--
-- Name: travel_package_enquiries_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.travel_package_enquiries_id_seq OWNER TO postgres;

--
-- Name: travel_package_enquiries_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.travel_package_enquiries_id_seq OWNED BY public.travel_package_enquiries.id;


--
-- Name: travel_package_images; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.travel_package_images (
    id integer NOT NULL,
    package_id integer,
    image_url character varying(255) NOT NULL,
    is_cover boolean DEFAULT false,
    sort_order integer DEFAULT 0,
    alt_text character varying(255),
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.travel_package_images OWNER TO postgres;

--
-- Name: travel_package_images_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.travel_package_images_id_seq OWNER TO postgres;

--
-- Name: travel_package_images_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.travel_package_images_id_seq OWNED BY public.travel_package_images.id;


--
-- Name: travel_package_itineraries; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.travel_package_itineraries (
    id integer NOT NULL,
    package_id integer,
    day_number integer NOT NULL,
    day_title character varying(255) NOT NULL,
    description text,
    image_url character varying(255),
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.travel_package_itineraries OWNER TO postgres;

--
-- Name: travel_package_itineraries_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.travel_package_itineraries_id_seq OWNER TO postgres;

--
-- Name: travel_package_itineraries_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.travel_package_itineraries_id_seq OWNED BY public.travel_package_itineraries.id;


--
-- Name: travel_package_landing_config; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.travel_package_landing_config (
    id integer NOT NULL,
    seo_title character varying(255),
    seo_description text,
    sections jsonb DEFAULT '[]'::jsonb,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.travel_package_landing_config OWNER TO postgres;

--
-- Name: travel_package_landing_config_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.travel_package_landing_config_id_seq OWNER TO postgres;

--
-- Name: travel_package_landing_config_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.travel_package_landing_config_id_seq OWNED BY public.travel_package_landing_config.id;


--
-- Name: travel_package_listing_config; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.travel_package_listing_config (
    id integer NOT NULL,
    title character varying(255),
    subtitle text,
    default_sort character varying(255) DEFAULT 'popularity'::character varying,
    show_trending_row boolean DEFAULT true,
    show_theme_chips boolean DEFAULT true,
    results_mode text DEFAULT 'pagination'::text,
    seo_title character varying(255),
    seo_description text,
    seo_image character varying(255),
    labels jsonb,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    CONSTRAINT travel_package_listing_config_results_mode_check CHECK ((results_mode = ANY (ARRAY['pagination'::text, 'loadmore'::text])))
);


ALTER TABLE public.travel_package_listing_config OWNER TO postgres;

--
-- Name: travel_package_listing_config_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.travel_package_listing_config_id_seq OWNER TO postgres;

--
-- Name: travel_package_listing_config_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.travel_package_listing_config_id_seq OWNED BY public.travel_package_listing_config.id;


--
-- Name: travel_package_offers; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.travel_package_offers (
    id integer NOT NULL,
    title character varying(255) NOT NULL,
    subtitle character varying(255),
    discount_text character varying(255),
    cta_text character varying(255),
    cta_link character varying(255),
    image_url character varying(255),
    starts_at date,
    ends_at date,
    is_active boolean DEFAULT true,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.travel_package_offers OWNER TO postgres;

--
-- Name: travel_package_offers_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.travel_package_offers_id_seq OWNER TO postgres;

--
-- Name: travel_package_offers_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.travel_package_offers_id_seq OWNED BY public.travel_package_offers.id;


--
-- Name: travel_package_testimonials; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.travel_package_testimonials (
    id integer NOT NULL,
    name character varying(255) NOT NULL,
    role character varying(255),
    avatar_url character varying(255),
    rating numeric(3,2) DEFAULT 4.8,
    review text NOT NULL,
    is_active boolean DEFAULT true,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.travel_package_testimonials OWNER TO postgres;

--
-- Name: travel_package_testimonials_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.travel_package_testimonials_id_seq OWNER TO postgres;

--
-- Name: travel_package_testimonials_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.travel_package_testimonials_id_seq OWNED BY public.travel_package_testimonials.id;


--
-- Name: travel_package_theme_links; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.travel_package_theme_links (
    id integer NOT NULL,
    package_id integer,
    theme_id integer
);


ALTER TABLE public.travel_package_theme_links OWNER TO postgres;

--
-- Name: travel_package_theme_links_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.travel_package_theme_links_id_seq OWNER TO postgres;

--
-- Name: travel_package_theme_links_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.travel_package_theme_links_id_seq OWNED BY public.travel_package_theme_links.id;


--
-- Name: travel_package_themes; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.travel_package_themes (
    id integer NOT NULL,
    name character varying(255) NOT NULL,
    slug character varying(255) NOT NULL,
    icon character varying(255),
    is_active boolean DEFAULT true,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.travel_package_themes OWNER TO postgres;

--
-- Name: travel_package_themes_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.travel_package_themes_id_seq OWNER TO postgres;

--
-- Name: travel_package_themes_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.travel_package_themes_id_seq OWNED BY public.travel_package_themes.id;


--
-- Name: travel_packages; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.travel_packages (
    id integer NOT NULL,
    package_code character varying(255) NOT NULL,
    title character varying(255) NOT NULL,
    slug character varying(255) NOT NULL,
    short_description text,
    description text,
    destination_country character varying(255),
    destination_state character varying(255),
    destination_city character varying(255),
    start_city character varying(255),
    duration_days integer,
    duration_nights integer,
    price_per_person numeric(12,2),
    currency character varying(255) DEFAULT 'INR'::character varying,
    min_persons integer,
    max_persons integer,
    inclusions jsonb,
    exclusions jsonb,
    highlights jsonb,
    categories jsonb,
    status text DEFAULT 'draft'::text,
    seo_title character varying(255),
    seo_description text,
    seo_keywords text,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    destination_id integer,
    price_from numeric(12,2),
    rating numeric(3,2) DEFAULT 4.5,
    difficulty_level character varying(255),
    availability_start_date date,
    availability_end_date date,
    seasonal_text text,
    max_guests integer,
    is_trending boolean DEFAULT false,
    is_top_rated boolean DEFAULT false,
    is_featured boolean DEFAULT false,
    is_active boolean DEFAULT true,
    CONSTRAINT travel_packages_status_check CHECK ((status = ANY (ARRAY['draft'::text, 'published'::text, 'unpublished'::text])))
);


ALTER TABLE public.travel_packages OWNER TO postgres;

--
-- Name: travel_packages_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.travel_packages_id_seq OWNER TO postgres;

--
-- Name: travel_packages_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.travel_packages_id_seq OWNED BY public.travel_packages.id;


--
-- Name: users; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.users (
    user_id uuid DEFAULT gen_random_uuid() NOT NULL,
    username character varying(50) NOT NULL,
    email character varying(100) NOT NULL,
    password_hash character varying(255) NOT NULL,
    first_name character varying(50),
    last_name character varying(50),
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    role character varying(50) DEFAULT 'guest'::character varying
);


ALTER TABLE public.users OWNER TO postgres;

--
-- Name: vehicle_amenities; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.vehicle_amenities (
    id uuid DEFAULT gen_random_uuid() NOT NULL,
    "vehicleId" uuid NOT NULL,
    "amenityId" uuid NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.vehicle_amenities OWNER TO postgres;

--
-- Name: vehicle_categories; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.vehicle_categories (
    id uuid DEFAULT gen_random_uuid() NOT NULL,
    name text NOT NULL,
    slug text NOT NULL,
    description text,
    "isOutstationSupported" boolean DEFAULT true NOT NULL,
    "isActive" boolean DEFAULT true NOT NULL,
    "sortOrder" integer DEFAULT 0 NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "imageUrl" text
);


ALTER TABLE public.vehicle_categories OWNER TO postgres;

--
-- Name: vehicle_images; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.vehicle_images (
    id uuid DEFAULT gen_random_uuid() NOT NULL,
    "vehicleId" uuid NOT NULL,
    url text NOT NULL,
    "altText" text,
    "isCover" boolean DEFAULT false NOT NULL,
    "sortOrder" integer DEFAULT 0 NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.vehicle_images OWNER TO postgres;

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

CREATE TABLE public.vehicles (
    id uuid DEFAULT gen_random_uuid() NOT NULL,
    "categoryId" uuid NOT NULL,
    "seatConfigId" uuid NOT NULL,
    name text NOT NULL,
    code text,
    brand text,
    model text,
    "modelYear" integer,
    "fuelType" text,
    transmission text,
    color text,
    "isActive" boolean DEFAULT true NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public.vehicles OWNER TO postgres;

--
-- Name: webhook_events; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.webhook_events (
    id integer NOT NULL,
    provider public."WebhookProvider" NOT NULL,
    event_id character varying(255) NOT NULL,
    received_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    payload_json jsonb NOT NULL
);


ALTER TABLE public.webhook_events OWNER TO postgres;

--
-- Name: webhook_events_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.webhook_events_id_seq OWNER TO postgres;

--
-- Name: webhook_events_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.webhook_events_id_seq OWNED BY public.webhook_events.id;


--
-- Name: wishlist_items; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.wishlist_items (
    id integer NOT NULL,
    wishlist_id integer,
    property_id integer,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.wishlist_items OWNER TO postgres;

--
-- Name: wishlist_items_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.wishlist_items_id_seq OWNER TO postgres;

--
-- Name: wishlist_items_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.wishlist_items_id_seq OWNED BY public.wishlist_items.id;


--
-- Name: wishlists; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.wishlists (
    id integer NOT NULL,
    guest_id integer,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP
);


ALTER TABLE public.wishlists OWNER TO postgres;

--
-- Name: wishlists_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

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


ALTER SEQUENCE public.wishlists_id_seq OWNER TO postgres;

--
-- Name: wishlists_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.wishlists_id_seq OWNED BY public.wishlists.id;


--
-- Name: admin_adjustments id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: admin_audit_logs id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: admin_conversation_notes id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: admin_refresh_tokens id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: admin_users id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: admins id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: amenities id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: api_integrations id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: audit_logs id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: availability_blocks id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: banners id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: blog_posts id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: booking_discounts id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: booking_events id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: booking_holds id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: booking_items id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: booking_notes id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


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

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


--
-- Name: cancellation_policies id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: cancellation_requests id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: card_offers id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: cities id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: clients id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: conversation_events id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: conversations id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: countries id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: coupon_property_scope id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: coupon_redemptions id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: coupons id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: customer_reviews id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: customer_sessions id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: customers id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: daily_rate_overrides id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: faqs id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: fees id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: host_bank_accounts id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: host_earnings_ledger id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: host_kyc id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: host_kyc_documents id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: host_kyc_submissions id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: host_payout_accounts id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: host_payout_events id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: host_payouts id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: host_sessions id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: host_stripe_accounts id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: hosts id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: invoices id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: knex_migrations id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: knex_migrations_lock index; Type: DEFAULT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY public.knex_migrations_lock ALTER COLUMN index SET DEFAULT nextval('public.knex_migrations_lock_index_seq'::regclass);


--
-- Name: landing_modules id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: ledger_accounts id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: ledger_entries id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: length_of_stay_discounts id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: location_nodes id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: messages id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: notification_templates id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: occupancy_pricing_rules id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: payment_settings id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: payments id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: payouts id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: platform_ledger_entries id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: policy_templates id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: pricing_labels id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: pricing_rule_sets id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: promo_code_properties id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: promo_code_redemptions id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: promo_codes id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: promotions id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: properties id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: property_amenities id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: property_availability id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: property_availability_rules id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: property_base_pricing id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: property_blackout_dates id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: property_booking_locks id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: property_calendar_days id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: property_calendar_overrides id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: property_categories id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: property_images id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: property_policy_templates id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: property_pricing_rules id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: property_room_types id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: property_services id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: property_spaces id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: property_types id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: rate_plans id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: recently_viewed id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: refunds id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: review_events id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: review_media id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: seasonal_pricing id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: seasonal_pricing_rules id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: seasonal_rates id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: services id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: special_offer_rules id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: special_offers id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: states id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: static_pages id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: support_messages id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: support_tickets id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: system_settings id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: tax_rules id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: taxes_and_fees_rules id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: taxes_fees id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: tour_bookings id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: tours id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: transactions id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: travel_custom_tour_requests id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: travel_newsletter_subscribers id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: travel_package_articles id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: travel_package_destinations id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: travel_package_enquiries id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: travel_package_images id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: travel_package_itineraries id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: travel_package_landing_config id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: travel_package_listing_config id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: travel_package_offers id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: travel_package_testimonials id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: travel_package_theme_links id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: travel_package_themes id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: travel_packages id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: webhook_events id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: wishlist_items id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


--
-- Name: wishlists id; Type: DEFAULT; Schema: public; Owner: postgres
--

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


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

COPY public._prisma_migrations (id, checksum, finished_at, migration_name, logs, rolled_back_at, started_at, applied_steps_count) FROM stdin;
0a215947-dffb-42af-bb44-882120d4cb38	980fcc00e3c333f1e42aaf1f7f7e49edcd615f294a63a531173896c93f1cce52	2026-01-30 18:45:01.101573+03	20260109_000001_customers_module		\N	2026-01-30 18:45:01.101573+03	0
e58d8aa3-74b6-4f9b-8d9d-bcc56bde17f6	cb05b12388fc409fb4359241cfd85f63cc085f631b96add173e3789f87255374	2026-01-30 18:45:12.838517+03	20260321_000000_core_baseline		\N	2026-01-30 18:45:12.838517+03	0
93fe0e55-b2bf-4446-981f-f4851ecae73b	dc397a7b2beb7cc0e3dff65543a26f6d5c057d2bdca864370a95a216039a8e3d	2026-01-30 18:45:26.190917+03	20260322_000002_core_marketplace		\N	2026-01-30 18:45:26.190917+03	0
a0ce35a4-126e-4927-8485-6d94b6e89485	58d86b15be47e5a3842466a20403f7ee7abcf9bed688a2968627b8c7bfe92cde	2026-01-30 18:45:37.98745+03	20260323_000003_finance_ledger		\N	2026-01-30 18:45:37.98745+03	0
645f4638-9187-40eb-ab3e-77696b2e5f7e	29e27122af61bfbb8c838b6c2c01259b12c4152894debca304e493a291ef2f7b	\N	20260130_000004_oxitaxi_cabs	A migration failed to apply. New migrations cannot be applied before the error is recovered from. Read more about how to resolve migration issues in a production database: https://pris.ly/d/migrate-resolve\n\nMigration name: 20260130_000004_oxitaxi_cabs\n\nDatabase error code: 42804\n\nDatabase error:\nERROR: foreign key constraint "vehicle_amenities_amenity_fkey" cannot be implemented\nDETAIL: Key columns "amenityId" of the referencing table and "id" of the referenced table are of incompatible types: uuid and integer.\n\nDbError { severity: "ERROR", parsed_severity: Some(Error), code: SqlState(E42804), message: "foreign key constraint \\"vehicle_amenities_amenity_fkey\\" cannot be implemented", detail: Some("Key columns \\"amenityId\\" of the referencing table and \\"id\\" of the referenced table are of incompatible types: uuid and integer."), hint: None, position: None, where_: None, schema: None, table: None, column: None, datatype: None, constraint: None, file: Some("tablecmds.c"), line: Some(10429), routine: Some("ATAddForeignKeyConstraint") }\n\n	2026-01-30 18:46:38.234277+03	2026-01-30 18:45:50.091812+03	0
d5947bd5-e8e0-4558-b307-c1def21af167	9e65c446152d9ab8ec6369615542db350da01c10e17df1f8c3f85f3bd56e3ec3	2026-02-01 21:06:27.909875+03	20260201_000012_footer_newsletter_fields	\N	\N	2026-02-01 21:06:26.609866+03	1
4a1a4e07-76f0-440d-8bb5-25de0c85a469	e92df1ee16f71cee51643321ddd72f99c8ec02a9c6a0f11ab1ec257ff7dc817c	2026-01-30 18:46:48.618822+03	20260130_000004_oxitaxi_cabs	\N	\N	2026-01-30 18:46:48.3241+03	1
a9f23cd3-56d8-4ccf-a162-d413c84dbbf7	2fe3444aa386d3b41645cefca91ca1b75303a068447d91dc72fc55ca239c1000	2026-01-30 19:33:11.581067+03	20260130_000008_coupons_fix	\N	\N	2026-01-30 19:33:11.479052+03	1
3ecb08b8-9f1e-4650-b1ca-dfb0ba6dbc74	43087efe3413a4154e4b1c1d52a2a5e13cb627a93a586b64b3b931965fc5ea3c	2026-01-30 19:03:48.370775+03	20260130_000005_enquiry_leads	\N	\N	2026-01-30 19:03:48.32417+03	1
e97462ef-29e5-40f1-ad08-121676856080	0330edd58fe0a95a31b565d1dafc52061ef746597ce58948daa4d71e30e12de5	2026-01-30 19:11:43.911801+03	20260130_000006_cabs_images	\N	\N	2026-01-30 19:11:43.898708+03	1
2fe5c0b9-d3db-4621-a9e1-382a97f99d91	b4e0497804e46e0a0b0b8c31975b062152d551bac49c3c2e80932567b4085dcd	2026-01-30 19:36:05.038753+03	20260130_000009_coupons_id_uuid	\N	\N	2026-01-30 19:36:05.032534+03	1
ce35c18e-0c35-4507-ab59-98dc80d833cd	c321eb7d0aee34e627bb44d1cba9bc396ed04517e8d349e744981b802fd49e3f	\N	20260130_000007_coupons	A migration failed to apply. New migrations cannot be applied before the error is recovered from. Read more about how to resolve migration issues in a production database: https://pris.ly/d/migrate-resolve\n\nMigration name: 20260130_000007_coupons\n\nDatabase error code: 42703\n\nDatabase error:\nERROR: column "isActive" does not exist\n\nDbError { severity: "ERROR", parsed_severity: Some(Error), code: SqlState(E42703), message: "column \\"isActive\\" does not exist", detail: None, hint: None, position: None, where_: None, schema: None, table: None, column: None, datatype: None, constraint: None, file: Some("indexcmds.c"), line: Some(1960), routine: Some("ComputeIndexAttrs") }\n\n	2026-01-30 19:30:24.915859+03	2026-01-30 19:29:03.301109+03	0
0f964f3d-92f4-4d79-8569-f7d8a9090b44	465f1ba0b04e12d6af984142809b7150ef548c51ee5e2b25a4459225714ae2f9	\N	20260130_000009_coupons_id_uuid	A migration failed to apply. New migrations cannot be applied before the error is recovered from. Read more about how to resolve migration issues in a production database: https://pris.ly/d/migrate-resolve\n\nMigration name: 20260130_000009_coupons_id_uuid\n\nDatabase error code: 42804\n\nDatabase error:\nERROR: foreign key constraint "coupon_property_scope_coupon_id_foreign" cannot be implemented\nDETAIL: Key columns "coupon_id" of the referencing table and "id" of the referenced table are of incompatible types: integer and uuid.\n\nDbError { severity: "ERROR", parsed_severity: Some(Error), code: SqlState(E42804), message: "foreign key constraint \\"coupon_property_scope_coupon_id_foreign\\" cannot be implemented", detail: Some("Key columns \\"coupon_id\\" of the referencing table and \\"id\\" of the referenced table are of incompatible types: integer and uuid."), hint: None, position: None, where_: Some("SQL statement \\"ALTER TABLE \\"coupons\\" ALTER COLUMN \\"id\\" TYPE UUID USING gen_random_uuid()\\"\\nPL/pgSQL function inline_code_block line 12 at SQL statement"), schema: None, table: None, column: None, datatype: None, constraint: None, file: Some("tablecmds.c"), line: Some(10429), routine: Some("ATAddForeignKeyConstraint") }\n\n	2026-01-30 19:35:30.847765+03	2026-01-30 19:34:59.334742+03	0
94211326-2558-406e-92ea-eaef4e702490	073cae0018635946049c3361586df9476d87398d16c2bf0736af507d4c1993ef	2026-01-30 19:30:37.098379+03	20260130_000007_coupons	\N	\N	2026-01-30 19:30:36.983875+03	1
df31637b-d03d-4c19-bbeb-a03a7498dd07	b7e2e70986cb3bf7935ec53890fce58e1aefdb0c0a7a3ed7c29c3374daab259d	2026-01-30 23:00:42.115097+03	20260130_000010_cabs_enquiry_popular_routes	\N	\N	2026-01-30 23:00:40.339809+03	1
bbd844bb-da8f-4b76-bdef-d5d8e141398c	e5bae22a3ba6223ac9c9428684802c2165a288b9009148f30e08094b1f8020a0	2026-02-01 16:52:18.156372+03	20260131_000011_cabs_homepage_content	\N	\N	2026-02-01 16:52:16.863187+03	1
528522f0-470d-4424-9a53-d04f7aa552bd	3dc1757007df41c9597858b172124e8f25a8540204e3da8e8c20dfb440ffa180	2026-02-01 21:50:40.437412+03	20260201_000013_footer_newsletter_eyebrow	\N	\N	2026-02-01 21:50:40.396619+03	1
2ecbf047-4eb8-4c84-a620-6937463b90c1	35c2e8b381b3221eca1de2f2e51c07d6bc30e610a4e8c8694f8aa533304928c0	2026-02-02 01:44:19.865744+03	20260201_000014_footer_places	\N	\N	2026-02-02 01:44:19.459778+03	1
\.


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

COPY public.admin_adjustments (id, host_id, ledger_id, booking_id, amount, reason, created_by_admin_id, created_at) FROM stdin;
\.


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

COPY public.admin_audit_logs (id, admin_user_id, entity_type, entity_id, action, before_json, after_json, ip_address, created_at) FROM stdin;
\.


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

COPY public.admin_conversation_notes (id, conversation_id, admin_id, note, created_at) FROM stdin;
1	1	1	Seed note: verify arrival time and send check-in instructions.	2026-01-03 17:47:17.077705+03
2	1	1	Seed note: verify arrival time and send check-in instructions.	2026-01-03 17:47:17.078881+03
3	1	1	Seed note: verify arrival time and send check-in instructions.	2026-01-03 17:47:17.079765+03
4	1	1	Seed note: verify arrival time and send check-in instructions.	2026-01-03 17:47:17.080455+03
5	1	1	Seed note: verify arrival time and send check-in instructions.	2026-01-03 17:47:17.081281+03
\.


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

COPY public.admin_refresh_tokens (id, admin_id, token_hash, created_at, expires_at) FROM stdin;
166	1	$2b$10$aW9sBzhKXzVvX1/rn3Ms9eH.A0e7JIHN83wM91UirE7QC9RA3cFNK	2026-02-01 20:55:04.499786+03	2026-02-08 20:55:04.462+03
167	1	$2b$10$.CsRMrsDcdF143Xl9cPA8uBByYCHAeuZIvOw2ipUnkv2/OEaFT686	2026-02-05 00:43:35.360682+03	2026-02-12 00:43:35.359+03
\.


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

COPY public.admin_settings (key, value_json, updated_at) FROM stdin;
\.


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

COPY public.admin_users (id, name, email, password_hash, role, status, last_login_at, created_at, updated_at) FROM stdin;
\.


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

COPY public.admins (id, name, email, password_hash, role, created_at, updated_at) FROM stdin;
1	Super Admin	admin@homevilas.com	$2b$10$9zmZguQ21s0ejWRsrdRX3uVtRZrBBj/iEFO2MfeQhukZgVIE33CvK	super_admin	2025-12-12 20:01:35.842497+03	2025-12-12 20:01:35.842497+03
\.


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

COPY public.amenities (id, name, category, icon_key, created_at, updated_at, slug, is_active, sort_order) FROM stdin;
285	walking area	\N	\N	2025-12-29 04:05:16.985233+03	2025-12-29 04:05:16.985233+03	walking-area	t	0
283	bicycle	\N	\N	2025-12-29 03:30:28.089414+03	2025-12-29 04:59:32.577316+03	bicycle	t	0
290	fire place	\N	\N	2025-12-30 22:04:42.600885+03	2025-12-30 22:04:43.027102+03	fire-place	t	0
91	WiFi	Connectivity	wifi	2026-02-05 20:45:31.246456+03	2026-02-05 20:45:31.246456+03	wifi	t	1
95	Air conditioning	Climate	ac	2026-02-05 20:45:31.246456+03	2026-02-05 20:45:31.246456+03	ac	t	2
103	Heater	Climate	heater	2026-02-05 20:45:31.246456+03	2026-02-05 20:45:31.246456+03	heater	t	3
104	TV	Entertainment	tv	2026-02-05 20:45:31.246456+03	2026-02-05 20:45:31.246456+03	tv	t	4
94	Kitchen	Kitchen	kitchen	2026-02-05 20:45:31.246456+03	2026-02-05 20:45:31.246456+03	kitchen	t	5
106	Microwave	Kitchen	microwave	2026-02-05 20:45:31.246456+03	2026-02-05 20:45:31.246456+03	microwave	t	6
107	Refrigerator	Kitchen	refrigerator	2026-02-05 20:45:31.246456+03	2026-02-05 20:45:31.246456+03	refrigerator	t	7
93	Parking	\N	\N	2025-12-18 01:34:51.465803+03	2025-12-18 01:34:51.465803+03	parking	t	0
96	Breakfast	\N	\N	2025-12-18 01:34:51.465803+03	2025-12-18 01:34:51.465803+03	breakfast	t	0
97	Security	\N	\N	2025-12-18 01:34:51.465803+03	2025-12-18 01:34:51.465803+03	security	t	0
99	Spa	\N	\N	2025-12-18 01:34:51.465803+03	2025-12-18 01:34:51.465803+03	spa	t	0
100	Pet Friendly	\N	\N	2025-12-18 01:34:51.465803+03	2025-12-18 01:34:51.465803+03	pet-friendly	t	0
108	Washing machine	Laundry	washing_machine	2026-02-05 20:45:31.246456+03	2026-02-05 20:45:31.246456+03	washing_machine	t	8
109	Dryer	Laundry	dryer	2026-02-05 20:45:31.246456+03	2026-02-05 20:45:31.246456+03	dryer	t	9
110	Free parking	Parking	free_parking	2026-02-05 20:45:31.246456+03	2026-02-05 20:45:31.246456+03	free_parking	t	10
111	Paid parking	Parking	paid_parking	2026-02-05 20:45:31.246456+03	2026-02-05 20:45:31.246456+03	paid_parking	t	11
92	Pool	Wellness	pool	2026-02-05 20:45:31.246456+03	2026-02-05 20:45:31.246456+03	pool	t	12
113	Private pool	Wellness	private_pool	2026-02-05 20:45:31.246456+03	2026-02-05 20:45:31.246456+03	private_pool	t	13
114	Jacuzzi	Wellness	jacuzzi	2026-02-05 20:45:31.246456+03	2026-02-05 20:45:31.246456+03	jacuzzi	t	14
98	Gym	Wellness	gym	2026-02-05 20:45:31.246456+03	2026-02-05 20:45:31.246456+03	gym	t	15
116	BBQ grill	Outdoor	bbq_grill	2026-02-05 20:45:31.246456+03	2026-02-05 20:45:31.246456+03	bbq_grill	t	16
117	Bonfire	Outdoor	bonfire	2026-02-05 20:45:31.246456+03	2026-02-05 20:45:31.246456+03	bonfire	t	17
118	Garden	Outdoor	garden	2026-02-05 20:45:31.246456+03	2026-02-05 20:45:31.246456+03	garden	t	18
119	Balcony	Outdoor	balcony	2026-02-05 20:45:31.246456+03	2026-02-05 20:45:31.246456+03	balcony	t	19
120	Pet friendly	Policies	pet_friendly	2026-02-05 20:45:31.246456+03	2026-02-05 20:45:31.246456+03	pet_friendly	t	20
121	Smoking allowed	Policies	smoking_allowed	2026-02-05 20:45:31.246456+03	2026-02-05 20:45:31.246456+03	smoking_allowed	t	21
122	Wheelchair access	Accessibility	wheelchair_access	2026-02-05 20:45:31.246456+03	2026-02-05 20:45:31.246456+03	wheelchair_access	t	22
123	Power backup	Safety	power_backup	2026-02-05 20:45:31.246456+03	2026-02-05 20:45:31.246456+03	power_backup	t	23
124	Security cameras	Safety	security_cameras	2026-02-05 20:45:31.246456+03	2026-02-05 20:45:31.246456+03	security_cameras	t	24
125	First aid kit	Safety	first_aid_kit	2026-02-05 20:45:31.246456+03	2026-02-05 20:45:31.246456+03	first_aid_kit	t	25
126	Fire extinguisher	Safety	fire_extinguisher	2026-02-05 20:45:31.246456+03	2026-02-05 20:45:31.246456+03	fire_extinguisher	t	26
\.


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

COPY public.api_integrations (id, name, config_json, active, created_at, updated_at) FROM stdin;
\.


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

COPY public.audit_logs (id, actor_user_id, entity_type, entity_id, action, from_status, to_status, metadata_json, created_at) FROM stdin;
\.


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

COPY public.availability_blocks (id, property_id, start_date, end_date, block_type, note, created_by, created_at) FROM stdin;
1	20	2025-12-22	2025-12-29	booked	Booking HVL-2KN3XH	\N	2025-12-21 02:26:21.590683+03
2	16	2025-12-23	2025-12-29	booked	Booking HVL-EAMR8I	\N	2025-12-21 02:41:25.027529+03
\.


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

COPY public.banners (id, title, image_url, cta_text, cta_link, status, sort_order, created_at, updated_at, placement, subtitle, description, overlay_align, theme, meta) FROM stdin;
22	Homevilas	/uploads/1767105420774-814779-banner1.jpg			published	0	2025-12-30 17:37:16.338122+03	2025-12-30 17:37:16.338122+03	hero	\N	\N	left	dark	\N
51		/uploads/banners/1767976919790-Homevilas_Banner-1__1_.png			published	0	2026-01-09 19:42:09.005759+03	2026-01-09 19:42:09.005759+03	hero	\N	\N	left	dark	\N
52		/uploads/banners/1769204762939-vecteezy_generated-ai-camel-on-a-transparent-background_46857303-1.png			published	0	2026-01-24 00:46:10.577042+03	2026-01-24 00:46:10.577042+03	hero	\N	\N	left	dark	\N
53	Journeys tailored for slow travel.	https://images.unsplash.com/photo-1500534314209-a25ddb2bd429?auto=format&fit=crop&w=2000&q=80	Plan a stay	/packages	published	0	2026-02-02 20:44:26.651264+03	2026-02-02 20:44:26.651264+03	fullscreen	Signature escapes	Handpicked stays, private chauffeurs, and curated itineraries for discerning guests.	left	light	\N
54	Services	\N	\N	\N	published	1	2026-02-02 20:44:26.713224+03	2026-02-02 20:44:26.713224+03	services3		\N	left	dark	{"items": [{"icon": "car", "text": "Chauffeur-driven rides with vetted partners.", "title": "Cab services", "linkUrl": "/cabs", "linkText": "Explore cabs"}, {"icon": "key", "text": "Hand-picked villas and boutique homes.", "title": "Luxury stays", "linkUrl": "/stays", "linkText": "Search stays"}, {"icon": "map", "text": "Slow travel itineraries with local experts.", "title": "Curated tours", "linkUrl": "/packages", "linkText": "View tours"}]}
55	Trending Stays				draft	0	2026-02-04 15:09:30.301862+03	2026-02-04 15:09:30.301862+03	trending_header			left	dark	\N
56		/uploads/banners/1770207030227-Trending_stays.png			published	0	2026-02-04 15:10:58.439054+03	2026-02-04 15:10:58.439054+03	trending			left	dark	\N
\.


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

COPY public.blog_posts (id, title, slug, body, status, created_at, updated_at) FROM stdin;
1				draft	2025-12-12 23:32:27.75878+03	2025-12-12 23:32:27.75878+03
\.


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

COPY public.blogs (id, title, slug, "coverImageUrl", excerpt, content, "publishedAt", "isActive", "sortOrder", "createdAt", "updatedAt") FROM stdin;
57c50d50-36f6-4116-bd86-dc7c1eec5b68	Fuel, tolls, and transparent pricing	fuel-tolls-transparent-pricing	https://picsum.photos/seed/cabs-blog-10/1200/800	Understand what is included in your fare.	Clear breakdowns help you plan your total cost accurately.	2025-11-09 00:00:00	t	10	2026-02-01 16:11:37.574	2026-02-01 18:52:18.211
c462bb14-2381-4fd8-8b66-9a499538cf12	How to plan a stress-free outstation trip	plan-stress-free-outstation-trip	https://picsum.photos/seed/cabs-blog-1/1200/800	Smart planning tips for smooth intercity travel and scenic pit stops.	Plan early, confirm pickup points, and choose the right vehicle category for your group.	2025-09-01 00:00:00	t	1	2026-02-01 14:53:27.039	2026-02-01 18:52:18.193
67581613-0f5b-42d5-9f70-a5719c780de0	Top 5 weekend destinations from Delhi	weekend-destinations-from-delhi	https://picsum.photos/seed/cabs-blog-2/1200/800	Curated drives you can complete in a weekend without rushing.	Agra, Jaipur, Rishikesh, Chandigarh, and Neemrana are popular weekend escapes.	2025-09-10 00:00:00	t	2	2026-02-01 14:53:27.104	2026-02-01 18:52:18.196
0d40556d-68ac-4a50-85b2-731d002b8743	Choosing the right cab category for your trip	choose-cab-category	https://picsum.photos/seed/cabs-blog-3/1200/800	Sedan vs SUV vs tempo traveller: what to choose and when.	Consider luggage, passengers, and comfort before booking.	2025-09-20 00:00:00	t	3	2026-02-01 14:53:27.106	2026-02-01 18:52:18.198
5684cc2f-fd5e-45fd-9289-9a70725303b9	Best sunrise routes from Delhi	sunrise-routes-delhi	https://picsum.photos/seed/cabs-blog-4/1200/800	Quick routes for early-morning getaways.	Plan your pickup before dawn and avoid traffic for a smooth ride.	2025-09-28 00:00:00	t	4	2026-02-01 16:11:37.516	2026-02-01 18:52:18.2
2c789494-d8e1-41eb-a1b9-a3e73a3d6fc7	Packing checklist for road trips	road-trip-packing-checklist	https://picsum.photos/seed/cabs-blog-5/1200/800	Essentials to keep your ride comfortable and safe.	Carry water, snacks, chargers, and motion sickness kits.	2025-10-05 00:00:00	t	5	2026-02-01 16:11:37.564	2026-02-01 18:52:18.202
167d41c8-4501-455e-9784-b9449e664b8f	How to pick the right pickup time	pick-right-pickup-time	https://picsum.photos/seed/cabs-blog-6/1200/800	Beat traffic and arrive on time with smart scheduling.	Aim for early departures on weekends and festival days.	2025-10-12 00:00:00	t	6	2026-02-01 16:11:37.566	2026-02-01 18:52:18.204
9e569d63-d970-4a96-9ecc-9ec4ef77c284	Family travel tips for long drives	family-travel-tips-long-drives	https://picsum.photos/seed/cabs-blog-7/1200/800	Make long drives comfortable for kids and elders.	Plan stops, carry essentials, and choose a larger cab category.	2025-10-19 00:00:00	t	7	2026-02-01 16:11:37.568	2026-02-01 18:52:18.205
cd76a547-cf63-4800-92c9-03ccd391058a	Top hill escapes within 6 hours	hill-escapes-within-6-hours	https://picsum.photos/seed/cabs-blog-8/1200/800	Quick hills for a weekend recharge.	Choose routes with scenic breaks and reliable dining stops.	2025-10-26 00:00:00	t	8	2026-02-01 16:11:37.569	2026-02-01 18:52:18.207
e855c158-59eb-44f5-a83f-8900e9d1a6b1	Monsoon travel safety guide	monsoon-travel-safety-guide	https://picsum.photos/seed/cabs-blog-9/1200/800	Stay safe on wet roads with these tips.	Keep buffers for delays and avoid low-visibility routes.	2025-11-02 00:00:00	t	9	2026-02-01 16:11:37.571	2026-02-01 18:52:18.209
\.


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

COPY public.booking_discounts (id, booking_id, source, source_id, code, amount, currency, metadata, created_at) FROM stdin;
\.


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

COPY public.booking_events (id, booking_id, actor_type, actor_id, event_type, from_status, to_status, metadata, created_at) FROM stdin;
1	14	guest	4	created	\N	pending	{"note": "Booking created via seed"}	2026-01-03 00:59:58.133045+03
2	14	system	\N	payment_marked_paid	pending	awaiting_payment	{"amount": 42000, "currency": "INR"}	2026-01-03 00:59:58.133045+03
3	14	admin	1	confirmed	awaiting_payment	confirmed	{"note": "Seed confirmation"}	2026-01-03 00:59:58.133045+03
4	14	host	310	status_changed	confirmed	cancel_requested	{"action": "cancel_request", "reason": "Requesting cancellation"}	2026-01-09 14:46:40.971825+03
5	15	guest	4	created	\N	pending	{"source": "guest_flow"}	2026-01-09 22:10:36.812071+03
6	16	system	\N	created	\N	pending	{"source": "guest_flow"}	2026-01-10 01:26:49.592487+03
7	17	system	\N	created	\N	pending	{"source": "guest_flow"}	2026-01-10 03:24:25.54075+03
8	18	guest	4	created	\N	pending	{"source": "guest_flow"}	2026-01-10 17:18:30.496341+03
9	19	guest	4	created	\N	pending	{"source": "guest_flow"}	2026-01-12 07:05:19.541956+03
10	20	guest	4	cancel_requested	confirmed	cancel_requested	{"reason": "Guest demo request", "cancellation_request_id": 1}	2026-01-12 07:42:35.261846+03
11	21	guest	4	cancel_requested	confirmed	cancel_requested	{"reason": "Guest demo approved", "cancellation_request_id": 2}	2026-01-12 07:42:35.327024+03
12	22	guest	4	cancel_requested	confirmed	cancel_requested	{"reason": "Guest demo rejected", "cancellation_request_id": 3}	2026-01-12 07:42:35.360302+03
13	23	guest	4	cancel_requested	confirmed	cancel_requested	{"reason": "Guest demo refunded", "cancellation_request_id": 4}	2026-01-12 07:42:35.394061+03
14	21	admin	1	cancelled	cancel_requested	cancelled	{"note": "Approved for demo", "cancellation_request_id": "2"}	2026-01-12 07:49:21.753881+03
15	22	admin	1	status_changed	requested	rejected	{"note": "Rejected for demo", "cancellation_request_id": "3"}	2026-01-12 07:49:21.843598+03
16	22	admin	1	confirmed	cancel_requested	confirmed	{"action": "cancel_rejected", "cancellation_request_id": "3"}	2026-01-12 07:49:21.843598+03
17	23	admin	1	cancelled	cancel_requested	cancelled	{"note": "Approved for refund demo", "cancellation_request_id": "4"}	2026-01-12 07:49:21.969536+03
18	23	admin	1	refund_completed	\N	\N	{"reference": "REF-DEMO-MKAOFJND", "cancellation_request_id": "4"}	2026-01-12 07:51:42.614258+03
19	24	guest	4	created	\N	pending	{"source": "guest_flow"}	2026-01-12 08:54:33.597504+03
20	25	guest	4	created	\N	pending	{"source": "guest_flow"}	2026-01-12 09:16:11.261634+03
21	26	guest	4	created	\N	pending	{"source": "guest_flow"}	2026-01-12 09:25:19.023145+03
22	27	guest	4	created	\N	pending	{"source": "guest_flow"}	2026-01-12 10:04:31.685325+03
23	28	guest	4	created	\N	pending	{"source": "guest_flow"}	2026-01-12 21:17:57.78458+03
24	29	system	\N	created	\N	pending	{"source": "guest_flow"}	2026-01-12 21:53:02.162124+03
25	30	system	\N	created	\N	pending	{"source": "guest_flow"}	2026-01-18 18:49:25.414389+03
26	31	system	\N	created	\N	pending	{"source": "guest_flow"}	2026-01-18 19:06:12.414826+03
27	33	guest	4	created	\N	confirmed	{"source": "checkout_store"}	2026-01-19 19:44:05.84924+03
\.


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

COPY public.booking_holds (id, property_id, check_in, check_out, guests, hold_status, expires_at, session_id, user_id, created_at) FROM stdin;
\.


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

COPY public.booking_items (id, booking_id, type, label, qty, unit_price, amount, created_at) FROM stdin;
1	14	nightly	Room charges	3.00	12000.00	36000.00	2026-01-03 00:59:58.096285+03
2	14	cleaning	Cleaning fee	1.00	1500.00	1500.00	2026-01-03 00:59:58.096285+03
3	14	tax	Taxes	1.00	4500.00	4500.00	2026-01-03 00:59:58.096285+03
4	33	room	Nightly x 2 nights	2.00	12500.00	25000.00	2026-01-19 19:44:05.84924+03
5	33	tax	Taxes	1.00	3000.00	3000.00	2026-01-19 19:44:05.84924+03
\.


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

COPY public.booking_notes (id, booking_id, created_by, visible_to_host, note, created_at) FROM stdin;
1	14	1	t	Seed note: remember to share check-in instructions with the guest.	2026-01-03 00:59:58.154477+03
\.


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

COPY public.bookings (id, booking_code, booking_type, property_id, package_id, customer_name, customer_email, customer_phone, check_in_date, check_out_date, travel_start_date, travel_end_date, no_of_guests, no_of_rooms, total_amount, currency, payment_status, booking_status, special_requests, created_at, updated_at, notes, customer_id, pricing_snapshot_json, subtotal_amount, fees_amount, tax_amount, discount_amount, coupon_code, coupon_title, hold_expires_at, extras_json, payment_provider, payment_intent_id, payment_reference, payment_amount, payment_currency, terms_accepted, arrival_time, host_id, guest_id, nights, guests_count, payout_status, cancellation_policy, cancel_initiated_by, cancel_reason, totals_json, promotion_id, promo_code_id, card_offer_id, client_id, core_status, total_amount_paise, room_type_id, room_count) FROM stdin;
4	HVL-O92KJX	property	16	\N	hm	northern.nit2025@gmail.com	8882029181	2025-12-21	2025-12-23	\N	\N	2	\N	410.00	INR	pending	draft		2025-12-21 01:46:08.12999+03	2025-12-21 01:46:08.12999+03	\N	\N	{"fees": [], "taxes": [], "total": 410, "coupon": null, "extras": [], "guests": 2, "nights": 2, "checkIn": "2025-12-21", "nightly": [{"date": "2025-12-20", "rule": "weekend", "price": 220, "extraGuestFee": 0}, {"date": "2025-12-21", "rule": "base", "price": 190, "extraGuestFee": 0}], "checkOut": "2025-12-23", "taxTotal": 0, "discounts": [], "feesTotal": 0, "propertyId": 16, "extrasTotal": 0, "roomSubtotal": 410}	410.00	0.00	0.00	0.00	\N	\N	2025-12-21 02:16:08.122+03	{}	\N	\N	\N	\N	\N	f	9 am	\N	\N	\N	\N	not_ready	\N	\N	\N	\N	\N	\N	\N	\N	CREATED	41000	\N	1
22	HV-DEMO-REJECTED-MKAOFJND	property	128	\N	Guest Demo	guestdemo@homevilas.com	9990001111	2026-01-26	2026-01-28	\N	\N	2	1	48000.00	INR	paid	confirmed	\N	2026-01-12 07:42:35.339824+03	2026-01-12 07:49:21.843598+03	\N	4	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N	f	\N	310	4	\N	\N	not_ready	\N	guest	Guest demo rejected	{"taxes": 0, "total": 48000, "service_fee": 2000, "cleaning_fee": 1000}	\N	\N	\N	\N	CREATED	4800000	\N	1
23	HV-DEMO-REFUNDED-MKAOFJND	property	128	\N	Guest Demo	guestdemo@homevilas.com	9990001111	2026-01-28	2026-01-30	\N	\N	2	1	51000.00	INR	refunded	cancelled	\N	2026-01-12 07:42:35.370969+03	2026-01-12 07:51:42.614258+03	\N	4	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N	f	\N	310	4	\N	\N	not_ready	\N	guest	Guest demo refunded	{"taxes": 0, "total": 51000, "service_fee": 2000, "cleaning_fee": 1000}	\N	\N	\N	\N	CREATED	5100000	\N	1
9	HVL-L11YFD	property	20	\N	Guest			2025-12-22	2025-12-29	\N	\N	2	\N	1950.00	INR	pending	draft		2025-12-21 02:24:55.742517+03	2025-12-21 02:24:55.742517+03	\N	\N	{"fees": [], "taxes": [], "total": 1950, "coupon": null, "extras": [], "guests": 2, "nights": 7, "checkIn": "2025-12-22", "nightly": [{"date": "2025-12-21", "rule": "base", "price": 270, "extraGuestFee": 0}, {"date": "2025-12-22", "rule": "base", "price": 270, "extraGuestFee": 0}, {"date": "2025-12-23", "rule": "base", "price": 270, "extraGuestFee": 0}, {"date": "2025-12-24", "rule": "base", "price": 270, "extraGuestFee": 0}, {"date": "2025-12-25", "rule": "base", "price": 270, "extraGuestFee": 0}, {"date": "2025-12-26", "rule": "weekend", "price": 300, "extraGuestFee": 0}, {"date": "2025-12-27", "rule": "weekend", "price": 300, "extraGuestFee": 0}], "checkOut": "2025-12-29", "taxTotal": 0, "discounts": [], "feesTotal": 0, "propertyId": 20, "extrasTotal": 0, "roomSubtotal": 1950}	1950.00	0.00	0.00	0.00	\N	\N	2025-12-21 02:54:55.741+03	{}	\N	\N	\N	\N	\N	f		\N	\N	\N	\N	not_ready	\N	\N	\N	\N	\N	\N	\N	\N	CREATED	195000	\N	1
11	HVL-QLGPZI	property	16	\N	hm	northern.nit2025@gmail.com	+918882029181	2025-12-23	2025-12-29	\N	\N	2	\N	1200.00	INR	pending	draft		2025-12-21 02:39:34.259114+03	2025-12-21 02:39:34.259114+03	\N	\N	{"fees": [], "taxes": [], "total": 1200, "coupon": null, "extras": [], "guests": 2, "nights": 6, "checkIn": "2025-12-23", "nightly": [{"date": "2025-12-22", "rule": "base", "price": 190, "extraGuestFee": 0}, {"date": "2025-12-23", "rule": "base", "price": 190, "extraGuestFee": 0}, {"date": "2025-12-24", "rule": "base", "price": 190, "extraGuestFee": 0}, {"date": "2025-12-25", "rule": "base", "price": 190, "extraGuestFee": 0}, {"date": "2025-12-26", "rule": "weekend", "price": 220, "extraGuestFee": 0}, {"date": "2025-12-27", "rule": "weekend", "price": 220, "extraGuestFee": 0}], "checkOut": "2025-12-29", "taxTotal": 0, "discounts": [], "feesTotal": 0, "propertyId": 16, "extrasTotal": 0, "roomSubtotal": 1200}	1200.00	0.00	0.00	0.00	\N	\N	2025-12-21 03:09:34.258+03	{}	\N	\N	\N	\N	\N	f	9 am	\N	\N	\N	\N	not_ready	\N	\N	\N	\N	\N	\N	\N	\N	CREATED	120000	\N	1
10	HVL-2KN3XH	property	20	\N	heera	northern.nit2025@gmail.com	+918882029181	2025-12-22	2025-12-29	\N	\N	2	\N	1950.00	INR	paid	confirmed		2025-12-21 02:26:04.593592+03	2025-12-21 02:26:21.590683+03	\N	\N	{"fees": [], "taxes": [], "total": 1950, "coupon": null, "extras": [], "guests": 2, "nights": 7, "checkIn": "2025-12-21T21:00:00.000Z", "nightly": [{"date": "2025-12-21", "rule": "base", "price": 270, "extraGuestFee": 0}, {"date": "2025-12-22", "rule": "base", "price": 270, "extraGuestFee": 0}, {"date": "2025-12-23", "rule": "base", "price": 270, "extraGuestFee": 0}, {"date": "2025-12-24", "rule": "base", "price": 270, "extraGuestFee": 0}, {"date": "2025-12-25", "rule": "base", "price": 270, "extraGuestFee": 0}, {"date": "2025-12-26", "rule": "weekend", "price": 300, "extraGuestFee": 0}, {"date": "2025-12-27", "rule": "weekend", "price": 300, "extraGuestFee": 0}], "checkOut": "2025-12-28T21:00:00.000Z", "taxTotal": 0, "discounts": [], "feesTotal": 0, "propertyId": 20, "extrasTotal": 0, "roomSubtotal": 1950}	1950.00	0.00	0.00	0.00	\N	\N	2025-12-21 02:56:04.591+03	{}	\N	PAY-68KKK8	PAY-68KKK8	1950.00	INR	t	9am	\N	\N	\N	\N	not_ready	\N	\N	\N	\N	\N	\N	\N	\N	CREATED	195000	\N	1
14	HV-TRANSPARENT-001	property	128	\N	Guest Demo	guestdemo@homevilas.com	9990001111	2026-01-10	2026-01-13	\N	\N	2	\N	42000.00	INR	partial	cancel_requested	\N	2026-01-03 00:59:58.016782+03	2026-01-12 06:33:11.668762+03	\N	4	\N	36000.00	1500.00	4500.00	0.00	\N	\N	\N	\N	\N	\N	\N	\N	\N	f	\N	310	4	3	2	pending	Flexible	host	Requesting cancellation	{"base": 36000, "fees": 1500, "taxes": 4500, "total": 42000, "host_net": 37800, "discounts": 0, "commission": 10, "cleaning_fee": 1500}	\N	\N	\N	\N	CREATED	4200000	\N	1
13	HV-DEMO-BOOK-1	property	128	\N	Sample Guest	guest@example.com	+910000000000	2026-01-02	2026-01-02	\N	\N	2	\N	15000.00	INR	paid	confirmed	Late check-in if possible	2026-01-01 20:03:29.877661+03	2026-01-01 20:03:29.877661+03	\N	\N	\N	14000.00	0.00	1000.00	0.00	\N	\N	\N	\N	\N	\N	\N	\N	\N	f	\N	\N	\N	\N	\N	not_ready	\N	\N	\N	\N	\N	\N	\N	\N	CREATED	1500000	\N	1
2	HVL-6DLKXB	property	16	\N	heera	northern.nit2025@gmail.com	8882029181	2025-12-23	2025-12-29	\N	\N	2	\N	1200.00	INR	pending	draft	test	2025-12-21 01:37:06.292974+03	2025-12-21 01:37:06.292974+03	\N	\N	{"fees": [], "taxes": [], "total": 1200, "coupon": null, "extras": [], "guests": 2, "nights": 6, "checkIn": "2025-12-23", "nightly": [{"date": "2025-12-22", "rule": "base", "price": 190, "extraGuestFee": 0}, {"date": "2025-12-23", "rule": "base", "price": 190, "extraGuestFee": 0}, {"date": "2025-12-24", "rule": "base", "price": 190, "extraGuestFee": 0}, {"date": "2025-12-25", "rule": "base", "price": 190, "extraGuestFee": 0}, {"date": "2025-12-26", "rule": "weekend", "price": 220, "extraGuestFee": 0}, {"date": "2025-12-27", "rule": "weekend", "price": 220, "extraGuestFee": 0}], "checkOut": "2025-12-29", "taxTotal": 0, "discounts": [], "feesTotal": 0, "propertyId": 16, "extrasTotal": 0, "roomSubtotal": 1200}	1200.00	0.00	0.00	0.00	\N	\N	2025-12-21 02:07:06.291+03	{}	\N	\N	\N	\N	\N	f		\N	\N	\N	\N	not_ready	\N	\N	\N	\N	\N	\N	\N	\N	CREATED	120000	\N	1
3	HVL-3RXHEJ	property	16	\N	Guest			2025-12-23	2025-12-29	\N	\N	2	\N	1200.00	INR	pending	draft		2025-12-21 01:43:46.139089+03	2025-12-21 01:43:46.139089+03	\N	\N	{"fees": [], "taxes": [], "total": 1200, "coupon": null, "extras": [], "guests": 2, "nights": 6, "checkIn": "2025-12-23", "nightly": [{"date": "2025-12-22", "rule": "base", "price": 190, "extraGuestFee": 0}, {"date": "2025-12-23", "rule": "base", "price": 190, "extraGuestFee": 0}, {"date": "2025-12-24", "rule": "base", "price": 190, "extraGuestFee": 0}, {"date": "2025-12-25", "rule": "base", "price": 190, "extraGuestFee": 0}, {"date": "2025-12-26", "rule": "weekend", "price": 220, "extraGuestFee": 0}, {"date": "2025-12-27", "rule": "weekend", "price": 220, "extraGuestFee": 0}], "checkOut": "2025-12-29", "taxTotal": 0, "discounts": [], "feesTotal": 0, "propertyId": 16, "extrasTotal": 0, "roomSubtotal": 1200}	1200.00	0.00	0.00	0.00	\N	\N	2025-12-21 02:13:46.137+03	{}	\N	\N	\N	\N	\N	f		\N	\N	\N	\N	not_ready	\N	\N	\N	\N	\N	\N	\N	\N	CREATED	120000	\N	1
5	HVL-U8O03P	property	16	\N	Guest			2025-12-23	2025-12-29	\N	\N	2	\N	1200.00	INR	pending	draft		2025-12-21 01:52:33.877683+03	2025-12-21 01:52:33.877683+03	\N	\N	{"fees": [], "taxes": [], "total": 1200, "coupon": null, "extras": [], "guests": 2, "nights": 6, "checkIn": "2025-12-23", "nightly": [{"date": "2025-12-22", "rule": "base", "price": 190, "extraGuestFee": 0}, {"date": "2025-12-23", "rule": "base", "price": 190, "extraGuestFee": 0}, {"date": "2025-12-24", "rule": "base", "price": 190, "extraGuestFee": 0}, {"date": "2025-12-25", "rule": "base", "price": 190, "extraGuestFee": 0}, {"date": "2025-12-26", "rule": "weekend", "price": 220, "extraGuestFee": 0}, {"date": "2025-12-27", "rule": "weekend", "price": 220, "extraGuestFee": 0}], "checkOut": "2025-12-29", "taxTotal": 0, "discounts": [], "feesTotal": 0, "propertyId": 16, "extrasTotal": 0, "roomSubtotal": 1200}	1200.00	0.00	0.00	0.00	\N	\N	2025-12-21 02:22:33.874+03	{}	\N	\N	\N	\N	\N	f		\N	\N	\N	\N	not_ready	\N	\N	\N	\N	\N	\N	\N	\N	CREATED	120000	\N	1
6	HVL-TJTZ2L	property	23	\N	hm	northern.nit2025@gmail.com	8882029181	2025-12-24	2025-12-30	\N	\N	2	\N	2040.00	INR	pending	draft		2025-12-21 01:53:44.972055+03	2025-12-21 01:53:44.972055+03	\N	\N	{"fees": [], "taxes": [], "total": 2040, "coupon": null, "extras": [], "guests": 2, "nights": 6, "checkIn": "2025-12-24", "nightly": [{"date": "2025-12-23", "rule": "base", "price": 330, "extraGuestFee": 0}, {"date": "2025-12-24", "rule": "base", "price": 330, "extraGuestFee": 0}, {"date": "2025-12-25", "rule": "base", "price": 330, "extraGuestFee": 0}, {"date": "2025-12-26", "rule": "weekend", "price": 360, "extraGuestFee": 0}, {"date": "2025-12-27", "rule": "weekend", "price": 360, "extraGuestFee": 0}, {"date": "2025-12-28", "rule": "base", "price": 330, "extraGuestFee": 0}], "checkOut": "2025-12-30", "taxTotal": 0, "discounts": [], "feesTotal": 0, "propertyId": 23, "extrasTotal": 0, "roomSubtotal": 2040}	2040.00	0.00	0.00	0.00	\N	\N	2025-12-21 02:23:44.971+03	{}	\N	\N	\N	\N	\N	f	9am	\N	\N	\N	\N	not_ready	\N	\N	\N	\N	\N	\N	\N	\N	CREATED	204000	\N	1
7	HVL-X2IDNF	property	20	\N	hm	northern.nit2025@gmail.com	8882029181	2025-12-23	2025-12-29	\N	\N	2	\N	1680.00	INR	pending	draft		2025-12-21 02:07:47.85412+03	2025-12-21 02:07:47.85412+03	\N	\N	{"fees": [], "taxes": [], "total": 1680, "coupon": null, "extras": [], "guests": 2, "nights": 6, "checkIn": "2025-12-23", "nightly": [{"date": "2025-12-22", "rule": "base", "price": 270, "extraGuestFee": 0}, {"date": "2025-12-23", "rule": "base", "price": 270, "extraGuestFee": 0}, {"date": "2025-12-24", "rule": "base", "price": 270, "extraGuestFee": 0}, {"date": "2025-12-25", "rule": "base", "price": 270, "extraGuestFee": 0}, {"date": "2025-12-26", "rule": "weekend", "price": 300, "extraGuestFee": 0}, {"date": "2025-12-27", "rule": "weekend", "price": 300, "extraGuestFee": 0}], "checkOut": "2025-12-29", "taxTotal": 0, "discounts": [], "feesTotal": 0, "propertyId": 20, "extrasTotal": 0, "roomSubtotal": 1680}	1680.00	0.00	0.00	0.00	\N	\N	2025-12-21 02:37:47.853+03	{}	\N	\N	\N	\N	\N	f		\N	\N	\N	\N	not_ready	\N	\N	\N	\N	\N	\N	\N	\N	CREATED	168000	\N	1
8	HVL-6RUXPZ	property	20	\N	Guest			2025-12-22	2025-12-25	\N	\N	2	\N	810.00	INR	pending	draft		2025-12-21 02:11:46.961871+03	2025-12-21 02:11:46.961871+03	\N	\N	{"fees": [], "taxes": [], "total": 810, "coupon": null, "extras": [], "guests": 2, "nights": 3, "checkIn": "2025-12-22", "nightly": [{"date": "2025-12-21", "rule": "base", "price": 270, "extraGuestFee": 0}, {"date": "2025-12-22", "rule": "base", "price": 270, "extraGuestFee": 0}, {"date": "2025-12-23", "rule": "base", "price": 270, "extraGuestFee": 0}], "checkOut": "2025-12-25", "taxTotal": 0, "discounts": [], "feesTotal": 0, "propertyId": 20, "extrasTotal": 0, "roomSubtotal": 810}	810.00	0.00	0.00	0.00	\N	\N	2025-12-21 02:41:46.96+03	{}	\N	\N	\N	\N	\N	f		\N	\N	\N	\N	not_ready	\N	\N	\N	\N	\N	\N	\N	\N	CREATED	81000	\N	1
12	HVL-EAMR8I	property	16	\N	hm	northern.nit2025@gmail.com	+918882029181	2025-12-23	2025-12-29	\N	\N	2	\N	1200.00	INR	paid	confirmed		2025-12-21 02:40:23.267968+03	2025-12-21 02:41:25.027529+03	\N	\N	{"fees": [], "taxes": [], "total": 1200, "coupon": null, "extras": [], "guests": 2, "nights": 6, "checkIn": "2025-12-22T21:00:00.000Z", "nightly": [{"date": "2025-12-22", "rule": "base", "price": 190, "extraGuestFee": 0}, {"date": "2025-12-23", "rule": "base", "price": 190, "extraGuestFee": 0}, {"date": "2025-12-24", "rule": "base", "price": 190, "extraGuestFee": 0}, {"date": "2025-12-25", "rule": "base", "price": 190, "extraGuestFee": 0}, {"date": "2025-12-26", "rule": "weekend", "price": 220, "extraGuestFee": 0}, {"date": "2025-12-27", "rule": "weekend", "price": 220, "extraGuestFee": 0}], "checkOut": "2025-12-28T21:00:00.000Z", "taxTotal": 0, "discounts": [], "feesTotal": 0, "propertyId": 16, "extrasTotal": 0, "roomSubtotal": 1200}	1200.00	0.00	0.00	0.00	\N	\N	2025-12-21 03:10:23.262+03	{}	\N	PAY-Q35XPY	PAY-Q35XPY	1200.00	INR	t	9 am	\N	\N	\N	\N	not_ready	\N	\N	\N	\N	\N	\N	\N	\N	CREATED	120000	\N	1
15	HVL-I531R9	property	74	\N	Guest	guestdemo@homevilas.com	9990001111	2026-01-12	2026-01-15	\N	\N	2	\N	35924.00	INR	pending	pending		2026-01-09 22:10:36.616298+03	2026-01-09 22:10:36.616298+03	\N	4	{"total": 35924, "coupon": null, "extras": [], "nights": 3, "check_in": "2026-01-12", "currency": "INR", "taxTotal": 0, "breakdown": {"base_quote": {"guests": 2, "nights": 3, "totals": {"fees": 500, "taxes": 4501.2771999999995, "total": 40425.2772, "discount": 0, "feeBreakdown": {"service_fee": 0, "cleaning_fee": 500, "extra_guest_fee": 0}, "roomSubtotal": 35424, "baseRoomSubtotal": 35424}, "checkIn": "2026-01-12", "nightly": [{"date": "2026-01-12", "price": 11808, "minNights": 2}, {"date": "2026-01-13", "price": 11808, "minNights": 2}, {"date": "2026-01-14", "price": 11808, "minNights": 2}], "checkOut": "2026-01-15", "currency": "INR", "propertyId": 74, "minNightsRule": 2}, "card_offers": [], "length_discount": 0, "promotions_considered": [], "special_offers_considered": []}, "check_out": "2026-01-15", "discounts": [], "feesTotal": 500, "fees_total": 500, "grandTotal": 35924, "extrasTotal": 0, "property_id": 74, "taxes_total": 0, "guests_count": 2, "roomSubtotal": 35424, "applied_rules": [], "discountTotal": 0, "total_payable": 35924, "breakdownItems": [{"type": "base", "label": "Base nights", "amount": 35424}, {"type": "seasonal", "label": "Seasonal adjustments", "amount": 0}, {"type": "fee", "label": "Fees", "amount": 500}], "couponDiscount": 0, "nightly_prices": [{"date": "2026-01-12", "price": 11808, "labels": [], "base_price": 11808, "min_nights": 2}, {"date": "2026-01-13", "price": 11808, "labels": [], "base_price": 11808, "min_nights": 2}, {"date": "2026-01-14", "price": 11808, "labels": [], "base_price": 11808, "min_nights": 2}], "taxesFeesTotal": 500, "taxes_and_fees": {"fees": [{"name": "Cleaning fee", "amount": 500, "source": "base_fee"}], "taxes": []}, "total_discount": 0, "baseNightlyTotal": 35424, "applied_promotion": null, "applied_card_offer": null, "applied_promo_code": null, "base_nights_amount": 35424, "eligible_promotions": [], "eligible_card_offers": [], "specialOfferDiscount": 0, "total_before_discount": 35924, "seasonalAdjustmentsTotal": 0}	35424.00	500.00	0.00	0.00	\N	\N	2026-01-09 22:40:36.602+03	{}	\N	\N	\N	\N	\N	f		256	4	3	2	not_ready	\N	\N	\N	{"total": 35924, "coupon": null, "extras": [], "nights": 3, "check_in": "2026-01-12", "currency": "INR", "taxTotal": 0, "breakdown": {"base_quote": {"guests": 2, "nights": 3, "totals": {"fees": 500, "taxes": 4501.2771999999995, "total": 40425.2772, "discount": 0, "feeBreakdown": {"service_fee": 0, "cleaning_fee": 500, "extra_guest_fee": 0}, "roomSubtotal": 35424, "baseRoomSubtotal": 35424}, "checkIn": "2026-01-12", "nightly": [{"date": "2026-01-12", "price": 11808, "minNights": 2}, {"date": "2026-01-13", "price": 11808, "minNights": 2}, {"date": "2026-01-14", "price": 11808, "minNights": 2}], "checkOut": "2026-01-15", "currency": "INR", "propertyId": 74, "minNightsRule": 2}, "card_offers": [], "length_discount": 0, "promotions_considered": [], "special_offers_considered": []}, "check_out": "2026-01-15", "discounts": [], "feesTotal": 500, "fees_total": 500, "grandTotal": 35924, "extrasTotal": 0, "property_id": 74, "taxes_total": 0, "guests_count": 2, "roomSubtotal": 35424, "applied_rules": [], "discountTotal": 0, "total_payable": 35924, "breakdownItems": [{"type": "base", "label": "Base nights", "amount": 35424}, {"type": "seasonal", "label": "Seasonal adjustments", "amount": 0}, {"type": "fee", "label": "Fees", "amount": 500}], "couponDiscount": 0, "nightly_prices": [{"date": "2026-01-12", "price": 11808, "labels": [], "base_price": 11808, "min_nights": 2}, {"date": "2026-01-13", "price": 11808, "labels": [], "base_price": 11808, "min_nights": 2}, {"date": "2026-01-14", "price": 11808, "labels": [], "base_price": 11808, "min_nights": 2}], "taxesFeesTotal": 500, "taxes_and_fees": {"fees": [{"name": "Cleaning fee", "amount": 500, "source": "base_fee"}], "taxes": []}, "total_discount": 0, "baseNightlyTotal": 35424, "applied_promotion": null, "applied_card_offer": null, "applied_promo_code": null, "base_nights_amount": 35424, "eligible_promotions": [], "eligible_card_offers": [], "specialOfferDiscount": 0, "total_before_discount": 35924, "seasonalAdjustmentsTotal": 0}	\N	\N	\N	\N	CREATED	3592400	\N	1
16	HVL-L6Y7YJ	property	84	\N	Guest	\N	\N	2026-01-15	2026-01-17	\N	\N	2	\N	25907.00	INR	pending	pending		2026-01-10 01:26:49.34925+03	2026-01-10 01:26:49.34925+03	\N	\N	{"total": 25907, "coupon": null, "extras": [], "nights": 2, "check_in": "2026-01-15", "currency": "INR", "taxTotal": 0, "breakdown": {"base_quote": {"guests": 2, "nights": 2, "totals": {"fees": 1153, "taxes": 4230.6131, "total": 30137.6131, "discount": 0, "feeBreakdown": {"service_fee": 0, "cleaning_fee": 1153, "extra_guest_fee": 0}, "roomSubtotal": 24754, "baseRoomSubtotal": 24754}, "checkIn": "2026-01-15", "nightly": [{"date": "2026-01-15", "price": 11252, "minNights": 2}, {"date": "2026-01-16", "price": 13502, "minNights": 2}], "checkOut": "2026-01-17", "currency": "INR", "propertyId": 84, "minNightsRule": 2}, "card_offers": [], "length_discount": 0, "promotions_considered": [], "special_offers_considered": []}, "check_out": "2026-01-17", "discounts": [], "feesTotal": 1153, "fees_total": 1153, "grandTotal": 25907, "extrasTotal": 0, "property_id": 84, "taxes_total": 0, "guests_count": 2, "roomSubtotal": 24754, "applied_rules": [], "discountTotal": 0, "total_payable": 25907, "breakdownItems": [{"type": "base", "label": "Base nights", "amount": 24754}, {"type": "seasonal", "label": "Seasonal adjustments", "amount": 0}, {"type": "fee", "label": "Fees", "amount": 1153}], "couponDiscount": 0, "nightly_prices": [{"date": "2026-01-15", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-01-16", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}], "taxesFeesTotal": 1153, "taxes_and_fees": {"fees": [{"name": "Cleaning fee", "amount": 1153, "source": "base_fee"}], "taxes": []}, "total_discount": 0, "baseNightlyTotal": 24754, "applied_promotion": null, "applied_card_offer": null, "applied_promo_code": null, "base_nights_amount": 24754, "eligible_promotions": [], "eligible_card_offers": [], "specialOfferDiscount": 0, "total_before_discount": 25907, "seasonalAdjustmentsTotal": 0}	24754.00	1153.00	0.00	0.00	\N	\N	2026-01-10 01:56:49.346+03	{}	\N	\N	\N	\N	\N	f		266	\N	2	2	not_ready	\N	\N	\N	{"total": 25907, "coupon": null, "extras": [], "nights": 2, "check_in": "2026-01-15", "currency": "INR", "taxTotal": 0, "breakdown": {"base_quote": {"guests": 2, "nights": 2, "totals": {"fees": 1153, "taxes": 4230.6131, "total": 30137.6131, "discount": 0, "feeBreakdown": {"service_fee": 0, "cleaning_fee": 1153, "extra_guest_fee": 0}, "roomSubtotal": 24754, "baseRoomSubtotal": 24754}, "checkIn": "2026-01-15", "nightly": [{"date": "2026-01-15", "price": 11252, "minNights": 2}, {"date": "2026-01-16", "price": 13502, "minNights": 2}], "checkOut": "2026-01-17", "currency": "INR", "propertyId": 84, "minNightsRule": 2}, "card_offers": [], "length_discount": 0, "promotions_considered": [], "special_offers_considered": []}, "check_out": "2026-01-17", "discounts": [], "feesTotal": 1153, "fees_total": 1153, "grandTotal": 25907, "extrasTotal": 0, "property_id": 84, "taxes_total": 0, "guests_count": 2, "roomSubtotal": 24754, "applied_rules": [], "discountTotal": 0, "total_payable": 25907, "breakdownItems": [{"type": "base", "label": "Base nights", "amount": 24754}, {"type": "seasonal", "label": "Seasonal adjustments", "amount": 0}, {"type": "fee", "label": "Fees", "amount": 1153}], "couponDiscount": 0, "nightly_prices": [{"date": "2026-01-15", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-01-16", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}], "taxesFeesTotal": 1153, "taxes_and_fees": {"fees": [{"name": "Cleaning fee", "amount": 1153, "source": "base_fee"}], "taxes": []}, "total_discount": 0, "baseNightlyTotal": 24754, "applied_promotion": null, "applied_card_offer": null, "applied_promo_code": null, "base_nights_amount": 24754, "eligible_promotions": [], "eligible_card_offers": [], "specialOfferDiscount": 0, "total_before_discount": 25907, "seasonalAdjustmentsTotal": 0}	\N	\N	\N	\N	CREATED	2590700	\N	1
17	HVL-Y2V0F0	property	84	\N	Guest	\N	\N	2026-01-15	2026-01-17	\N	\N	2	\N	25907.00	INR	pending	pending		2026-01-10 03:24:25.42468+03	2026-01-10 03:24:25.42468+03	\N	\N	{"total": 25907, "coupon": null, "extras": [], "nights": 2, "check_in": "2026-01-15", "currency": "INR", "taxTotal": 0, "breakdown": {"base_quote": {"guests": 2, "nights": 2, "totals": {"fees": 1153, "taxes": 4230.6131, "total": 30137.6131, "discount": 0, "feeBreakdown": {"service_fee": 0, "cleaning_fee": 1153, "extra_guest_fee": 0}, "roomSubtotal": 24754, "baseRoomSubtotal": 24754}, "checkIn": "2026-01-15", "nightly": [{"date": "2026-01-15", "price": 11252, "minNights": 2}, {"date": "2026-01-16", "price": 13502, "minNights": 2}], "checkOut": "2026-01-17", "currency": "INR", "propertyId": 84, "minNightsRule": 2}, "card_offers": [], "length_discount": 0, "promotions_considered": [], "special_offers_considered": []}, "check_out": "2026-01-17", "discounts": [], "feesTotal": 1153, "fees_total": 1153, "grandTotal": 25907, "extrasTotal": 0, "property_id": 84, "taxes_total": 0, "guests_count": 2, "roomSubtotal": 24754, "applied_rules": [], "discountTotal": 0, "total_payable": 25907, "breakdownItems": [{"type": "base", "label": "Base nights", "amount": 24754}, {"type": "seasonal", "label": "Seasonal adjustments", "amount": 0}, {"type": "fee", "label": "Fees", "amount": 1153}], "couponDiscount": 0, "nightly_prices": [{"date": "2026-01-15", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-01-16", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}], "taxesFeesTotal": 1153, "taxes_and_fees": {"fees": [{"name": "Cleaning fee", "amount": 1153, "source": "base_fee"}], "taxes": []}, "total_discount": 0, "baseNightlyTotal": 24754, "applied_promotion": null, "applied_card_offer": null, "applied_promo_code": null, "base_nights_amount": 24754, "eligible_promotions": [], "eligible_card_offers": [], "specialOfferDiscount": 0, "total_before_discount": 25907, "seasonalAdjustmentsTotal": 0}	24754.00	1153.00	0.00	0.00	\N	\N	2026-01-10 03:54:25.421+03	{}	\N	\N	\N	\N	\N	f		266	\N	2	2	not_ready	\N	\N	\N	{"total": 25907, "coupon": null, "extras": [], "nights": 2, "check_in": "2026-01-15", "currency": "INR", "taxTotal": 0, "breakdown": {"base_quote": {"guests": 2, "nights": 2, "totals": {"fees": 1153, "taxes": 4230.6131, "total": 30137.6131, "discount": 0, "feeBreakdown": {"service_fee": 0, "cleaning_fee": 1153, "extra_guest_fee": 0}, "roomSubtotal": 24754, "baseRoomSubtotal": 24754}, "checkIn": "2026-01-15", "nightly": [{"date": "2026-01-15", "price": 11252, "minNights": 2}, {"date": "2026-01-16", "price": 13502, "minNights": 2}], "checkOut": "2026-01-17", "currency": "INR", "propertyId": 84, "minNightsRule": 2}, "card_offers": [], "length_discount": 0, "promotions_considered": [], "special_offers_considered": []}, "check_out": "2026-01-17", "discounts": [], "feesTotal": 1153, "fees_total": 1153, "grandTotal": 25907, "extrasTotal": 0, "property_id": 84, "taxes_total": 0, "guests_count": 2, "roomSubtotal": 24754, "applied_rules": [], "discountTotal": 0, "total_payable": 25907, "breakdownItems": [{"type": "base", "label": "Base nights", "amount": 24754}, {"type": "seasonal", "label": "Seasonal adjustments", "amount": 0}, {"type": "fee", "label": "Fees", "amount": 1153}], "couponDiscount": 0, "nightly_prices": [{"date": "2026-01-15", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-01-16", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}], "taxesFeesTotal": 1153, "taxes_and_fees": {"fees": [{"name": "Cleaning fee", "amount": 1153, "source": "base_fee"}], "taxes": []}, "total_discount": 0, "baseNightlyTotal": 24754, "applied_promotion": null, "applied_card_offer": null, "applied_promo_code": null, "base_nights_amount": 24754, "eligible_promotions": [], "eligible_card_offers": [], "specialOfferDiscount": 0, "total_before_discount": 25907, "seasonalAdjustmentsTotal": 0}	\N	\N	\N	\N	CREATED	2590700	\N	1
18	HVL-J55ZHF	property	128	\N	Guest	guestdemo@homevilas.com	9990001111	2026-01-14	2026-01-22	\N	\N	2	\N	100000.00	INR	pending	pending		2026-01-10 17:18:30.451496+03	2026-01-10 17:18:30.451496+03	\N	4	{"total": 100000, "coupon": null, "extras": [], "nights": 8, "check_in": "2026-01-14", "currency": "INR", "taxTotal": 0, "breakdown": {"base_quote": {"guests": 2, "nights": 8, "totals": {"fees": 0, "taxes": 0, "total": 100000, "discount": 0, "feeBreakdown": {"service_fee": 0, "cleaning_fee": 0, "extra_guest_fee": 0}, "roomSubtotal": 100000, "baseRoomSubtotal": 100000}, "checkIn": "2026-01-14", "nightly": [{"date": "2026-01-14", "price": 12000, "minNights": 1}, {"date": "2026-01-15", "price": 12000, "minNights": 1}, {"date": "2026-01-16", "price": 14000, "minNights": 1}, {"date": "2026-01-17", "price": 14000, "minNights": 1}, {"date": "2026-01-18", "price": 12000, "minNights": 1}, {"date": "2026-01-19", "price": 12000, "minNights": 1}, {"date": "2026-01-20", "price": 12000, "minNights": 1}, {"date": "2026-01-21", "price": 12000, "minNights": 1}], "checkOut": "2026-01-22", "currency": "INR", "propertyId": 128, "minNightsRule": 1}, "card_offers": [], "length_discount": 0, "promotions_considered": [], "special_offers_considered": []}, "check_out": "2026-01-22", "discounts": [], "feesTotal": 0, "fees_total": 0, "grandTotal": 100000, "extrasTotal": 0, "property_id": 128, "taxes_total": 0, "guests_count": 2, "roomSubtotal": 100000, "applied_rules": [], "discountTotal": 0, "total_payable": 100000, "breakdownItems": [{"type": "base", "label": "Base nights", "amount": 100000}, {"type": "seasonal", "label": "Seasonal adjustments", "amount": 0}], "couponDiscount": 0, "nightly_prices": [{"date": "2026-01-14", "price": 12000, "labels": [], "base_price": 12000, "min_nights": 1}, {"date": "2026-01-15", "price": 12000, "labels": [], "base_price": 12000, "min_nights": 1}, {"date": "2026-01-16", "price": 14000, "labels": [], "base_price": 14000, "min_nights": 1}, {"date": "2026-01-17", "price": 14000, "labels": [], "base_price": 14000, "min_nights": 1}, {"date": "2026-01-18", "price": 12000, "labels": [], "base_price": 12000, "min_nights": 1}, {"date": "2026-01-19", "price": 12000, "labels": [], "base_price": 12000, "min_nights": 1}, {"date": "2026-01-20", "price": 12000, "labels": [], "base_price": 12000, "min_nights": 1}, {"date": "2026-01-21", "price": 12000, "labels": [], "base_price": 12000, "min_nights": 1}], "taxesFeesTotal": 0, "taxes_and_fees": {"fees": [], "taxes": []}, "total_discount": 0, "baseNightlyTotal": 100000, "applied_promotion": null, "applied_card_offer": null, "applied_promo_code": null, "base_nights_amount": 100000, "eligible_promotions": [], "eligible_card_offers": [], "specialOfferDiscount": 0, "total_before_discount": 100000, "seasonalAdjustmentsTotal": 0}	100000.00	0.00	0.00	0.00	\N	\N	2026-01-10 17:48:30.45+03	{}	\N	\N	\N	\N	\N	f		310	4	8	2	not_ready	\N	\N	\N	{"total": 100000, "coupon": null, "extras": [], "nights": 8, "check_in": "2026-01-14", "currency": "INR", "taxTotal": 0, "breakdown": {"base_quote": {"guests": 2, "nights": 8, "totals": {"fees": 0, "taxes": 0, "total": 100000, "discount": 0, "feeBreakdown": {"service_fee": 0, "cleaning_fee": 0, "extra_guest_fee": 0}, "roomSubtotal": 100000, "baseRoomSubtotal": 100000}, "checkIn": "2026-01-14", "nightly": [{"date": "2026-01-14", "price": 12000, "minNights": 1}, {"date": "2026-01-15", "price": 12000, "minNights": 1}, {"date": "2026-01-16", "price": 14000, "minNights": 1}, {"date": "2026-01-17", "price": 14000, "minNights": 1}, {"date": "2026-01-18", "price": 12000, "minNights": 1}, {"date": "2026-01-19", "price": 12000, "minNights": 1}, {"date": "2026-01-20", "price": 12000, "minNights": 1}, {"date": "2026-01-21", "price": 12000, "minNights": 1}], "checkOut": "2026-01-22", "currency": "INR", "propertyId": 128, "minNightsRule": 1}, "card_offers": [], "length_discount": 0, "promotions_considered": [], "special_offers_considered": []}, "check_out": "2026-01-22", "discounts": [], "feesTotal": 0, "fees_total": 0, "grandTotal": 100000, "extrasTotal": 0, "property_id": 128, "taxes_total": 0, "guests_count": 2, "roomSubtotal": 100000, "applied_rules": [], "discountTotal": 0, "total_payable": 100000, "breakdownItems": [{"type": "base", "label": "Base nights", "amount": 100000}, {"type": "seasonal", "label": "Seasonal adjustments", "amount": 0}], "couponDiscount": 0, "nightly_prices": [{"date": "2026-01-14", "price": 12000, "labels": [], "base_price": 12000, "min_nights": 1}, {"date": "2026-01-15", "price": 12000, "labels": [], "base_price": 12000, "min_nights": 1}, {"date": "2026-01-16", "price": 14000, "labels": [], "base_price": 14000, "min_nights": 1}, {"date": "2026-01-17", "price": 14000, "labels": [], "base_price": 14000, "min_nights": 1}, {"date": "2026-01-18", "price": 12000, "labels": [], "base_price": 12000, "min_nights": 1}, {"date": "2026-01-19", "price": 12000, "labels": [], "base_price": 12000, "min_nights": 1}, {"date": "2026-01-20", "price": 12000, "labels": [], "base_price": 12000, "min_nights": 1}, {"date": "2026-01-21", "price": 12000, "labels": [], "base_price": 12000, "min_nights": 1}], "taxesFeesTotal": 0, "taxes_and_fees": {"fees": [], "taxes": []}, "total_discount": 0, "baseNightlyTotal": 100000, "applied_promotion": null, "applied_card_offer": null, "applied_promo_code": null, "base_nights_amount": 100000, "eligible_promotions": [], "eligible_card_offers": [], "specialOfferDiscount": 0, "total_before_discount": 100000, "seasonalAdjustmentsTotal": 0}	\N	\N	\N	\N	CREATED	10000000	\N	1
19	HVL-O4L0OX	property	84	\N	jia	jia@gmail.com	88889995624	2026-01-22	2026-01-24	\N	\N	2	\N	25907.00	INR	pending	pending		2026-01-12 07:05:19.362064+03	2026-01-12 07:05:19.362064+03	\N	4	{"total": 25907, "coupon": null, "extras": [], "nights": 2, "check_in": "2026-01-22", "currency": "INR", "taxTotal": 0, "breakdown": {"base_quote": {"guests": 2, "nights": 2, "totals": {"fees": 1153, "taxes": 4230.6131, "total": 30137.6131, "discount": 0, "feeBreakdown": {"service_fee": 0, "cleaning_fee": 1153, "extra_guest_fee": 0}, "roomSubtotal": 24754, "baseRoomSubtotal": 24754}, "checkIn": "2026-01-22", "nightly": [{"date": "2026-01-22", "price": 11252, "minNights": 2}, {"date": "2026-01-23", "price": 13502, "minNights": 2}], "checkOut": "2026-01-24", "currency": "INR", "propertyId": 84, "minNightsRule": 2}, "card_offers": [], "length_discount": 0, "promotions_considered": [], "special_offers_considered": []}, "check_out": "2026-01-24", "discounts": [], "feesTotal": 1153, "fees_total": 1153, "grandTotal": 25907, "extrasTotal": 0, "property_id": 84, "taxes_total": 0, "guests_count": 2, "roomSubtotal": 24754, "applied_rules": [], "discountTotal": 0, "total_payable": 25907, "breakdownItems": [{"type": "base", "label": "Base nights", "amount": 24754}, {"type": "seasonal", "label": "Seasonal adjustments", "amount": 0}, {"type": "fee", "label": "Fees", "amount": 1153}], "couponDiscount": 0, "nightly_prices": [{"date": "2026-01-22", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-01-23", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}], "taxesFeesTotal": 1153, "taxes_and_fees": {"fees": [{"name": "Cleaning fee", "amount": 1153, "source": "base_fee"}], "taxes": []}, "total_discount": 0, "baseNightlyTotal": 24754, "applied_promotion": null, "applied_card_offer": null, "applied_promo_code": null, "base_nights_amount": 24754, "eligible_promotions": [], "eligible_card_offers": [], "specialOfferDiscount": 0, "total_before_discount": 25907, "seasonalAdjustmentsTotal": 0}	24754.00	1153.00	0.00	0.00	\N	\N	2026-01-12 07:35:19.36+03	{}	\N	\N	\N	\N	\N	f		266	4	2	2	not_ready	\N	\N	\N	{"total": 25907, "coupon": null, "extras": [], "nights": 2, "check_in": "2026-01-22", "currency": "INR", "taxTotal": 0, "breakdown": {"base_quote": {"guests": 2, "nights": 2, "totals": {"fees": 1153, "taxes": 4230.6131, "total": 30137.6131, "discount": 0, "feeBreakdown": {"service_fee": 0, "cleaning_fee": 1153, "extra_guest_fee": 0}, "roomSubtotal": 24754, "baseRoomSubtotal": 24754}, "checkIn": "2026-01-22", "nightly": [{"date": "2026-01-22", "price": 11252, "minNights": 2}, {"date": "2026-01-23", "price": 13502, "minNights": 2}], "checkOut": "2026-01-24", "currency": "INR", "propertyId": 84, "minNightsRule": 2}, "card_offers": [], "length_discount": 0, "promotions_considered": [], "special_offers_considered": []}, "check_out": "2026-01-24", "discounts": [], "feesTotal": 1153, "fees_total": 1153, "grandTotal": 25907, "extrasTotal": 0, "property_id": 84, "taxes_total": 0, "guests_count": 2, "roomSubtotal": 24754, "applied_rules": [], "discountTotal": 0, "total_payable": 25907, "breakdownItems": [{"type": "base", "label": "Base nights", "amount": 24754}, {"type": "seasonal", "label": "Seasonal adjustments", "amount": 0}, {"type": "fee", "label": "Fees", "amount": 1153}], "couponDiscount": 0, "nightly_prices": [{"date": "2026-01-22", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-01-23", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}], "taxesFeesTotal": 1153, "taxes_and_fees": {"fees": [{"name": "Cleaning fee", "amount": 1153, "source": "base_fee"}], "taxes": []}, "total_discount": 0, "baseNightlyTotal": 24754, "applied_promotion": null, "applied_card_offer": null, "applied_promo_code": null, "base_nights_amount": 24754, "eligible_promotions": [], "eligible_card_offers": [], "specialOfferDiscount": 0, "total_before_discount": 25907, "seasonalAdjustmentsTotal": 0}	\N	\N	\N	\N	CREATED	\N	\N	1
20	HV-DEMO-REQUEST-MKAOFJND	property	128	\N	Guest Demo	guestdemo@homevilas.com	9990001111	2026-01-22	2026-01-24	\N	\N	2	1	50000.00	INR	paid	cancel_requested	\N	2026-01-12 07:42:34.811287+03	2026-01-12 07:42:35.254423+03	\N	4	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N	f	\N	310	4	\N	\N	not_ready	\N	guest	Guest demo request	{"taxes": 0, "total": 50000, "service_fee": 2000, "cleaning_fee": 1000}	\N	\N	\N	\N	CREATED	5000000	\N	1
21	HV-DEMO-APPROVED-MKAOFJND	property	128	\N	Guest Demo	guestdemo@homevilas.com	9990001111	2026-01-24	2026-01-26	\N	\N	2	1	52000.00	INR	paid	cancelled	\N	2026-01-12 07:42:35.304078+03	2026-01-12 07:49:21.753881+03	\N	4	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N	f	\N	310	4	\N	\N	not_ready	\N	guest	Guest demo approved	{"taxes": 0, "total": 52000, "service_fee": 2000, "cleaning_fee": 1000}	\N	\N	\N	\N	CREATED	5200000	\N	1
24	HVL-NCLAJJ	property	84	\N	Guest	guestdemo@homevilas.com	9990001111	2026-01-21	2026-01-23	\N	\N	2	\N	23657.00	INR	pending	pending		2026-01-12 08:54:32.852259+03	2026-01-12 08:54:32.852259+03	\N	4	{"total": 23657, "coupon": null, "extras": [], "nights": 2, "check_in": "2026-01-21", "currency": "INR", "taxTotal": 0, "breakdown": {"base_quote": {"guests": 2, "nights": 2, "totals": {"fees": 1153, "taxes": 3863.1880999999994, "total": 27520.1881, "discount": 0, "feeBreakdown": {"service_fee": 0, "cleaning_fee": 1153, "extra_guest_fee": 0}, "roomSubtotal": 22504, "baseRoomSubtotal": 22504}, "checkIn": "2026-01-21", "nightly": [{"date": "2026-01-21", "price": 11252, "minNights": 2}, {"date": "2026-01-22", "price": 11252, "minNights": 2}], "checkOut": "2026-01-23", "currency": "INR", "propertyId": 84, "minNightsRule": 2}, "card_offers": [], "length_discount": 0, "promotions_considered": [], "special_offers_considered": []}, "check_out": "2026-01-23", "discounts": [], "feesTotal": 1153, "fees_total": 1153, "grandTotal": 23657, "extrasTotal": 0, "property_id": 84, "taxes_total": 0, "guests_count": 2, "roomSubtotal": 22504, "applied_rules": [], "discountTotal": 0, "total_payable": 23657, "breakdownItems": [{"type": "base", "label": "Base nights", "amount": 22504}, {"type": "seasonal", "label": "Seasonal adjustments", "amount": 0}, {"type": "fee", "label": "Fees", "amount": 1153}], "couponDiscount": 0, "nightly_prices": [{"date": "2026-01-21", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-01-22", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}], "taxesFeesTotal": 1153, "taxes_and_fees": {"fees": [{"name": "Cleaning fee", "amount": 1153, "source": "base_fee"}], "taxes": []}, "total_discount": 0, "baseNightlyTotal": 22504, "applied_promotion": null, "applied_card_offer": null, "applied_promo_code": null, "base_nights_amount": 22504, "eligible_promotions": [], "eligible_card_offers": [], "specialOfferDiscount": 0, "total_before_discount": 23657, "seasonalAdjustmentsTotal": 0}	22504.00	1153.00	0.00	0.00	\N	\N	2026-01-12 09:24:32.85+03	{}	\N	\N	\N	\N	\N	f		266	4	2	2	not_ready	\N	\N	\N	{"total": 23657, "coupon": null, "extras": [], "nights": 2, "check_in": "2026-01-21", "currency": "INR", "taxTotal": 0, "breakdown": {"base_quote": {"guests": 2, "nights": 2, "totals": {"fees": 1153, "taxes": 3863.1880999999994, "total": 27520.1881, "discount": 0, "feeBreakdown": {"service_fee": 0, "cleaning_fee": 1153, "extra_guest_fee": 0}, "roomSubtotal": 22504, "baseRoomSubtotal": 22504}, "checkIn": "2026-01-21", "nightly": [{"date": "2026-01-21", "price": 11252, "minNights": 2}, {"date": "2026-01-22", "price": 11252, "minNights": 2}], "checkOut": "2026-01-23", "currency": "INR", "propertyId": 84, "minNightsRule": 2}, "card_offers": [], "length_discount": 0, "promotions_considered": [], "special_offers_considered": []}, "check_out": "2026-01-23", "discounts": [], "feesTotal": 1153, "fees_total": 1153, "grandTotal": 23657, "extrasTotal": 0, "property_id": 84, "taxes_total": 0, "guests_count": 2, "roomSubtotal": 22504, "applied_rules": [], "discountTotal": 0, "total_payable": 23657, "breakdownItems": [{"type": "base", "label": "Base nights", "amount": 22504}, {"type": "seasonal", "label": "Seasonal adjustments", "amount": 0}, {"type": "fee", "label": "Fees", "amount": 1153}], "couponDiscount": 0, "nightly_prices": [{"date": "2026-01-21", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-01-22", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}], "taxesFeesTotal": 1153, "taxes_and_fees": {"fees": [{"name": "Cleaning fee", "amount": 1153, "source": "base_fee"}], "taxes": []}, "total_discount": 0, "baseNightlyTotal": 22504, "applied_promotion": null, "applied_card_offer": null, "applied_promo_code": null, "base_nights_amount": 22504, "eligible_promotions": [], "eligible_card_offers": [], "specialOfferDiscount": 0, "total_before_discount": 23657, "seasonalAdjustmentsTotal": 0}	\N	\N	\N	\N	CREATED	\N	\N	1
25	HVL-Q6OT1D	property	84	\N	deepak	deepak@gmail.com	8877555562	2026-01-28	2026-01-30	\N	\N	2	\N	23657.00	INR	pending	pending		2026-01-12 09:16:11.231688+03	2026-01-12 09:16:11.231688+03	\N	4	{"total": 23657, "coupon": null, "extras": [], "nights": 2, "check_in": "2026-01-28", "currency": "INR", "taxTotal": 0, "breakdown": {"base_quote": {"guests": 2, "nights": 2, "totals": {"fees": 1153, "taxes": 3863.1880999999994, "total": 27520.1881, "discount": 0, "feeBreakdown": {"service_fee": 0, "cleaning_fee": 1153, "extra_guest_fee": 0}, "roomSubtotal": 22504, "baseRoomSubtotal": 22504}, "checkIn": "2026-01-28", "nightly": [{"date": "2026-01-28", "price": 11252, "minNights": 2}, {"date": "2026-01-29", "price": 11252, "minNights": 2}], "checkOut": "2026-01-30", "currency": "INR", "propertyId": 84, "minNightsRule": 2}, "card_offers": [], "length_discount": 0, "promotions_considered": [], "special_offers_considered": []}, "check_out": "2026-01-30", "discounts": [], "feesTotal": 1153, "fees_total": 1153, "grandTotal": 23657, "extrasTotal": 0, "property_id": 84, "taxes_total": 0, "guests_count": 2, "roomSubtotal": 22504, "applied_rules": [], "discountTotal": 0, "total_payable": 23657, "breakdownItems": [{"type": "base", "label": "Base nights", "amount": 22504}, {"type": "seasonal", "label": "Seasonal adjustments", "amount": 0}, {"type": "fee", "label": "Fees", "amount": 1153}], "couponDiscount": 0, "nightly_prices": [{"date": "2026-01-28", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-01-29", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}], "taxesFeesTotal": 1153, "taxes_and_fees": {"fees": [{"name": "Cleaning fee", "amount": 1153, "source": "base_fee"}], "taxes": []}, "total_discount": 0, "baseNightlyTotal": 22504, "applied_promotion": null, "applied_card_offer": null, "applied_promo_code": null, "base_nights_amount": 22504, "eligible_promotions": [], "eligible_card_offers": [], "specialOfferDiscount": 0, "total_before_discount": 23657, "seasonalAdjustmentsTotal": 0}	22504.00	1153.00	0.00	0.00	\N	\N	2026-01-12 09:46:11.228+03	{}	\N	\N	\N	\N	\N	f		266	4	2	2	not_ready	\N	\N	\N	{"total": 23657, "coupon": null, "extras": [], "nights": 2, "check_in": "2026-01-28", "currency": "INR", "taxTotal": 0, "breakdown": {"base_quote": {"guests": 2, "nights": 2, "totals": {"fees": 1153, "taxes": 3863.1880999999994, "total": 27520.1881, "discount": 0, "feeBreakdown": {"service_fee": 0, "cleaning_fee": 1153, "extra_guest_fee": 0}, "roomSubtotal": 22504, "baseRoomSubtotal": 22504}, "checkIn": "2026-01-28", "nightly": [{"date": "2026-01-28", "price": 11252, "minNights": 2}, {"date": "2026-01-29", "price": 11252, "minNights": 2}], "checkOut": "2026-01-30", "currency": "INR", "propertyId": 84, "minNightsRule": 2}, "card_offers": [], "length_discount": 0, "promotions_considered": [], "special_offers_considered": []}, "check_out": "2026-01-30", "discounts": [], "feesTotal": 1153, "fees_total": 1153, "grandTotal": 23657, "extrasTotal": 0, "property_id": 84, "taxes_total": 0, "guests_count": 2, "roomSubtotal": 22504, "applied_rules": [], "discountTotal": 0, "total_payable": 23657, "breakdownItems": [{"type": "base", "label": "Base nights", "amount": 22504}, {"type": "seasonal", "label": "Seasonal adjustments", "amount": 0}, {"type": "fee", "label": "Fees", "amount": 1153}], "couponDiscount": 0, "nightly_prices": [{"date": "2026-01-28", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-01-29", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}], "taxesFeesTotal": 1153, "taxes_and_fees": {"fees": [{"name": "Cleaning fee", "amount": 1153, "source": "base_fee"}], "taxes": []}, "total_discount": 0, "baseNightlyTotal": 22504, "applied_promotion": null, "applied_card_offer": null, "applied_promo_code": null, "base_nights_amount": 22504, "eligible_promotions": [], "eligible_card_offers": [], "specialOfferDiscount": 0, "total_before_discount": 23657, "seasonalAdjustmentsTotal": 0}	\N	\N	\N	\N	CREATED	\N	\N	1
26	HVL-7DU3XG	property	84	\N	Guest	guestdemo@homevilas.com	9990001111	2026-02-18	2026-03-26	\N	\N	2	\N	428725.00	INR	pending	pending		2026-01-12 09:25:18.93707+03	2026-01-12 09:25:18.93707+03	\N	4	{"total": 428725, "coupon": null, "extras": [], "nights": 36, "check_in": "2026-02-18", "currency": "INR", "taxTotal": 0, "breakdown": {"base_quote": {"guests": 2, "nights": 36, "totals": {"fees": 1153, "taxes": 70010.7925, "total": 498735.7925, "discount": 0, "feeBreakdown": {"service_fee": 0, "cleaning_fee": 1153, "extra_guest_fee": 0}, "roomSubtotal": 427572, "baseRoomSubtotal": 427572}, "checkIn": "2026-02-18", "nightly": [{"date": "2026-02-18", "price": 11252, "minNights": 2}, {"date": "2026-02-19", "price": 11252, "minNights": 2}, {"date": "2026-02-20", "price": 13502, "minNights": 2}, {"date": "2026-02-21", "price": 13502, "minNights": 2}, {"date": "2026-02-22", "price": 11252, "minNights": 2}, {"date": "2026-02-23", "price": 11252, "minNights": 2}, {"date": "2026-02-24", "price": 11252, "minNights": 2}, {"date": "2026-02-25", "price": 11252, "minNights": 2}, {"date": "2026-02-26", "price": 11252, "minNights": 2}, {"date": "2026-02-27", "price": 13502, "minNights": 2}, {"date": "2026-02-28", "price": 13502, "minNights": 2}, {"date": "2026-03-01", "price": 11252, "minNights": 2}, {"date": "2026-03-02", "price": 11252, "minNights": 2}, {"date": "2026-03-03", "price": 11252, "minNights": 2}, {"date": "2026-03-04", "price": 11252, "minNights": 2}, {"date": "2026-03-05", "price": 11252, "minNights": 2}, {"date": "2026-03-06", "price": 13502, "minNights": 2}, {"date": "2026-03-07", "price": 13502, "minNights": 2}, {"date": "2026-03-08", "price": 11252, "minNights": 2}, {"date": "2026-03-09", "price": 11252, "minNights": 2}, {"date": "2026-03-10", "price": 11252, "minNights": 2}, {"date": "2026-03-11", "price": 11252, "minNights": 2}, {"date": "2026-03-12", "price": 11252, "minNights": 2}, {"date": "2026-03-13", "price": 13502, "minNights": 2}, {"date": "2026-03-14", "price": 13502, "minNights": 2}, {"date": "2026-03-15", "price": 11252, "minNights": 2}, {"date": "2026-03-16", "price": 11252, "minNights": 2}, {"date": "2026-03-17", "price": 11252, "minNights": 2}, {"date": "2026-03-18", "price": 11252, "minNights": 2}, {"date": "2026-03-19", "price": 11252, "minNights": 2}, {"date": "2026-03-20", "price": 13502, "minNights": 2}, {"date": "2026-03-21", "price": 13502, "minNights": 2}, {"date": "2026-03-22", "price": 11252, "minNights": 2}, {"date": "2026-03-23", "price": 11252, "minNights": 2}, {"date": "2026-03-24", "price": 11252, "minNights": 2}, {"date": "2026-03-25", "price": 11252, "minNights": 2}], "checkOut": "2026-03-26", "currency": "INR", "propertyId": 84, "minNightsRule": 2}, "card_offers": [], "length_discount": 0, "promotions_considered": [], "special_offers_considered": []}, "check_out": "2026-03-26", "discounts": [], "feesTotal": 1153, "fees_total": 1153, "grandTotal": 428725, "extrasTotal": 0, "property_id": 84, "taxes_total": 0, "guests_count": 2, "roomSubtotal": 427572, "applied_rules": [], "discountTotal": 0, "total_payable": 428725, "breakdownItems": [{"type": "base", "label": "Base nights", "amount": 427572}, {"type": "seasonal", "label": "Seasonal adjustments", "amount": 0}, {"type": "fee", "label": "Fees", "amount": 1153}], "couponDiscount": 0, "nightly_prices": [{"date": "2026-02-18", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-02-19", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-02-20", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-02-21", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-02-22", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-02-23", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-02-24", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-02-25", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-02-26", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-02-27", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-02-28", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-03-01", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-02", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-03", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-04", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-05", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-06", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-03-07", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-03-08", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-09", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-10", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-11", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-12", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-13", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-03-14", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-03-15", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-16", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-17", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-18", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-19", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-20", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-03-21", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-03-22", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-23", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-24", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-25", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}], "taxesFeesTotal": 1153, "taxes_and_fees": {"fees": [{"name": "Cleaning fee", "amount": 1153, "source": "base_fee"}], "taxes": []}, "total_discount": 0, "baseNightlyTotal": 427572, "applied_promotion": null, "applied_card_offer": null, "applied_promo_code": null, "base_nights_amount": 427572, "eligible_promotions": [], "eligible_card_offers": [], "specialOfferDiscount": 0, "total_before_discount": 428725, "seasonalAdjustmentsTotal": 0}	427572.00	1153.00	0.00	0.00	\N	\N	2026-01-12 09:55:18.936+03	{}	\N	\N	\N	\N	\N	f		266	4	36	2	not_ready	\N	\N	\N	{"total": 428725, "coupon": null, "extras": [], "nights": 36, "check_in": "2026-02-18", "currency": "INR", "taxTotal": 0, "breakdown": {"base_quote": {"guests": 2, "nights": 36, "totals": {"fees": 1153, "taxes": 70010.7925, "total": 498735.7925, "discount": 0, "feeBreakdown": {"service_fee": 0, "cleaning_fee": 1153, "extra_guest_fee": 0}, "roomSubtotal": 427572, "baseRoomSubtotal": 427572}, "checkIn": "2026-02-18", "nightly": [{"date": "2026-02-18", "price": 11252, "minNights": 2}, {"date": "2026-02-19", "price": 11252, "minNights": 2}, {"date": "2026-02-20", "price": 13502, "minNights": 2}, {"date": "2026-02-21", "price": 13502, "minNights": 2}, {"date": "2026-02-22", "price": 11252, "minNights": 2}, {"date": "2026-02-23", "price": 11252, "minNights": 2}, {"date": "2026-02-24", "price": 11252, "minNights": 2}, {"date": "2026-02-25", "price": 11252, "minNights": 2}, {"date": "2026-02-26", "price": 11252, "minNights": 2}, {"date": "2026-02-27", "price": 13502, "minNights": 2}, {"date": "2026-02-28", "price": 13502, "minNights": 2}, {"date": "2026-03-01", "price": 11252, "minNights": 2}, {"date": "2026-03-02", "price": 11252, "minNights": 2}, {"date": "2026-03-03", "price": 11252, "minNights": 2}, {"date": "2026-03-04", "price": 11252, "minNights": 2}, {"date": "2026-03-05", "price": 11252, "minNights": 2}, {"date": "2026-03-06", "price": 13502, "minNights": 2}, {"date": "2026-03-07", "price": 13502, "minNights": 2}, {"date": "2026-03-08", "price": 11252, "minNights": 2}, {"date": "2026-03-09", "price": 11252, "minNights": 2}, {"date": "2026-03-10", "price": 11252, "minNights": 2}, {"date": "2026-03-11", "price": 11252, "minNights": 2}, {"date": "2026-03-12", "price": 11252, "minNights": 2}, {"date": "2026-03-13", "price": 13502, "minNights": 2}, {"date": "2026-03-14", "price": 13502, "minNights": 2}, {"date": "2026-03-15", "price": 11252, "minNights": 2}, {"date": "2026-03-16", "price": 11252, "minNights": 2}, {"date": "2026-03-17", "price": 11252, "minNights": 2}, {"date": "2026-03-18", "price": 11252, "minNights": 2}, {"date": "2026-03-19", "price": 11252, "minNights": 2}, {"date": "2026-03-20", "price": 13502, "minNights": 2}, {"date": "2026-03-21", "price": 13502, "minNights": 2}, {"date": "2026-03-22", "price": 11252, "minNights": 2}, {"date": "2026-03-23", "price": 11252, "minNights": 2}, {"date": "2026-03-24", "price": 11252, "minNights": 2}, {"date": "2026-03-25", "price": 11252, "minNights": 2}], "checkOut": "2026-03-26", "currency": "INR", "propertyId": 84, "minNightsRule": 2}, "card_offers": [], "length_discount": 0, "promotions_considered": [], "special_offers_considered": []}, "check_out": "2026-03-26", "discounts": [], "feesTotal": 1153, "fees_total": 1153, "grandTotal": 428725, "extrasTotal": 0, "property_id": 84, "taxes_total": 0, "guests_count": 2, "roomSubtotal": 427572, "applied_rules": [], "discountTotal": 0, "total_payable": 428725, "breakdownItems": [{"type": "base", "label": "Base nights", "amount": 427572}, {"type": "seasonal", "label": "Seasonal adjustments", "amount": 0}, {"type": "fee", "label": "Fees", "amount": 1153}], "couponDiscount": 0, "nightly_prices": [{"date": "2026-02-18", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-02-19", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-02-20", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-02-21", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-02-22", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-02-23", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-02-24", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-02-25", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-02-26", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-02-27", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-02-28", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-03-01", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-02", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-03", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-04", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-05", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-06", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-03-07", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-03-08", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-09", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-10", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-11", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-12", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-13", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-03-14", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-03-15", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-16", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-17", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-18", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-19", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-20", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-03-21", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-03-22", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-23", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-24", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-03-25", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}], "taxesFeesTotal": 1153, "taxes_and_fees": {"fees": [{"name": "Cleaning fee", "amount": 1153, "source": "base_fee"}], "taxes": []}, "total_discount": 0, "baseNightlyTotal": 427572, "applied_promotion": null, "applied_card_offer": null, "applied_promo_code": null, "base_nights_amount": 427572, "eligible_promotions": [], "eligible_card_offers": [], "specialOfferDiscount": 0, "total_before_discount": 428725, "seasonalAdjustmentsTotal": 0}	\N	\N	\N	\N	CREATED	\N	\N	1
27	HVL-KRVPFV	property	84	\N	Guest	guestdemo@homevilas.com	9990001111	2026-01-28	2026-01-30	\N	\N	2	\N	23657.00	INR	pending	pending		2026-01-12 10:04:31.663547+03	2026-01-12 10:04:31.663547+03	\N	4	{"total": 23657, "coupon": null, "extras": [], "nights": 2, "check_in": "2026-01-28", "currency": "INR", "taxTotal": 0, "breakdown": {"base_quote": {"guests": 2, "nights": 2, "totals": {"fees": 1153, "taxes": 3863.1880999999994, "total": 27520.1881, "discount": 0, "feeBreakdown": {"service_fee": 0, "cleaning_fee": 1153, "extra_guest_fee": 0}, "roomSubtotal": 22504, "baseRoomSubtotal": 22504}, "checkIn": "2026-01-28", "nightly": [{"date": "2026-01-28", "price": 11252, "minNights": 2}, {"date": "2026-01-29", "price": 11252, "minNights": 2}], "checkOut": "2026-01-30", "currency": "INR", "propertyId": 84, "minNightsRule": 2}, "card_offers": [], "length_discount": 0, "promotions_considered": [], "special_offers_considered": []}, "check_out": "2026-01-30", "discounts": [], "feesTotal": 1153, "fees_total": 1153, "grandTotal": 23657, "extrasTotal": 0, "property_id": 84, "taxes_total": 0, "guests_count": 2, "roomSubtotal": 22504, "applied_rules": [], "discountTotal": 0, "total_payable": 23657, "breakdownItems": [{"type": "base", "label": "Base nights", "amount": 22504}, {"type": "seasonal", "label": "Seasonal adjustments", "amount": 0}, {"type": "fee", "label": "Fees", "amount": 1153}], "couponDiscount": 0, "nightly_prices": [{"date": "2026-01-28", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-01-29", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}], "taxesFeesTotal": 1153, "taxes_and_fees": {"fees": [{"name": "Cleaning fee", "amount": 1153, "source": "base_fee"}], "taxes": []}, "total_discount": 0, "baseNightlyTotal": 22504, "applied_promotion": null, "applied_card_offer": null, "applied_promo_code": null, "base_nights_amount": 22504, "eligible_promotions": [], "eligible_card_offers": [], "specialOfferDiscount": 0, "total_before_discount": 23657, "seasonalAdjustmentsTotal": 0}	22504.00	1153.00	0.00	0.00	\N	\N	2026-01-12 10:34:31.662+03	{}	\N	\N	\N	\N	\N	f		266	4	2	2	not_ready	\N	\N	\N	{"total": 23657, "coupon": null, "extras": [], "nights": 2, "check_in": "2026-01-28", "currency": "INR", "taxTotal": 0, "breakdown": {"base_quote": {"guests": 2, "nights": 2, "totals": {"fees": 1153, "taxes": 3863.1880999999994, "total": 27520.1881, "discount": 0, "feeBreakdown": {"service_fee": 0, "cleaning_fee": 1153, "extra_guest_fee": 0}, "roomSubtotal": 22504, "baseRoomSubtotal": 22504}, "checkIn": "2026-01-28", "nightly": [{"date": "2026-01-28", "price": 11252, "minNights": 2}, {"date": "2026-01-29", "price": 11252, "minNights": 2}], "checkOut": "2026-01-30", "currency": "INR", "propertyId": 84, "minNightsRule": 2}, "card_offers": [], "length_discount": 0, "promotions_considered": [], "special_offers_considered": []}, "check_out": "2026-01-30", "discounts": [], "feesTotal": 1153, "fees_total": 1153, "grandTotal": 23657, "extrasTotal": 0, "property_id": 84, "taxes_total": 0, "guests_count": 2, "roomSubtotal": 22504, "applied_rules": [], "discountTotal": 0, "total_payable": 23657, "breakdownItems": [{"type": "base", "label": "Base nights", "amount": 22504}, {"type": "seasonal", "label": "Seasonal adjustments", "amount": 0}, {"type": "fee", "label": "Fees", "amount": 1153}], "couponDiscount": 0, "nightly_prices": [{"date": "2026-01-28", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-01-29", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}], "taxesFeesTotal": 1153, "taxes_and_fees": {"fees": [{"name": "Cleaning fee", "amount": 1153, "source": "base_fee"}], "taxes": []}, "total_discount": 0, "baseNightlyTotal": 22504, "applied_promotion": null, "applied_card_offer": null, "applied_promo_code": null, "base_nights_amount": 22504, "eligible_promotions": [], "eligible_card_offers": [], "specialOfferDiscount": 0, "total_before_discount": 23657, "seasonalAdjustmentsTotal": 0}	\N	\N	\N	\N	CREATED	\N	\N	1
28	HVL-ML66JH	property	84	\N	Guest	guestdemo@homevilas.com	9990001111	2026-01-22	2026-01-30	\N	\N	2	\N	95669.00	INR	pending	pending		2026-01-12 21:17:57.08124+03	2026-01-12 21:17:57.08124+03	\N	4	{"total": 95669, "coupon": null, "extras": [], "nights": 8, "check_in": "2026-01-22", "currency": "INR", "taxTotal": 0, "breakdown": {"base_quote": {"guests": 2, "nights": 8, "totals": {"fees": 1153, "taxes": 15622.747699999998, "total": 111291.74769999999, "discount": 0, "feeBreakdown": {"service_fee": 0, "cleaning_fee": 1153, "extra_guest_fee": 0}, "roomSubtotal": 94516, "baseRoomSubtotal": 94516}, "checkIn": "2026-01-22", "nightly": [{"date": "2026-01-22", "price": 11252, "minNights": 2}, {"date": "2026-01-23", "price": 13502, "minNights": 2}, {"date": "2026-01-24", "price": 13502, "minNights": 2}, {"date": "2026-01-25", "price": 11252, "minNights": 2}, {"date": "2026-01-26", "price": 11252, "minNights": 2}, {"date": "2026-01-27", "price": 11252, "minNights": 2}, {"date": "2026-01-28", "price": 11252, "minNights": 2}, {"date": "2026-01-29", "price": 11252, "minNights": 2}], "checkOut": "2026-01-30", "currency": "INR", "propertyId": 84, "minNightsRule": 2}, "card_offers": [], "length_discount": 0, "promotions_considered": [], "special_offers_considered": []}, "check_out": "2026-01-30", "discounts": [], "feesTotal": 1153, "fees_total": 1153, "grandTotal": 95669, "extrasTotal": 0, "property_id": 84, "taxes_total": 0, "guests_count": 2, "roomSubtotal": 94516, "applied_rules": [], "discountTotal": 0, "total_payable": 95669, "breakdownItems": [{"type": "base", "label": "Base nights", "amount": 94516}, {"type": "seasonal", "label": "Seasonal adjustments", "amount": 0}, {"type": "fee", "label": "Fees", "amount": 1153}], "couponDiscount": 0, "nightly_prices": [{"date": "2026-01-22", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-01-23", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-01-24", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-01-25", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-01-26", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-01-27", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-01-28", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-01-29", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}], "taxesFeesTotal": 1153, "taxes_and_fees": {"fees": [{"name": "Cleaning fee", "amount": 1153, "source": "base_fee"}], "taxes": []}, "total_discount": 0, "baseNightlyTotal": 94516, "applied_promotion": null, "applied_card_offer": null, "applied_promo_code": null, "base_nights_amount": 94516, "eligible_promotions": [], "eligible_card_offers": [], "specialOfferDiscount": 0, "total_before_discount": 95669, "seasonalAdjustmentsTotal": 0}	94516.00	1153.00	0.00	0.00	\N	\N	2026-01-12 21:47:57.077+03	{}	\N	\N	\N	\N	\N	f		266	4	8	2	not_ready	\N	\N	\N	{"total": 95669, "coupon": null, "extras": [], "nights": 8, "check_in": "2026-01-22", "currency": "INR", "taxTotal": 0, "breakdown": {"base_quote": {"guests": 2, "nights": 8, "totals": {"fees": 1153, "taxes": 15622.747699999998, "total": 111291.74769999999, "discount": 0, "feeBreakdown": {"service_fee": 0, "cleaning_fee": 1153, "extra_guest_fee": 0}, "roomSubtotal": 94516, "baseRoomSubtotal": 94516}, "checkIn": "2026-01-22", "nightly": [{"date": "2026-01-22", "price": 11252, "minNights": 2}, {"date": "2026-01-23", "price": 13502, "minNights": 2}, {"date": "2026-01-24", "price": 13502, "minNights": 2}, {"date": "2026-01-25", "price": 11252, "minNights": 2}, {"date": "2026-01-26", "price": 11252, "minNights": 2}, {"date": "2026-01-27", "price": 11252, "minNights": 2}, {"date": "2026-01-28", "price": 11252, "minNights": 2}, {"date": "2026-01-29", "price": 11252, "minNights": 2}], "checkOut": "2026-01-30", "currency": "INR", "propertyId": 84, "minNightsRule": 2}, "card_offers": [], "length_discount": 0, "promotions_considered": [], "special_offers_considered": []}, "check_out": "2026-01-30", "discounts": [], "feesTotal": 1153, "fees_total": 1153, "grandTotal": 95669, "extrasTotal": 0, "property_id": 84, "taxes_total": 0, "guests_count": 2, "roomSubtotal": 94516, "applied_rules": [], "discountTotal": 0, "total_payable": 95669, "breakdownItems": [{"type": "base", "label": "Base nights", "amount": 94516}, {"type": "seasonal", "label": "Seasonal adjustments", "amount": 0}, {"type": "fee", "label": "Fees", "amount": 1153}], "couponDiscount": 0, "nightly_prices": [{"date": "2026-01-22", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-01-23", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-01-24", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-01-25", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-01-26", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-01-27", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-01-28", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-01-29", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}], "taxesFeesTotal": 1153, "taxes_and_fees": {"fees": [{"name": "Cleaning fee", "amount": 1153, "source": "base_fee"}], "taxes": []}, "total_discount": 0, "baseNightlyTotal": 94516, "applied_promotion": null, "applied_card_offer": null, "applied_promo_code": null, "base_nights_amount": 94516, "eligible_promotions": [], "eligible_card_offers": [], "specialOfferDiscount": 0, "total_before_discount": 95669, "seasonalAdjustmentsTotal": 0}	\N	\N	\N	\N	CREATED	\N	\N	1
29	HVL-4LP081	property	85	\N	Guest	\N	\N	2026-01-26	2026-01-29	\N	\N	2	\N	40082.00	INR	pending	pending		2026-01-12 21:53:01.854775+03	2026-01-12 21:53:01.854775+03	\N	\N	{"total": 40082, "coupon": null, "extras": [], "nights": 3, "check_in": "2026-01-26", "currency": "INR", "taxTotal": 0, "breakdown": {"base_quote": {"guests": 2, "nights": 3, "totals": {"fees": 1187, "taxes": 4008.2, "total": 44090.2, "discount": 0, "feeBreakdown": {"service_fee": 0, "cleaning_fee": 1187, "extra_guest_fee": 0}, "roomSubtotal": 38895, "baseRoomSubtotal": 38895}, "checkIn": "2026-01-26", "nightly": [{"date": "2026-01-26", "price": 12965, "minNights": 2}, {"date": "2026-01-27", "price": 12965, "minNights": 2}, {"date": "2026-01-28", "price": 12965, "minNights": 2}], "checkOut": "2026-01-29", "currency": "INR", "propertyId": 85, "minNightsRule": 2}, "card_offers": [], "length_discount": 0, "promotions_considered": [], "special_offers_considered": []}, "check_out": "2026-01-29", "discounts": [], "feesTotal": 1187, "fees_total": 1187, "grandTotal": 40082, "extrasTotal": 0, "property_id": 85, "taxes_total": 0, "guests_count": 2, "roomSubtotal": 38895, "applied_rules": [], "discountTotal": 0, "total_payable": 40082, "breakdownItems": [{"type": "base", "label": "Base nights", "amount": 38895}, {"type": "seasonal", "label": "Seasonal adjustments", "amount": 0}, {"type": "fee", "label": "Fees", "amount": 1187}], "couponDiscount": 0, "nightly_prices": [{"date": "2026-01-26", "price": 12965, "labels": [], "base_price": 12965, "min_nights": 2}, {"date": "2026-01-27", "price": 12965, "labels": [], "base_price": 12965, "min_nights": 2}, {"date": "2026-01-28", "price": 12965, "labels": [], "base_price": 12965, "min_nights": 2}], "taxesFeesTotal": 1187, "taxes_and_fees": {"fees": [{"name": "Cleaning fee", "amount": 1187, "source": "base_fee"}], "taxes": []}, "total_discount": 0, "baseNightlyTotal": 38895, "applied_promotion": null, "applied_card_offer": null, "applied_promo_code": null, "base_nights_amount": 38895, "eligible_promotions": [], "eligible_card_offers": [], "specialOfferDiscount": 0, "total_before_discount": 40082, "seasonalAdjustmentsTotal": 0}	38895.00	1187.00	0.00	0.00	\N	\N	2026-01-12 22:23:01.853+03	{}	\N	\N	\N	\N	\N	f		267	\N	3	2	not_ready	\N	\N	\N	{"total": 40082, "coupon": null, "extras": [], "nights": 3, "check_in": "2026-01-26", "currency": "INR", "taxTotal": 0, "breakdown": {"base_quote": {"guests": 2, "nights": 3, "totals": {"fees": 1187, "taxes": 4008.2, "total": 44090.2, "discount": 0, "feeBreakdown": {"service_fee": 0, "cleaning_fee": 1187, "extra_guest_fee": 0}, "roomSubtotal": 38895, "baseRoomSubtotal": 38895}, "checkIn": "2026-01-26", "nightly": [{"date": "2026-01-26", "price": 12965, "minNights": 2}, {"date": "2026-01-27", "price": 12965, "minNights": 2}, {"date": "2026-01-28", "price": 12965, "minNights": 2}], "checkOut": "2026-01-29", "currency": "INR", "propertyId": 85, "minNightsRule": 2}, "card_offers": [], "length_discount": 0, "promotions_considered": [], "special_offers_considered": []}, "check_out": "2026-01-29", "discounts": [], "feesTotal": 1187, "fees_total": 1187, "grandTotal": 40082, "extrasTotal": 0, "property_id": 85, "taxes_total": 0, "guests_count": 2, "roomSubtotal": 38895, "applied_rules": [], "discountTotal": 0, "total_payable": 40082, "breakdownItems": [{"type": "base", "label": "Base nights", "amount": 38895}, {"type": "seasonal", "label": "Seasonal adjustments", "amount": 0}, {"type": "fee", "label": "Fees", "amount": 1187}], "couponDiscount": 0, "nightly_prices": [{"date": "2026-01-26", "price": 12965, "labels": [], "base_price": 12965, "min_nights": 2}, {"date": "2026-01-27", "price": 12965, "labels": [], "base_price": 12965, "min_nights": 2}, {"date": "2026-01-28", "price": 12965, "labels": [], "base_price": 12965, "min_nights": 2}], "taxesFeesTotal": 1187, "taxes_and_fees": {"fees": [{"name": "Cleaning fee", "amount": 1187, "source": "base_fee"}], "taxes": []}, "total_discount": 0, "baseNightlyTotal": 38895, "applied_promotion": null, "applied_card_offer": null, "applied_promo_code": null, "base_nights_amount": 38895, "eligible_promotions": [], "eligible_card_offers": [], "specialOfferDiscount": 0, "total_before_discount": 40082, "seasonalAdjustmentsTotal": 0}	\N	\N	\N	\N	CREATED	\N	\N	1
30	HVL-GM3J4Y	property	85	\N	deepak	deepak@gmail.com	8995584525	2026-01-21	2026-01-30	\N	\N	2	\N	123058.00	INR	pending	pending	\N	2026-01-18 18:49:25.046986+03	2026-01-18 18:49:25.046986+03	\N	\N	{"total": 123058, "coupon": null, "extras": [], "nights": 9, "check_in": "2026-01-21", "currency": "INR", "taxTotal": 0, "breakdown": {"base_quote": {"guests": 2, "nights": 9, "totals": {"fees": 1187, "taxes": 12305.8, "total": 135363.8, "discount": 0, "feeBreakdown": {"service_fee": 0, "cleaning_fee": 1187, "extra_guest_fee": 0}, "roomSubtotal": 121871, "baseRoomSubtotal": 121871}, "checkIn": "2026-01-21", "nightly": [{"date": "2026-01-21", "price": 12965, "minNights": 2}, {"date": "2026-01-22", "price": 12965, "minNights": 2}, {"date": "2026-01-23", "price": 15558, "minNights": 2}, {"date": "2026-01-24", "price": 15558, "minNights": 2}, {"date": "2026-01-25", "price": 12965, "minNights": 2}, {"date": "2026-01-26", "price": 12965, "minNights": 2}, {"date": "2026-01-27", "price": 12965, "minNights": 2}, {"date": "2026-01-28", "price": 12965, "minNights": 2}, {"date": "2026-01-29", "price": 12965, "minNights": 2}], "checkOut": "2026-01-30", "currency": "INR", "propertyId": 85, "minNightsRule": 2}, "card_offers": [], "length_discount": 0, "promotions_considered": [], "special_offers_considered": []}, "check_out": "2026-01-30", "discounts": [], "feesTotal": 1187, "fees_total": 1187, "grandTotal": 123058, "extrasTotal": 0, "property_id": 85, "taxes_total": 0, "guests_count": 2, "roomSubtotal": 121871, "applied_rules": [], "discountTotal": 0, "total_payable": 123058, "breakdownItems": [{"type": "base", "label": "Base nights", "amount": 121871}, {"type": "seasonal", "label": "Seasonal adjustments", "amount": 0}, {"type": "fee", "label": "Fees", "amount": 1187}], "couponDiscount": 0, "nightly_prices": [{"date": "2026-01-21", "price": 12965, "labels": [], "base_price": 12965, "min_nights": 2}, {"date": "2026-01-22", "price": 12965, "labels": [], "base_price": 12965, "min_nights": 2}, {"date": "2026-01-23", "price": 15558, "labels": [], "base_price": 15558, "min_nights": 2}, {"date": "2026-01-24", "price": 15558, "labels": [], "base_price": 15558, "min_nights": 2}, {"date": "2026-01-25", "price": 12965, "labels": [], "base_price": 12965, "min_nights": 2}, {"date": "2026-01-26", "price": 12965, "labels": [], "base_price": 12965, "min_nights": 2}, {"date": "2026-01-27", "price": 12965, "labels": [], "base_price": 12965, "min_nights": 2}, {"date": "2026-01-28", "price": 12965, "labels": [], "base_price": 12965, "min_nights": 2}, {"date": "2026-01-29", "price": 12965, "labels": [], "base_price": 12965, "min_nights": 2}], "taxesFeesTotal": 1187, "taxes_and_fees": {"fees": [{"name": "Cleaning fee", "amount": 1187, "source": "base_fee"}], "taxes": []}, "total_discount": 0, "baseNightlyTotal": 121871, "applied_promotion": null, "applied_card_offer": null, "applied_promo_code": null, "base_nights_amount": 121871, "eligible_promotions": [], "eligible_card_offers": [], "specialOfferDiscount": 0, "total_before_discount": 123058, "seasonalAdjustmentsTotal": 0}	121871.00	1187.00	0.00	0.00	\N	\N	2026-01-18 19:19:25.019+03	{}	\N	\N	\N	\N	\N	f	\N	267	\N	9	2	not_ready	\N	\N	\N	{"total": 123058, "coupon": null, "extras": [], "nights": 9, "check_in": "2026-01-21", "currency": "INR", "taxTotal": 0, "breakdown": {"base_quote": {"guests": 2, "nights": 9, "totals": {"fees": 1187, "taxes": 12305.8, "total": 135363.8, "discount": 0, "feeBreakdown": {"service_fee": 0, "cleaning_fee": 1187, "extra_guest_fee": 0}, "roomSubtotal": 121871, "baseRoomSubtotal": 121871}, "checkIn": "2026-01-21", "nightly": [{"date": "2026-01-21", "price": 12965, "minNights": 2}, {"date": "2026-01-22", "price": 12965, "minNights": 2}, {"date": "2026-01-23", "price": 15558, "minNights": 2}, {"date": "2026-01-24", "price": 15558, "minNights": 2}, {"date": "2026-01-25", "price": 12965, "minNights": 2}, {"date": "2026-01-26", "price": 12965, "minNights": 2}, {"date": "2026-01-27", "price": 12965, "minNights": 2}, {"date": "2026-01-28", "price": 12965, "minNights": 2}, {"date": "2026-01-29", "price": 12965, "minNights": 2}], "checkOut": "2026-01-30", "currency": "INR", "propertyId": 85, "minNightsRule": 2}, "card_offers": [], "length_discount": 0, "promotions_considered": [], "special_offers_considered": []}, "check_out": "2026-01-30", "discounts": [], "feesTotal": 1187, "fees_total": 1187, "grandTotal": 123058, "extrasTotal": 0, "property_id": 85, "taxes_total": 0, "guests_count": 2, "roomSubtotal": 121871, "applied_rules": [], "discountTotal": 0, "total_payable": 123058, "breakdownItems": [{"type": "base", "label": "Base nights", "amount": 121871}, {"type": "seasonal", "label": "Seasonal adjustments", "amount": 0}, {"type": "fee", "label": "Fees", "amount": 1187}], "couponDiscount": 0, "nightly_prices": [{"date": "2026-01-21", "price": 12965, "labels": [], "base_price": 12965, "min_nights": 2}, {"date": "2026-01-22", "price": 12965, "labels": [], "base_price": 12965, "min_nights": 2}, {"date": "2026-01-23", "price": 15558, "labels": [], "base_price": 15558, "min_nights": 2}, {"date": "2026-01-24", "price": 15558, "labels": [], "base_price": 15558, "min_nights": 2}, {"date": "2026-01-25", "price": 12965, "labels": [], "base_price": 12965, "min_nights": 2}, {"date": "2026-01-26", "price": 12965, "labels": [], "base_price": 12965, "min_nights": 2}, {"date": "2026-01-27", "price": 12965, "labels": [], "base_price": 12965, "min_nights": 2}, {"date": "2026-01-28", "price": 12965, "labels": [], "base_price": 12965, "min_nights": 2}, {"date": "2026-01-29", "price": 12965, "labels": [], "base_price": 12965, "min_nights": 2}], "taxesFeesTotal": 1187, "taxes_and_fees": {"fees": [{"name": "Cleaning fee", "amount": 1187, "source": "base_fee"}], "taxes": []}, "total_discount": 0, "baseNightlyTotal": 121871, "applied_promotion": null, "applied_card_offer": null, "applied_promo_code": null, "base_nights_amount": 121871, "eligible_promotions": [], "eligible_card_offers": [], "specialOfferDiscount": 0, "total_before_discount": 123058, "seasonalAdjustmentsTotal": 0}	\N	\N	\N	\N	CREATED	\N	\N	1
31	HVL-J4ZHGZ	property	84	\N	deepak	deepak@gmail.com	8995584525	2026-01-30	2026-02-03	\N	\N	2	\N	50661.00	INR	pending	pending	\N	2026-01-18 19:06:12.341497+03	2026-01-18 19:11:15.926723+03	\N	\N	{"total": 50661, "coupon": null, "extras": [], "nights": 4, "check_in": "2026-01-30", "currency": "INR", "taxTotal": 0, "breakdown": {"base_quote": {"guests": 2, "nights": 4, "totals": {"fees": 1153, "taxes": 8272.941299999999, "total": 58933.9413, "discount": 0, "feeBreakdown": {"service_fee": 0, "cleaning_fee": 1153, "extra_guest_fee": 0}, "roomSubtotal": 49508, "baseRoomSubtotal": 49508}, "checkIn": "2026-01-30", "nightly": [{"date": "2026-01-30", "price": 13502, "minNights": 2}, {"date": "2026-01-31", "price": 13502, "minNights": 2}, {"date": "2026-02-01", "price": 11252, "minNights": 2}, {"date": "2026-02-02", "price": 11252, "minNights": 2}], "checkOut": "2026-02-03", "currency": "INR", "propertyId": 84, "minNightsRule": 2}, "card_offers": [], "length_discount": 0, "promotions_considered": [], "special_offers_considered": []}, "check_out": "2026-02-03", "discounts": [], "feesTotal": 1153, "fees_total": 1153, "grandTotal": 50661, "extrasTotal": 0, "property_id": 84, "taxes_total": 0, "guests_count": 2, "roomSubtotal": 49508, "applied_rules": [], "discountTotal": 0, "total_payable": 50661, "breakdownItems": [{"type": "base", "label": "Base nights", "amount": 49508}, {"type": "seasonal", "label": "Seasonal adjustments", "amount": 0}, {"type": "fee", "label": "Fees", "amount": 1153}], "couponDiscount": 0, "nightly_prices": [{"date": "2026-01-30", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-01-31", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-02-01", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-02-02", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}], "taxesFeesTotal": 1153, "taxes_and_fees": {"fees": [{"name": "Cleaning fee", "amount": 1153, "source": "base_fee"}], "taxes": []}, "total_discount": 0, "baseNightlyTotal": 49508, "applied_promotion": null, "applied_card_offer": null, "applied_promo_code": null, "base_nights_amount": 49508, "eligible_promotions": [], "eligible_card_offers": [], "specialOfferDiscount": 0, "total_before_discount": 50661, "seasonalAdjustmentsTotal": 0}	49508.00	1153.00	0.00	0.00	\N	\N	2026-01-18 19:36:12.339+03	{}	\N	\N	\N	\N	\N	f	\N	266	\N	3	2	not_ready	\N	\N	\N	{"total": 50661, "coupon": null, "extras": [], "nights": 4, "check_in": "2026-01-30", "currency": "INR", "taxTotal": 0, "breakdown": {"base_quote": {"guests": 2, "nights": 4, "totals": {"fees": 1153, "taxes": 8272.941299999999, "total": 58933.9413, "discount": 0, "feeBreakdown": {"service_fee": 0, "cleaning_fee": 1153, "extra_guest_fee": 0}, "roomSubtotal": 49508, "baseRoomSubtotal": 49508}, "checkIn": "2026-01-30", "nightly": [{"date": "2026-01-30", "price": 13502, "minNights": 2}, {"date": "2026-01-31", "price": 13502, "minNights": 2}, {"date": "2026-02-01", "price": 11252, "minNights": 2}, {"date": "2026-02-02", "price": 11252, "minNights": 2}], "checkOut": "2026-02-03", "currency": "INR", "propertyId": 84, "minNightsRule": 2}, "card_offers": [], "length_discount": 0, "promotions_considered": [], "special_offers_considered": []}, "check_out": "2026-02-03", "discounts": [], "feesTotal": 1153, "fees_total": 1153, "grandTotal": 50661, "extrasTotal": 0, "property_id": 84, "taxes_total": 0, "guests_count": 2, "roomSubtotal": 49508, "applied_rules": [], "discountTotal": 0, "total_payable": 50661, "breakdownItems": [{"type": "base", "label": "Base nights", "amount": 49508}, {"type": "seasonal", "label": "Seasonal adjustments", "amount": 0}, {"type": "fee", "label": "Fees", "amount": 1153}], "couponDiscount": 0, "nightly_prices": [{"date": "2026-01-30", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-01-31", "price": 13502, "labels": [], "base_price": 13502, "min_nights": 2}, {"date": "2026-02-01", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}, {"date": "2026-02-02", "price": 11252, "labels": [], "base_price": 11252, "min_nights": 2}], "taxesFeesTotal": 1153, "taxes_and_fees": {"fees": [{"name": "Cleaning fee", "amount": 1153, "source": "base_fee"}], "taxes": []}, "total_discount": 0, "baseNightlyTotal": 49508, "applied_promotion": null, "applied_card_offer": null, "applied_promo_code": null, "base_nights_amount": 49508, "eligible_promotions": [], "eligible_card_offers": [], "specialOfferDiscount": 0, "total_before_discount": 50661, "seasonalAdjustmentsTotal": 0}	\N	\N	\N	\N	CREATED	\N	\N	1
33	HVL-493A8C	property	86	\N	jeetu	jeetu@gmail.com	8897254611	2026-02-24	2026-02-26	\N	\N	2	\N	28000.00	INR	paid	confirmed	\N	2026-01-19 19:32:31.438+03	2026-01-19 19:44:05.84924+03	\N	4	{"total": 28000, "nights": 2, "currency": "INR", "taxTotal": 3000, "feesTotal": 0, "extrasTotal": 0, "roomSubtotal": 25000, "discountTotal": 0}	25000.00	0.00	3000.00	0.00	\N	\N	\N	\N	\N	\N	\N	\N	\N	f	\N	268	4	2	2	not_ready	\N	\N	\N	{"base": 25000, "fees": 0, "taxes": 3000, "total": 28000, "discounts": 0, "fee_breakdown": {}}	\N	\N	\N	\N	CREATED	\N	\N	1
34	HV-DEMO-BOOK-2	property	128	\N	Repeat Guest	repeat@example.com	+919999999999	2026-01-22	2026-01-23	\N	\N	3	\N	18000.00	INR	paid	completed	\N	2026-01-20 17:51:06.696068+03	2026-01-20 17:51:06.696068+03	\N	\N	\N	16000.00	800.00	1200.00	0.00	\N	\N	\N	\N	\N	\N	\N	\N	\N	f	\N	310	\N	\N	\N	pending	\N	\N	\N	{"base": 16000, "fees": 800, "taxes": 1200, "total": 18000, "discounts": 0}	\N	\N	\N	\N	CREATED	\N	\N	1
\.


--
