-- WARNING: This schema is for context only and is not meant to be run.
-- Table order and constraints may not be valid for execution.

CREATE TABLE public.User (
  id integer NOT NULL DEFAULT nextval('"User_id_seq"'::regclass),
  name text NOT NULL,
  username text,
  email text NOT NULL,
  password text NOT NULL,
  role text NOT NULL DEFAULT 'member'::text,
  createdAt timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updatedAt timestamp without time zone NOT NULL,
  CONSTRAINT User_pkey PRIMARY KEY (id)
);
CREATE TABLE public.Tour (
  id integer NOT NULL DEFAULT nextval('"Tour_id_seq"'::regclass),
  title text NOT NULL,
  location text,
  price text,
  duration text,
  badge text,
  imageUrl text,
  excerpt text,
  description text,
  isFeatured boolean NOT NULL DEFAULT false,
  sortOrder integer NOT NULL DEFAULT 0,
  createdAt timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updatedAt timestamp without time zone NOT NULL,
  CONSTRAINT Tour_pkey PRIMARY KEY (id)
);
CREATE TABLE public.Flight (
  id integer NOT NULL DEFAULT nextval('"Flight_id_seq"'::regclass),
  airline text NOT NULL,
  flightNumber text,
  origin text NOT NULL,
  destination text NOT NULL,
  departureInfo text,
  price text,
  badge text,
  imageUrl text,
  excerpt text,
  description text,
  isFeatured boolean NOT NULL DEFAULT false,
  sortOrder integer NOT NULL DEFAULT 0,
  createdAt timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updatedAt timestamp without time zone NOT NULL,
  CONSTRAINT Flight_pkey PRIMARY KEY (id)
);
CREATE TABLE public.Article (
  id integer NOT NULL DEFAULT nextval('"Article_id_seq"'::regclass),
  title text NOT NULL,
  excerpt text,
  content text,
  imageUrl text,
  publishedAt timestamp without time zone,
  label text,
  isFeatured boolean NOT NULL DEFAULT false,
  sortOrder integer NOT NULL DEFAULT 0,
  createdAt timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updatedAt timestamp without time zone NOT NULL,
  CONSTRAINT Article_pkey PRIMARY KEY (id)
);
CREATE TABLE public.Client (
  id integer NOT NULL DEFAULT nextval('"Client_id_seq"'::regclass),
  name text NOT NULL,
  logoUrl text,
  isFeatured boolean NOT NULL DEFAULT false,
  sortOrder integer NOT NULL DEFAULT 0,
  createdAt timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updatedAt timestamp without time zone NOT NULL,
  CONSTRAINT Client_pkey PRIMARY KEY (id)
);
CREATE TABLE public.Gallery (
  id integer NOT NULL DEFAULT nextval('"Gallery_id_seq"'::regclass),
  title text,
  imageUrl text NOT NULL,
  category text,
  isFeatured boolean NOT NULL DEFAULT false,
  sortOrder integer NOT NULL DEFAULT 0,
  createdAt timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updatedAt timestamp without time zone NOT NULL,
  CONSTRAINT Gallery_pkey PRIMARY KEY (id)
);
CREATE TABLE public.HeroImage (
  id integer NOT NULL DEFAULT nextval('"HeroImage_id_seq"'::regclass),
  imageUrl text NOT NULL,
  sortOrder integer NOT NULL DEFAULT 0,
  createdAt timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
  CONSTRAINT HeroImage_pkey PRIMARY KEY (id)
);
CREATE TABLE public.TeamMember (
  id integer NOT NULL DEFAULT nextval('"TeamMember_id_seq"'::regclass),
  name text NOT NULL,
  role text,
  photoUrl text,
  sortOrder integer NOT NULL DEFAULT 0,
  createdAt timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updatedAt timestamp without time zone NOT NULL,
  CONSTRAINT TeamMember_pkey PRIMARY KEY (id)
);
CREATE TABLE public.SiteSetting (
  id integer NOT NULL DEFAULT nextval('"SiteSetting_id_seq"'::regclass),
  aboutTitle text,
  aboutSummary text,
  aboutBody text,
  contactAddress text,
  contactPhone text,
  contactEmail text,
  contactHours text,
  contactMapUrl text,
  orderWhatsappNumber text,
  chatWhatsappNumber text,
  homeHeroTitle text,
  homeHeroSubtitle text,
  tourHeroTitle text,
  tourHeroSubtitle text,
  flightHeroTitle text,
  flightHeroSubtitle text,
  aboutHeroTitle text,
  aboutHeroSubtitle text,
  galleryHeroTitle text,
  galleryHeroSubtitle text,
  contactHeroTitle text,
  contactHeroSubtitle text,
  eventHeroSubtitle text,
  eventHeroTitle text,
  CONSTRAINT SiteSetting_pkey PRIMARY KEY (id)
);
CREATE TABLE public._prisma_migrations (
  id character varying NOT NULL,
  checksum character varying NOT NULL,
  finished_at timestamp with time zone,
  migration_name character varying NOT NULL,
  logs text,
  rolled_back_at timestamp with time zone,
  started_at timestamp with time zone NOT NULL DEFAULT now(),
  applied_steps_count integer NOT NULL DEFAULT 0,
  CONSTRAINT _prisma_migrations_pkey PRIMARY KEY (id)
);
CREATE TABLE public.Event (
  id integer NOT NULL DEFAULT nextval('"Event_id_seq"'::regclass),
  title text NOT NULL,
  location text,
  date text,
  price text,
  badge text,
  imageUrl text,
  excerpt text,
  description text,
  isFeatured boolean NOT NULL DEFAULT false,
  sortOrder integer NOT NULL DEFAULT 0,
  createdAt timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updatedAt timestamp without time zone NOT NULL,
  CONSTRAINT Event_pkey PRIMARY KEY (id)
);
CREATE TABLE public.ContactMessage (
  id integer NOT NULL DEFAULT nextval('"ContactMessage_id_seq"'::regclass),
  name text NOT NULL,
  email text NOT NULL,
  phone text,
  message text NOT NULL,
  status text NOT NULL DEFAULT 'unread'::text,
  createdAt timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
  CONSTRAINT ContactMessage_pkey PRIMARY KEY (id)
);
CREATE TABLE public.CarRental (
  id integer NOT NULL DEFAULT nextval('"CarRental_id_seq"'::regclass),
  name text NOT NULL,
  type text,
  capacity text,
  price text,
  includeDriver boolean NOT NULL DEFAULT true,
  imageUrl text,
  description text,
  isFeatured boolean NOT NULL DEFAULT false,
  sortOrder integer NOT NULL DEFAULT 0,
  createdAt timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updatedAt timestamp without time zone NOT NULL,
  CONSTRAINT CarRental_pkey PRIMARY KEY (id)
);
CREATE TABLE public.Testimonial (
  id integer NOT NULL DEFAULT nextval('"Testimonial_id_seq"'::regclass),
  author text NOT NULL,
  location text,
  text text NOT NULL,
  rating integer NOT NULL DEFAULT 5,
  avatarUrl text,
  isFeatured boolean NOT NULL DEFAULT false,
  sortOrder integer NOT NULL DEFAULT 0,
  createdAt timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updatedAt timestamp without time zone NOT NULL,
  CONSTRAINT Testimonial_pkey PRIMARY KEY (id)
);
CREATE TABLE public.Destination (
  id integer NOT NULL DEFAULT nextval('"Destination_id_seq"'::regclass),
  name text NOT NULL,
  badge text,
  duration text,
  price text,
  imageUrl text,
  isFeatured boolean NOT NULL DEFAULT false,
  sortOrder integer NOT NULL DEFAULT 0,
  createdAt timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updatedAt timestamp without time zone NOT NULL,
  CONSTRAINT Destination_pkey PRIMARY KEY (id)
);
CREATE TABLE public.Promo (
  id integer NOT NULL DEFAULT nextval('"Promo_id_seq"'::regclass),
  title text NOT NULL,
  discountText text NOT NULL,
  description text,
  endDate timestamp without time zone,
  imageUrl text,
  isActive boolean NOT NULL DEFAULT true,
  createdAt timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updatedAt timestamp without time zone NOT NULL,
  CONSTRAINT Promo_pkey PRIMARY KEY (id)
);
CREATE TABLE public.WhatsappTemplate (
  id integer NOT NULL DEFAULT nextval('"WhatsappTemplate_id_seq"'::regclass),
  serviceType text NOT NULL,
  message text NOT NULL,
  createdAt timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updatedAt timestamp without time zone NOT NULL,
  CONSTRAINT WhatsappTemplate_pkey PRIMARY KEY (id)
);