--
--

\restrict X9eufb8gkaGbZVaWxCxwYJ2uA3Y7eg8xT5yJtz9uti4s07csR2G61Fxxsi0V29s


SELECT pg_catalog.set_config('search_path', '', false);

--
-- Name: CampaignStatus; Type: TYPE; Schema: public; Owner: alhadet_clean
--

CREATE TYPE public."CampaignStatus" AS ENUM (
    'DRAFT',
    'SCHEDULED',
    'SENDING',
    'COMPLETED',
    'CANCELLED'
);


ALTER TYPE public."CampaignStatus" OWNER TO alhadet_clean;

--
-- Name: ClientType; Type: TYPE; Schema: public; Owner: alhadet_clean
--

CREATE TYPE public."ClientType" AS ENUM (
    'PARTICULIER',
    'PROFESSIONAL'
);


ALTER TYPE public."ClientType" OWNER TO alhadet_clean;

--
-- Name: ColorMode; Type: TYPE; Schema: public; Owner: alhadet_clean
--

CREATE TYPE public."ColorMode" AS ENUM (
    'CMYK',
    'RGB',
    'BOTH'
);


ALTER TYPE public."ColorMode" OWNER TO alhadet_clean;

--
-- Name: DeliveryPricingMode; Type: TYPE; Schema: public; Owner: alhadet_clean
--

CREATE TYPE public."DeliveryPricingMode" AS ENUM (
    'FIXED',
    'PERCENTAGE',
    'PER_QUANTITY',
    'PER_M2',
    'PER_ML'
);


ALTER TYPE public."DeliveryPricingMode" OWNER TO alhadet_clean;

--
-- Name: EmailStatus; Type: TYPE; Schema: public; Owner: alhadet_clean
--

CREATE TYPE public."EmailStatus" AS ENUM (
    'PENDING',
    'SENT',
    'FAILED'
);


ALTER TYPE public."EmailStatus" OWNER TO alhadet_clean;

--
-- Name: EmailTrigger; Type: TYPE; Schema: public; Owner: alhadet_clean
--

CREATE TYPE public."EmailTrigger" AS ENUM (
    'ORDER_CREATED',
    'ORDER_CONFIRMED',
    'ORDER_IN_PRODUCTION',
    'ORDER_READY',
    'ORDER_DELIVERED',
    'ORDER_CANCELLED',
    'PRODUCTION_FILE_VALIDATED',
    'PRODUCTION_FILE_REJECTED',
    'WELCOME',
    'PASSWORD_RESET'
);


ALTER TYPE public."EmailTrigger" OWNER TO alhadet_clean;

--
-- Name: FileStatus; Type: TYPE; Schema: public; Owner: alhadet_clean
--

CREATE TYPE public."FileStatus" AS ENUM (
    'PENDING_REVIEW',
    'APPROVED',
    'REJECTED'
);


ALTER TYPE public."FileStatus" OWNER TO alhadet_clean;

--
-- Name: MenuItemType; Type: TYPE; Schema: public; Owner: alhadet_clean
--

CREATE TYPE public."MenuItemType" AS ENUM (
    'CUSTOM',
    'PAGE',
    'CATEGORY',
    'PRODUCT'
);


ALTER TYPE public."MenuItemType" OWNER TO alhadet_clean;

--
-- Name: NoteEntityType; Type: TYPE; Schema: public; Owner: alhadet_clean
--

CREATE TYPE public."NoteEntityType" AS ENUM (
    'ORDER',
    'PRODUCTION',
    'USER',
    'STAFF',
    'TICKET',
    'PRODUCT'
);


ALTER TYPE public."NoteEntityType" OWNER TO alhadet_clean;

--
-- Name: NotificationType; Type: TYPE; Schema: public; Owner: alhadet_clean
--

CREATE TYPE public."NotificationType" AS ENUM (
    'INFO',
    'SUCCESS',
    'WARNING',
    'ERROR',
    'ORDER_NEW',
    'ORDER_STATUS',
    'PRODUCTION_NEW',
    'PRODUCTION_STATUS',
    'TICKET_NEW',
    'TICKET_UPDATE',
    'TICKET_ASSIGNED',
    'NOTE_MENTION',
    'ASSIGNMENT'
);


ALTER TYPE public."NotificationType" OWNER TO alhadet_clean;

--
-- Name: OptionPricingMode; Type: TYPE; Schema: public; Owner: alhadet_clean
--

CREATE TYPE public."OptionPricingMode" AS ENUM (
    'FIXED',
    'PACK',
    'PER_QUANTITY',
    'PER_M2',
    'PER_ML'
);


ALTER TYPE public."OptionPricingMode" OWNER TO alhadet_clean;

--
-- Name: OrderRevisionType; Type: TYPE; Schema: public; Owner: alhadet_clean
--

CREATE TYPE public."OrderRevisionType" AS ENUM (
    'CREATED',
    'UPDATED',
    'STATUS_CHANGED',
    'PRICE_ADJUSTED',
    'CANCELLED'
);


ALTER TYPE public."OrderRevisionType" OWNER TO alhadet_clean;

--
-- Name: OrderStatus; Type: TYPE; Schema: public; Owner: alhadet_clean
--

CREATE TYPE public."OrderStatus" AS ENUM (
    'PENDING',
    'CONFIRMED',
    'IN_PRODUCTION',
    'READY',
    'DELIVERED',
    'CANCELLED'
);


ALTER TYPE public."OrderStatus" OWNER TO alhadet_clean;

--
-- Name: PageStatus; Type: TYPE; Schema: public; Owner: alhadet_clean
--

CREATE TYPE public."PageStatus" AS ENUM (
    'DRAFT',
    'PUBLISHED'
);


ALTER TYPE public."PageStatus" OWNER TO alhadet_clean;

--
-- Name: ProductStatus; Type: TYPE; Schema: public; Owner: alhadet_clean
--

CREATE TYPE public."ProductStatus" AS ENUM (
    'DRAFT',
    'PUBLISHED',
    'ARCHIVED'
);


ALTER TYPE public."ProductStatus" OWNER TO alhadet_clean;

--
-- Name: ProductType; Type: TYPE; Schema: public; Owner: alhadet_clean
--

CREATE TYPE public."ProductType" AS ENUM (
    'PER_UNIT',
    'PER_M2',
    'PER_ML',
    'HYBRID'
);


ALTER TYPE public."ProductType" OWNER TO alhadet_clean;

--
-- Name: ProductionStatus; Type: TYPE; Schema: public; Owner: alhadet_clean
--

CREATE TYPE public."ProductionStatus" AS ENUM (
    'QUEUED',
    'PREPRESS',
    'PRINTING',
    'FINISHING',
    'PACKING',
    'COMPLETED'
);


ALTER TYPE public."ProductionStatus" OWNER TO alhadet_clean;

--
-- Name: SettingGroup; Type: TYPE; Schema: public; Owner: alhadet_clean
--

CREATE TYPE public."SettingGroup" AS ENUM (
    'GENERAL',
    'APPEARANCE',
    'STORE',
    'SEO',
    'LANGUAGE',
    'ADVANCED'
);


ALTER TYPE public."SettingGroup" OWNER TO alhadet_clean;

--
-- Name: SizeMode; Type: TYPE; Schema: public; Owner: alhadet_clean
--

CREATE TYPE public."SizeMode" AS ENUM (
    'FIXED',
    'FLEXIBLE'
);


ALTER TYPE public."SizeMode" OWNER TO alhadet_clean;

--
-- Name: TicketPriority; Type: TYPE; Schema: public; Owner: alhadet_clean
--

CREATE TYPE public."TicketPriority" AS ENUM (
    'LOW',
    'MEDIUM',
    'HIGH',
    'URGENT'
);


ALTER TYPE public."TicketPriority" OWNER TO alhadet_clean;

--
-- Name: TicketStatus; Type: TYPE; Schema: public; Owner: alhadet_clean
--

CREATE TYPE public."TicketStatus" AS ENUM (
    'OPEN',
    'IN_PROGRESS',
    'WAITING_FOR_CUSTOMER',
    'RESOLVED',
    'CLOSED'
);


ALTER TYPE public."TicketStatus" OWNER TO alhadet_clean;

--
-- Name: UserRole; Type: TYPE; Schema: public; Owner: alhadet_clean
--

CREATE TYPE public."UserRole" AS ENUM (
    'USER',
    'STAFF',
    'ADMIN'
);


ALTER TYPE public."UserRole" OWNER TO alhadet_clean;

--
-- Name: ValidationStatus; Type: TYPE; Schema: public; Owner: alhadet_clean
--

CREATE TYPE public."ValidationStatus" AS ENUM (
    'PENDING',
    'WAITING_FILE',
    'WAITING_VALIDATION',
    'APPROVED',
    'REJECTED'
);


ALTER TYPE public."ValidationStatus" OWNER TO alhadet_clean;



--
-- Name: Account; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."Account" (
    id text NOT NULL,
    "userId" text NOT NULL,
    type text NOT NULL,
    provider text NOT NULL,
    "providerAccountId" text NOT NULL,
    refresh_token text,
    access_token text,
    expires_at integer,
    token_type text,
    scope text,
    id_token text,
    session_state text
);


ALTER TABLE public."Account" OWNER TO alhadet_clean;

--
-- Name: Category; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."Category" (
    id text NOT NULL,
    name text NOT NULL,
    slug text NOT NULL,
    description text,
    image text,
    "parentId" text,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL,
    banner text,
    icon text,
    "metaDescription" text,
    "metaKeywords" text,
    "metaTitle" text,
    "showInMenu" boolean DEFAULT true NOT NULL,
    "sortOrder" integer DEFAULT 0 NOT NULL
);


ALTER TABLE public."Category" OWNER TO alhadet_clean;

--
-- Name: EmailCampaign; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."EmailCampaign" (
    id text NOT NULL,
    name text NOT NULL,
    subject text NOT NULL,
    content text NOT NULL,
    filters jsonb,
    status public."CampaignStatus" DEFAULT 'DRAFT'::public."CampaignStatus" NOT NULL,
    "sentCount" integer DEFAULT 0 NOT NULL,
    "scheduledAt" timestamp(3) without time zone,
    "sentAt" timestamp(3) without time zone,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL,
    "clickCount" integer DEFAULT 0 NOT NULL,
    "openCount" integer DEFAULT 0 NOT NULL,
    "recipientCount" integer DEFAULT 0 NOT NULL
);


ALTER TABLE public."EmailCampaign" OWNER TO alhadet_clean;

--
-- Name: EmailLog; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."EmailLog" (
    id text NOT NULL,
    "templateId" text,
    "to" text NOT NULL,
    subject text NOT NULL,
    status public."EmailStatus" NOT NULL,
    error text,
    "sentAt" timestamp(3) without time zone,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public."EmailLog" OWNER TO alhadet_clean;

--
-- Name: EmailTemplate; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."EmailTemplate" (
    id text NOT NULL,
    name text NOT NULL,
    slug text NOT NULL,
    subject text NOT NULL,
    "htmlContent" text NOT NULL,
    "textContent" text,
    variables jsonb,
    trigger public."EmailTrigger",
    "isActive" boolean DEFAULT true NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL
);


ALTER TABLE public."EmailTemplate" OWNER TO alhadet_clean;

--
-- Name: InternalNote; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."InternalNote" (
    id text NOT NULL,
    "entityType" public."NoteEntityType" NOT NULL,
    "entityId" text NOT NULL,
    "authorId" text NOT NULL,
    content text NOT NULL,
    mentions text[],
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL
);


ALTER TABLE public."InternalNote" OWNER TO alhadet_clean;

--
-- Name: InternalNoteNotification; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."InternalNoteNotification" (
    id text NOT NULL,
    "noteId" text NOT NULL,
    "staffId" text NOT NULL,
    read boolean DEFAULT false NOT NULL,
    "readAt" timestamp(3) without time zone,
    "emailSent" boolean DEFAULT false NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public."InternalNoteNotification" OWNER TO alhadet_clean;

--
-- Name: Media; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."Media" (
    id text NOT NULL,
    filename text NOT NULL,
    "originalName" text NOT NULL,
    "mimeType" text NOT NULL,
    size integer NOT NULL,
    path text NOT NULL,
    url text NOT NULL,
    "thumbnailUrl" text,
    "webpUrl" text,
    "folderId" text,
    tags text[],
    "usedIn" jsonb,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL,
    alt text,
    height integer,
    width integer
);


ALTER TABLE public."Media" OWNER TO alhadet_clean;

--
-- Name: MediaFolder; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."MediaFolder" (
    id text NOT NULL,
    name text NOT NULL,
    "parentId" text,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL
);


ALTER TABLE public."MediaFolder" OWNER TO alhadet_clean;

--
-- Name: Menu; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."Menu" (
    id text NOT NULL,
    name text NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL
);


ALTER TABLE public."Menu" OWNER TO alhadet_clean;

--
-- Name: MenuItem; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."MenuItem" (
    id text NOT NULL,
    "menuId" text NOT NULL,
    label text NOT NULL,
    url text,
    icon text,
    "parentId" text,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "cssClass" text,
    "entityId" text,
    "openInNewTab" boolean DEFAULT false NOT NULL,
    "order" integer DEFAULT 0 NOT NULL,
    type public."MenuItemType" DEFAULT 'CUSTOM'::public."MenuItemType" NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL
);


ALTER TABLE public."MenuItem" OWNER TO alhadet_clean;

--
-- Name: OptionValue; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."OptionValue" (
    id text NOT NULL,
    "optionId" text NOT NULL,
    label text NOT NULL,
    icon text,
    image text,
    "pricingMode" public."OptionPricingMode" NOT NULL,
    "pricingValue" numeric(10,2) NOT NULL,
    "sortOrder" integer DEFAULT 0 NOT NULL,
    "isDefault" boolean DEFAULT false NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL
);


ALTER TABLE public."OptionValue" OWNER TO alhadet_clean;

--
-- Name: Order; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."Order" (
    id text NOT NULL,
    "orderNumber" text NOT NULL,
    "trackingToken" text NOT NULL,
    "userId" text,
    "customerName" text NOT NULL,
    "customerEmail" text NOT NULL,
    "customerPhone" text NOT NULL,
    "customerAddress" text NOT NULL,
    "customerCity" text NOT NULL,
    "customerNotes" text,
    "clientType" public."ClientType" DEFAULT 'PARTICULIER'::public."ClientType" NOT NULL,
    "companyName" text,
    "companyIce" text,
    "wantsInvoice" boolean DEFAULT false NOT NULL,
    "subtotalHT" numeric(10,2) NOT NULL,
    "tvaRate" numeric(5,2) NOT NULL,
    "tvaAmount" numeric(10,2) NOT NULL,
    "deliveryAmount" numeric(10,2) NOT NULL,
    "totalTTC" numeric(10,2) NOT NULL,
    status public."OrderStatus" DEFAULT 'PENDING'::public."OrderStatus" NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL,
    "printTemplateId" text,
    "printTemplateSnapshot" jsonb
);


ALTER TABLE public."Order" OWNER TO alhadet_clean;

--
-- Name: OrderItem; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."OrderItem" (
    id text NOT NULL,
    "orderId" text NOT NULL,
    "productId" text NOT NULL,
    "productSnapshot" jsonb NOT NULL,
    "selectedOptions" jsonb NOT NULL,
    quantity integer NOT NULL,
    width numeric(10,2),
    height numeric(10,2),
    surface numeric(10,2),
    "linearMeters" numeric(10,2),
    "basePrice" numeric(10,2) NOT NULL,
    "optionsPrice" numeric(10,2) NOT NULL,
    "discountAmount" numeric(10,2) NOT NULL,
    "unitPrice" numeric(10,2) NOT NULL,
    "totalPrice" numeric(10,2) NOT NULL,
    "uploadedFile" text,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL
);


ALTER TABLE public."OrderItem" OWNER TO alhadet_clean;

--
-- Name: OrderNote; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."OrderNote" (
    id text NOT NULL,
    "orderId" text NOT NULL,
    "staffId" text NOT NULL,
    content text NOT NULL,
    mentions text[],
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public."OrderNote" OWNER TO alhadet_clean;

--
-- Name: OrderRevision; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."OrderRevision" (
    id text NOT NULL,
    "orderId" text NOT NULL,
    type public."OrderRevisionType" NOT NULL,
    changes jsonb NOT NULL,
    reason text,
    "staffId" text,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public."OrderRevision" OWNER TO alhadet_clean;

--
-- Name: Page; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."Page" (
    id text NOT NULL,
    slug text NOT NULL,
    title text NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL,
    content jsonb DEFAULT '[]'::jsonb NOT NULL,
    "seoDescription" text,
    "seoTitle" text,
    status public."PageStatus" DEFAULT 'DRAFT'::public."PageStatus" NOT NULL
);


ALTER TABLE public."Page" OWNER TO alhadet_clean;

--
-- Name: PricingTier; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."PricingTier" (
    id text NOT NULL,
    "productId" text NOT NULL,
    "minQuantity" integer NOT NULL,
    discount numeric(5,2) NOT NULL,
    price numeric(10,2),
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL
);


ALTER TABLE public."PricingTier" OWNER TO alhadet_clean;

--
-- Name: PrintTemplate; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."PrintTemplate" (
    id text NOT NULL,
    name text NOT NULL,
    description text,
    "fileUrl" text,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL,
    "allowedFileTypes" text[],
    bleed numeric(10,2),
    "colorMode" public."ColorMode" NOT NULL,
    "fixedHeight" numeric(10,2),
    "fixedWidth" numeric(10,2),
    "manualValidation" boolean DEFAULT false NOT NULL,
    "maxFileSize" integer NOT NULL,
    "maxHeight" numeric(10,2),
    "maxWidth" numeric(10,2),
    "minHeight" numeric(10,2),
    "minResolution" integer DEFAULT 300 NOT NULL,
    "minWidth" numeric(10,2),
    "rejectReasons" jsonb,
    "safeZone" numeric(10,2),
    "sizeMode" public."SizeMode" NOT NULL,
    "validationRules" jsonb
);


ALTER TABLE public."PrintTemplate" OWNER TO alhadet_clean;

--
-- Name: Product; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."Product" (
    id text NOT NULL,
    name text NOT NULL,
    slug text NOT NULL,
    description text,
    "shortDescription" text,
    type public."ProductType" NOT NULL,
    status public."ProductStatus" DEFAULT 'DRAFT'::public."ProductStatus" NOT NULL,
    "basePrice" numeric(10,2) NOT NULL,
    "presetQuantities" integer[],
    "customQuantity" boolean DEFAULT false NOT NULL,
    "minQuantity" integer,
    "maxQuantity" integer,
    "presetSizes" jsonb,
    "customSize" boolean DEFAULT false NOT NULL,
    "minWidth" numeric(10,2),
    "maxWidth" numeric(10,2),
    "minHeight" numeric(10,2),
    "maxHeight" numeric(10,2),
    "minSurface" numeric(10,2),
    "maxSurface" numeric(10,2),
    "minLength" numeric(10,2),
    "maxLength" numeric(10,2),
    "fixedWidth" numeric(10,2),
    "surfaceCalculator" boolean DEFAULT false NOT NULL,
    "linearCalculator" boolean DEFAULT false NOT NULL,
    "allowUpload" boolean DEFAULT true NOT NULL,
    "deliveryPricingMode" public."DeliveryPricingMode" NOT NULL,
    "deliveryPrice" numeric(10,2),
    images jsonb NOT NULL,
    "categoryId" text NOT NULL,
    "templateId" text,
    "printTemplateId" text,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL,
    "createdFromTemplateId" text,
    "createdFromTemplateVersion" integer,
    "featureImage" text,
    "isLimited" boolean DEFAULT false NOT NULL,
    "isNew" boolean DEFAULT false NOT NULL,
    "isPopular" boolean DEFAULT false NOT NULL,
    "allowedFileTypes" text[] DEFAULT ARRAY['pdf'::text, 'ai'::text, 'psd'::text, 'png'::text, 'jpg'::text],
    "customDesign" boolean DEFAULT false NOT NULL,
    "customDesignRequired" boolean DEFAULT false NOT NULL,
    "deferredUploadAllowed" boolean DEFAULT true NOT NULL,
    "heightStep" numeric(10,2),
    "lengthStep" numeric(10,2),
    "maxFileSize" integer DEFAULT 50,
    "quantityStep" integer DEFAULT 1,
    "widthStep" numeric(10,2)
);


ALTER TABLE public."Product" OWNER TO alhadet_clean;

--
-- Name: ProductOption; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."ProductOption" (
    id text NOT NULL,
    "productId" text NOT NULL,
    name text NOT NULL,
    required 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 NOT NULL
);


ALTER TABLE public."ProductOption" OWNER TO alhadet_clean;

--
-- Name: ProductTemplate; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."ProductTemplate" (
    id text NOT NULL,
    name text NOT NULL,
    description text,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL,
    "allowUpload" boolean DEFAULT true NOT NULL,
    "basePrice" numeric(10,2) NOT NULL,
    "customQuantity" boolean DEFAULT false NOT NULL,
    "customSize" boolean DEFAULT false NOT NULL,
    "defaultOptions" jsonb,
    "defaultPricingTiers" jsonb,
    "defaultPrintTemplateId" text,
    "deliveryPrice" numeric(10,2),
    "deliveryPricingMode" public."DeliveryPricingMode",
    "fixedWidth" numeric(10,2),
    "linearCalculator" boolean DEFAULT false NOT NULL,
    "maxHeight" numeric(10,2),
    "maxLength" numeric(10,2),
    "maxQuantity" integer,
    "maxSurface" numeric(10,2),
    "maxWidth" numeric(10,2),
    "minHeight" numeric(10,2),
    "minLength" numeric(10,2),
    "minQuantity" integer,
    "minSurface" numeric(10,2),
    "minWidth" numeric(10,2),
    "presetModels" jsonb,
    "presetQuantities" integer[],
    "presetSizes" jsonb,
    "productType" public."ProductType" NOT NULL,
    "surfaceCalculator" boolean DEFAULT false NOT NULL,
    "vatIncluded" boolean DEFAULT false NOT NULL,
    version integer DEFAULT 1 NOT NULL
);


ALTER TABLE public."ProductTemplate" OWNER TO alhadet_clean;

--
-- Name: ProductVariation; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."ProductVariation" (
    id text NOT NULL,
    "productId" text NOT NULL,
    name text NOT NULL,
    description text,
    "basePrice" numeric(10,2) NOT NULL,
    "pricingType" public."ProductType" NOT NULL,
    "isDefault" boolean DEFAULT false NOT NULL,
    "sortOrder" integer DEFAULT 0 NOT NULL,
    "minQuantity" integer,
    "maxQuantity" integer,
    "minWidth" numeric(10,2),
    "maxWidth" numeric(10,2),
    "minHeight" numeric(10,2),
    "maxHeight" numeric(10,2),
    "minSurface" numeric(10,2),
    "maxSurface" numeric(10,2),
    "minLength" numeric(10,2),
    "maxLength" numeric(10,2),
    image text,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL
);


ALTER TABLE public."ProductVariation" OWNER TO alhadet_clean;

--
-- Name: ProductionFile; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."ProductionFile" (
    id text NOT NULL,
    "jobId" text NOT NULL,
    "fileUrl" text NOT NULL,
    "fileName" text NOT NULL,
    "fileType" text NOT NULL,
    status public."FileStatus" DEFAULT 'PENDING_REVIEW'::public."FileStatus" NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public."ProductionFile" OWNER TO alhadet_clean;

--
-- Name: ProductionJob; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."ProductionJob" (
    id text NOT NULL,
    "orderId" text NOT NULL,
    status public."ProductionStatus" DEFAULT 'QUEUED'::public."ProductionStatus" NOT NULL,
    "assignedToId" text,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL,
    "printReadyFileUrl" text,
    "printTemplateId" text,
    "printTemplateSnapshot" jsonb,
    "rejectionReason" text,
    "validationNotes" text,
    "validationStatus" public."ValidationStatus" DEFAULT 'PENDING'::public."ValidationStatus" NOT NULL
);


ALTER TABLE public."ProductionJob" OWNER TO alhadet_clean;

--
-- Name: Role; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."Role" (
    id text NOT NULL,
    name text NOT NULL,
    permissions jsonb NOT NULL,
    description text,
    "isSystem" boolean DEFAULT false NOT NULL
);


ALTER TABLE public."Role" OWNER TO alhadet_clean;

--
-- Name: Session; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."Session" (
    id text NOT NULL,
    "sessionToken" text NOT NULL,
    "userId" text NOT NULL,
    expires timestamp(3) without time zone NOT NULL
);


ALTER TABLE public."Session" OWNER TO alhadet_clean;

--
-- Name: Setting; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."Setting" (
    id text NOT NULL,
    key text NOT NULL,
    value jsonb NOT NULL,
    "group" public."SettingGroup" NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL
);


ALTER TABLE public."Setting" OWNER TO alhadet_clean;

--
-- Name: Staff; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."Staff" (
    id text NOT NULL,
    "userId" text NOT NULL,
    "roleId" text NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL,
    "isSuspended" boolean DEFAULT false NOT NULL,
    "suspendedAt" timestamp(3) without time zone,
    "suspendedReason" text
);


ALTER TABLE public."Staff" OWNER TO alhadet_clean;

--
-- Name: StaffMessage; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."StaffMessage" (
    id text NOT NULL,
    "authorId" text NOT NULL,
    content text NOT NULL,
    "parentId" text,
    "entityType" public."NoteEntityType",
    "entityId" text,
    "isDeleted" boolean DEFAULT false NOT NULL,
    "deletedAt" timestamp(3) without time zone,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL
);


ALTER TABLE public."StaffMessage" OWNER TO alhadet_clean;

--
-- Name: StaffMessageRecipient; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."StaffMessageRecipient" (
    id text NOT NULL,
    "messageId" text NOT NULL,
    "staffId" text NOT NULL,
    read boolean DEFAULT false NOT NULL,
    "readAt" timestamp(3) without time zone,
    deleted boolean DEFAULT false NOT NULL,
    "deletedAt" timestamp(3) without time zone,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public."StaffMessageRecipient" OWNER TO alhadet_clean;

--
-- Name: StaffNote; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."StaffNote" (
    id text NOT NULL,
    "staffId" text NOT NULL,
    "authorId" text NOT NULL,
    content text NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public."StaffNote" OWNER TO alhadet_clean;

--
-- Name: StaffNotification; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."StaffNotification" (
    id text NOT NULL,
    "staffId" text NOT NULL,
    title text NOT NULL,
    message text NOT NULL,
    read boolean DEFAULT false NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "entityId" text,
    "entityType" text,
    link text,
    "readAt" timestamp(3) without time zone,
    type public."NotificationType" DEFAULT 'INFO'::public."NotificationType" NOT NULL
);


ALTER TABLE public."StaffNotification" OWNER TO alhadet_clean;

--
-- Name: Ticket; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."Ticket" (
    id text NOT NULL,
    subject text NOT NULL,
    "orderId" text,
    "userId" text,
    "assignedToId" text,
    status public."TicketStatus" DEFAULT 'OPEN'::public."TicketStatus" NOT NULL,
    priority public."TicketPriority" DEFAULT 'MEDIUM'::public."TicketPriority" NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL,
    category text,
    "closedAt" timestamp(3) without time zone,
    description text,
    "firstResponseAt" timestamp(3) without time zone,
    "productId" text,
    "productionId" text,
    "resolvedAt" timestamp(3) without time zone,
    tags text[] DEFAULT ARRAY[]::text[],
    "ticketNumber" text NOT NULL
);


ALTER TABLE public."Ticket" OWNER TO alhadet_clean;

--
-- Name: TicketMessage; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."TicketMessage" (
    id text NOT NULL,
    "ticketId" text NOT NULL,
    "isStaff" boolean DEFAULT false NOT NULL,
    content text NOT NULL,
    attachments jsonb,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "authorId" text NOT NULL,
    "isInternal" boolean DEFAULT false NOT NULL
);


ALTER TABLE public."TicketMessage" OWNER TO alhadet_clean;

--
-- Name: TicketNote; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."TicketNote" (
    id text NOT NULL,
    "ticketId" text NOT NULL,
    "staffId" text NOT NULL,
    content text NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public."TicketNote" OWNER TO alhadet_clean;

--
-- Name: TicketTimeline; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."TicketTimeline" (
    id text NOT NULL,
    "ticketId" text NOT NULL,
    "staffId" text,
    action text NOT NULL,
    "oldValue" text,
    "newValue" text,
    metadata jsonb,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public."TicketTimeline" OWNER TO alhadet_clean;

--
-- Name: User; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."User" (
    id text NOT NULL,
    name text,
    email text,
    "emailVerified" timestamp(3) without time zone,
    image text,
    password text,
    role public."UserRole" DEFAULT 'USER'::public."UserRole" NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL,
    address text,
    "blockedAt" timestamp(3) without time zone,
    "blockedReason" text,
    city text,
    "isBlocked" boolean DEFAULT false NOT NULL,
    "isGuest" boolean DEFAULT false NOT NULL,
    "lastOrderAt" timestamp(3) without time zone,
    phone text,
    "totalSpent" numeric(10,2) DEFAULT 0 NOT NULL
);


ALTER TABLE public."User" OWNER TO alhadet_clean;

--
-- Name: VerificationToken; Type: TABLE; Schema: public; Owner: alhadet_clean
--

CREATE TABLE public."VerificationToken" (
    identifier text NOT NULL,
    token text NOT NULL,
    expires timestamp(3) without time zone NOT NULL
);


ALTER TABLE public."VerificationToken" OWNER TO alhadet_clean;

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

COPY public."Account" (id, "userId", type, provider, "providerAccountId", refresh_token, access_token, expires_at, token_type, scope, id_token, session_state) FROM stdin;
\.


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

COPY public."Category" (id, name, slug, description, image, "parentId", "createdAt", "updatedAt", banner, icon, "metaDescription", "metaKeywords", "metaTitle", "showInMenu", "sortOrder") FROM stdin;
cmkdy0m0s0003zegtsvdc6t9k	Flyers	flyers	Eye-catching flyers for promotions and events	\N	\N	2026-01-14 11:34:12.604	2026-01-14 11:34:12.604	\N	\N	\N	\N	\N	t	0
cmkdy0m0z0004zegtncnmm1ah	Banners	banners	Large format banners for indoor and outdoor use	\N	\N	2026-01-14 11:34:12.611	2026-01-14 11:34:12.611	\N	\N	\N	\N	\N	t	0
cmkdy0m160005zegts0zay8rf	Brochures	brochures	Informative brochures to showcase your services	\N	\N	2026-01-14 11:34:12.618	2026-01-14 11:34:12.618	\N	\N	\N	\N	\N	t	0
cmkdy0m0l0002zegtsnyqylsz	Business Cards	business-cards	Professional business cards for your company	\N	\N	2026-01-14 11:34:12.597	2026-01-21 09:39:59.614	\N	\N	\N	\N	\N	t	0
\.


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

COPY public."EmailCampaign" (id, name, subject, content, filters, status, "sentCount", "scheduledAt", "sentAt", "createdAt", "updatedAt", "clickCount", "openCount", "recipientCount") FROM stdin;
\.


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

COPY public."EmailLog" (id, "templateId", "to", subject, status, error, "sentAt", "createdAt") FROM stdin;
cmkif000r0000fxgtswb6ipo0	cmkh4ex9z000008gtk8l6qlc0	pollo30@walahto.my.id	Test	FAILED	Invalid login: 535 Incorrect authentication data	\N	2026-01-17 14:40:42.267
cmkif000x0001fxgteetnr32h	cmkh4ex9z000008gtk8l6qlc0	pollo30@walahto.my.id	Test	FAILED	Failed to send to all recipients	\N	2026-01-17 14:40:42.273
cmkifl4qc0000htgthx25rtb5	cmkee78sp000pq5gtb5hlxzvg	pollo30@walahto.my.id	TEST	FAILED	40988642C67F0000:error:0A00010B:SSL routines:ssl3_get_record:wrong version number:../deps/openssl/openssl/ssl/record/ssl3_record.c:354:\n	\N	2026-01-17 14:57:08.147
cmkifl4qj0001htgtz40t3l29	cmkee78sp000pq5gtb5hlxzvg	pollo30@walahto.my.id	TEST	FAILED	Failed to send to all recipients	\N	2026-01-17 14:57:08.155
cmkifqn4300006ngtq6780f9e	cmkee78sp000pq5gtb5hlxzvg	pollo30@walahto.my.id	TEST	FAILED	Invalid login: 535 Incorrect authentication data	\N	2026-01-17 15:01:25.251
cmkifqn4900016ngt1qw4b0rw	cmkee78sp000pq5gtb5hlxzvg	pollo30@walahto.my.id	TEST	FAILED	Failed to send to all recipients	\N	2026-01-17 15:01:25.257
cmkifwzr900026ngtzw0qqe1k	cmkee78sp000pq5gtb5hlxzvg	pollo30@walahto.my.id	TEST	SENT	\N	2026-01-17 15:06:21.572	2026-01-17 15:06:21.573
\.


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

COPY public."EmailTemplate" (id, name, slug, subject, "htmlContent", "textContent", variables, trigger, "isActive", "createdAt", "updatedAt") FROM stdin;
cmkee78sb000mq5gttb8eqk7y	Order Confirmation	order-confirmation	Order Confirmed - #{orderNumber}	<p>Your order #{orderNumber} has been confirmed and is being processed.</p>	Your order #{orderNumber} has been confirmed and is being processed.	{"orderNumber": "Order number", "totalAmount": "Total amount", "customerName": "Customer name"}	ORDER_CONFIRMED	t	2026-01-14 19:07:15.899	2026-01-14 19:07:15.899
cmkee78sg000nq5gtlc6d1a8u	Order Ready	order-ready	Order Ready for Pickup - #{orderNumber}	<p>Your order #{orderNumber} is ready for pickup!</p>	Your order #{orderNumber} is ready for pickup!	{"orderNumber": "Order number", "customerName": "Customer name"}	ORDER_READY	t	2026-01-14 19:07:15.904	2026-01-14 19:07:15.904
cmkee78sp000pq5gtb5hlxzvg	Welcome Email	welcome-email	Welcome to ACOM Printing!	<p>Welcome to ACOM Printing! We are excited to serve you.</p>	Welcome to ACOM Printing! We are excited to serve you.	{"customerName": "Customer name"}	WELCOME	t	2026-01-14 19:07:15.913	2026-01-14 19:07:15.913
cmkee78sk000oq5gtpzmkk4u1	Design Rejected	design-rejected	Design Changes Required - #{orderNumber}	<p>We need some changes to your design for order #{orderNumber}.</p>	We need some changes to your design for order #{orderNumber}.	{"orderNumber": "Order number", "rejectionReason": "Rejection reason"}	PRODUCTION_FILE_REJECTED	t	2026-01-14 19:07:15.908	2026-01-14 19:07:15.908
cmkh4ex9z000008gtk8l6qlc0	Order Status Update	order-status-update	Mise à jour de votre commande #{{order.number}}	<!DOCTYPE html><html><head><meta charset="UTF-8"><style>body{font-family:Arial,sans-serif;line-height:1.6;color:#333}.container{max-width:600px;margin:0 auto;padding:20px}.header{background:#0066cc;color:white;padding:20px;text-align:center}.content{background:#f9f9f9;padding:20px}.footer{text-align:center;padding:20px;color:#666;font-size:12px}.status{background:white;padding:20px;margin:15px 0;text-align:center;border-radius:5px}.status-badge{display:inline-block;padding:10px 20px;background:#28a745;color:white;border-radius:20px;font-weight:bold}.button{display:inline-block;padding:10px 20px;background:#0066cc;color:white;text-decoration:none;border-radius:5px}</style></head><body><div class="container"><div class="header"><h1>{{company.name}}</h1></div><div class="content"><h2>Bonjour {{customer.name}},</h2><p>Votre commande a été mise à jour.</p><div class="status"><p><strong>Commande:</strong> {{order.number}}</p><p><span class="status-badge">{{order.status}}</span></p></div><p style="text-align:center;"><a href="{{tracking.url}}" class="button">Voir les détails</a></p></div><div class="footer"><p>{{company.name}}<br>{{company.phone}} | {{company.email}}</p></div></div></body></html>	Bonjour {{customer.name}},\n\nVotre commande a été mise à jour.\n\nCommande: {{order.number}}\nStatut: {{order.status}}\n\nVoir les détails: {{tracking.url}}\n\n{{company.name}}\n{{company.phone}} | {{company.email}}	\N	ORDER_CONFIRMED	t	2026-01-16 16:56:36.599	2026-01-16 16:56:36.599
cmkh4exa6000108gtacvt0o9v	File Rejected	file-rejected	Action requise: Fichier à corriger - {{order.number}}	<!DOCTYPE html><html><head><meta charset="UTF-8"><style>body{font-family:Arial,sans-serif;line-height:1.6;color:#333}.container{max-width:600px;margin:0 auto;padding:20px}.header{background:#dc3545;color:white;padding:20px;text-align:center}.content{background:#f9f9f9;padding:20px}.footer{text-align:center;padding:20px;color:#666;font-size:12px}.alert{background:#fff3cd;border-left:4px solid #ffc107;padding:15px;margin:15px 0}.button{display:inline-block;padding:10px 20px;background:#0066cc;color:white;text-decoration:none;border-radius:5px}</style></head><body><div class="container"><div class="header"><h1>Action Requise</h1></div><div class="content"><h2>Bonjour {{customer.name}},</h2><p>Nous avons examiné votre fichier, mais il nécessite des corrections avant l'impression.</p><div class="alert"><strong>Raison du rejet:</strong><br>{{production.notes}}</div><p>Veuillez corriger votre fichier selon les indications et le télécharger à nouveau.</p><p style="text-align:center;"><a href="{{tracking.url}}" class="button">Télécharger un nouveau fichier</a></p></div><div class="footer"><p>{{company.name}}<br>{{company.phone}} | {{company.email}}</p></div></div></body></html>	Bonjour {{customer.name}},\n\nNous avons examiné votre fichier, mais il nécessite des corrections avant l'impression.\n\nRaison du rejet: {{production.notes}}\n\nVeuillez corriger votre fichier et le télécharger à nouveau: {{tracking.url}}\n\n{{company.name}}\n{{company.phone}} | {{company.email}}	\N	PRODUCTION_FILE_REJECTED	t	2026-01-16 16:56:36.606	2026-01-16 16:56:36.606
\.


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

COPY public."InternalNote" (id, "entityType", "entityId", "authorId", content, mentions, "createdAt", "updatedAt") FROM stdin;
\.


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

COPY public."InternalNoteNotification" (id, "noteId", "staffId", read, "readAt", "emailSent", "createdAt") FROM stdin;
\.


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

COPY public."Media" (id, filename, "originalName", "mimeType", size, path, url, "thumbnailUrl", "webpUrl", "folderId", tags, "usedIn", "createdAt", "updatedAt", alt, height, width) FROM stdin;
cmkh9c6i40002cagtgntoiy61	76835a0c-5a3b-4a05-82d6-185bfcc912ed.jpg	holiday-sale-BN7YQ5cx.jpg	image/jpeg	50421	/home/alhadet/public_html/acommame/public/uploads/media/76835a0c-5a3b-4a05-82d6-185bfcc912ed.jpg	/api/media/media/76835a0c-5a3b-4a05-82d6-185bfcc912ed.jpg	/api/media/media/76835a0c-5a3b-4a05-82d6-185bfcc912ed_thumbnail.jpg	\N	\N	\N	\N	2026-01-16 19:14:26.668	2026-01-16 19:14:26.668	holiday-sale-BN7YQ5cx	800	1920
cmkn39elb000k0zgtoub7zkfq	cfb06572-dbb2-43f1-8284-dd672cba5f97.svg	icon-one.svg	image/svg+xml	278	/home/alhadet/public_html/acommame/public/uploads/media/cfb06572-dbb2-43f1-8284-dd672cba5f97.svg	/api/media/media/cfb06572-dbb2-43f1-8284-dd672cba5f97.svg	\N	\N	\N	\N	\N	2026-01-20 21:10:56.543	2026-01-20 21:10:56.543	icon-one	48	48
cmkn39er4000l0zgtvfuahx0k	6b55da32-c210-4182-b56c-01c82a2d6514.svg	icon-two.svg	image/svg+xml	227	/home/alhadet/public_html/acommame/public/uploads/media/6b55da32-c210-4182-b56c-01c82a2d6514.svg	/api/media/media/6b55da32-c210-4182-b56c-01c82a2d6514.svg	\N	\N	\N	\N	\N	2026-01-20 21:10:56.752	2026-01-20 21:10:56.752	icon-two	48	48
cmkmy3d6c0000cpgtznzrhuf2	133b1bac-f600-42c3-9c73-866ee4c21ebe.jpg	Ellipse 1.jpg	image/jpeg	97295	/home/alhadet/public_html/acommame/.next/standalone/acommame/public/uploads/media/133b1bac-f600-42c3-9c73-866ee4c21ebe.jpg	/api/media/media/133b1bac-f600-42c3-9c73-866ee4c21ebe.jpg	/api/media/media/133b1bac-f600-42c3-9c73-866ee4c21ebe_thumbnail.jpg	\N	\N	\N	\N	2026-01-20 18:46:16.692	2026-01-20 18:46:16.692	Ellipse 1	730	730
cmkmy494f0001cpgt35yl8gov	96ae202e-0366-4d48-b7ef-fbca7e1620bf.jpg	0702WF-TR-752x564-Luxe.jpg	image/jpeg	45746	/home/alhadet/public_html/acommame/.next/standalone/acommame/public/uploads/media/96ae202e-0366-4d48-b7ef-fbca7e1620bf.jpg	/api/media/media/96ae202e-0366-4d48-b7ef-fbca7e1620bf.jpg	/api/media/media/96ae202e-0366-4d48-b7ef-fbca7e1620bf_thumbnail.jpg	\N	\N	\N	\N	2026-01-20 18:46:58.095	2026-01-20 18:46:58.095	0702WF-TR-752x564-Luxe	564	752
cmkmy49cb0002cpgtdn5nwk10	a260bfa4-c7a8-4937-85fa-233a7cbef6b9.jpg	0702WF-TR-752x564-Super.jpg	image/jpeg	43573	/home/alhadet/public_html/acommame/.next/standalone/acommame/public/uploads/media/a260bfa4-c7a8-4937-85fa-233a7cbef6b9.jpg	/api/media/media/a260bfa4-c7a8-4937-85fa-233a7cbef6b9.jpg	/api/media/media/a260bfa4-c7a8-4937-85fa-233a7cbef6b9_thumbnail.jpg	\N	\N	\N	\N	2026-01-20 18:46:58.379	2026-01-20 18:46:58.379	0702WF-TR-752x564-Super	564	752
cmkmy49k50003cpgts1vod1li	a2ae3c03-cad5-4778-a2f6-05e33cdc14e0.jpg	0702WF-TR-752x564-Original.jpg	image/jpeg	20859	/home/alhadet/public_html/acommame/.next/standalone/acommame/public/uploads/media/a2ae3c03-cad5-4778-a2f6-05e33cdc14e0.jpg	/api/media/media/a2ae3c03-cad5-4778-a2f6-05e33cdc14e0.jpg	/api/media/media/a2ae3c03-cad5-4778-a2f6-05e33cdc14e0_thumbnail.jpg	\N	\N	\N	\N	2026-01-20 18:46:58.661	2026-01-20 18:46:58.661	0702WF-TR-752x564-Original	564	752
cmkmzfmn5000i3zgts38lz7ns	2dfb4567-1f16-41d2-a248-37f0b75639fc.jpg	0702WF-TR-752x564-Original.jpg	image/jpeg	20859	/home/alhadet/public_html/acommame/public/uploads/media/2dfb4567-1f16-41d2-a248-37f0b75639fc.jpg	/api/media/media/2dfb4567-1f16-41d2-a248-37f0b75639fc.jpg	/api/media/media/2dfb4567-1f16-41d2-a248-37f0b75639fc_thumbnail.jpg	\N	\N	\N	\N	2026-01-20 19:23:48.449	2026-01-20 19:23:48.449	0702WF-TR-752x564-Original	564	752
\.


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

COPY public."MediaFolder" (id, name, "parentId", "createdAt", "updatedAt") FROM stdin;
\.


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

COPY public."Menu" (id, name, "createdAt", "updatedAt") FROM stdin;
menu-header	header	2026-01-17 17:09:14.514	2026-01-17 17:09:14.514
menu-footer	footer	2026-01-17 17:09:14.514	2026-01-17 17:09:14.514
\.


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

COPY public."MenuItem" (id, "menuId", label, url, icon, "parentId", "createdAt", "cssClass", "entityId", "openInNewTab", "order", type, "updatedAt") FROM stdin;
hdr-1	menu-header	Accueil	/	\N	\N	2026-01-17 17:09:14.518	\N	\N	f	1	CUSTOM	2026-01-17 17:09:14.518
hdr-2	menu-header	Produits	/products	\N	\N	2026-01-17 17:09:14.518	\N	\N	f	2	CUSTOM	2026-01-17 17:09:14.518
hdr-3	menu-header	À propos	/about	\N	\N	2026-01-17 17:09:14.518	\N	\N	f	3	CUSTOM	2026-01-17 17:09:14.518
hdr-4	menu-header	FAQ	/faq	\N	\N	2026-01-17 17:09:14.518	\N	\N	f	4	CUSTOM	2026-01-17 17:09:14.518
hdr-5	menu-header	Contact	/contact	\N	\N	2026-01-17 17:09:14.518	\N	\N	f	5	CUSTOM	2026-01-17 17:09:14.518
ftr-1	menu-footer	Accueil	/	\N	\N	2026-01-17 17:09:14.518	\N	\N	f	1	CUSTOM	2026-01-17 17:09:14.518
ftr-2	menu-footer	Produits	/products	\N	\N	2026-01-17 17:09:14.518	\N	\N	f	2	CUSTOM	2026-01-17 17:09:14.518
ftr-3	menu-footer	Suivi de commande	/track	\N	\N	2026-01-17 17:09:14.518	\N	\N	f	3	CUSTOM	2026-01-17 17:09:14.518
ftr-4	menu-footer	À propos	/about	\N	\N	2026-01-17 17:09:14.518	\N	\N	f	4	CUSTOM	2026-01-17 17:09:14.518
ftr-5	menu-footer	Contact	/contact	\N	\N	2026-01-17 17:09:14.518	\N	\N	f	5	CUSTOM	2026-01-17 17:09:14.518
\.


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

COPY public."OptionValue" (id, "optionId", label, icon, image, "pricingMode", "pricingValue", "sortOrder", "isDefault", "createdAt", "updatedAt") FROM stdin;
cmke5xoxs0008opgtx6dooznx	cmke5xoxq0007opgtkleaj6n7	Mat	\N	\N	PER_QUANTITY	1.00	0	t	2026-01-14 15:15:53.325	2026-01-14 15:15:53.325
cmke5xoxs0009opgt2thhn98p	cmke5xoxq0007opgtkleaj6n7	briant	\N	\N	PER_QUANTITY	2.00	1	f	2026-01-14 15:15:53.325	2026-01-14 15:15:53.325
cmke6h4x8000bopgtrba2qlm0	cmke6h4x6000aopgtu2yk58b9	Venil	\N	\N	PER_ML	10.00	0	t	2026-01-14 15:31:00.515	2026-01-14 15:31:00.515
cmke6h4x8000copgt5hhqlkna	cmke6h4x6000aopgtu2yk58b9	Bache	\N	\N	PER_ML	20.00	1	f	2026-01-14 15:31:00.515	2026-01-14 15:31:00.515
cmkh4jepn000jungtoh98g3qy	cmkh4jepn000iungtqw2z3sn2	135gsm Glossy	\N	\N	FIXED	0.00	1	t	2026-01-16 17:00:05.816	2026-01-16 17:00:05.816
cmkh4jepn000kungthakt4oqz	cmkh4jepn000iungtqw2z3sn2	170gsm Glossy	\N	\N	PER_QUANTITY	15.00	2	f	2026-01-16 17:00:05.816	2026-01-16 17:00:05.816
cmkh4jepn000lungtxcatg9er	cmkh4jepn000iungtqw2z3sn2	250gsm Matte	\N	\N	PER_QUANTITY	30.00	3	f	2026-01-16 17:00:05.816	2026-01-16 17:00:05.816
cmkh4jepp000nungtz4zxbmo7	cmkh4jepo000mungtp3d0hg9a	Single Sided	\N	\N	FIXED	0.00	1	t	2026-01-16 17:00:05.816	2026-01-16 17:00:05.816
cmkh4jepp000oungtbjmjh34l	cmkh4jepo000mungtp3d0hg9a	Double Sided	\N	\N	PER_QUANTITY	35.00	2	f	2026-01-16 17:00:05.816	2026-01-16 17:00:05.816
cmkh4jeq4000wungtyqwi12ps	cmkh4jeq3000vungtmcseuvzx	Hemmed Edges	\N	\N	FIXED	0.00	1	t	2026-01-16 17:00:05.832	2026-01-16 17:00:05.832
cmkh4jeq4000xungtyoaym99w	cmkh4jeq3000vungtmcseuvzx	Grommets (every 50cm)	\N	\N	PER_QUANTITY	20.00	2	f	2026-01-16 17:00:05.832	2026-01-16 17:00:05.832
cmkh4jeq4000yungtmktpd91p	cmkh4jeq3000vungtmcseuvzx	Pole Pockets	\N	\N	PER_QUANTITY	15.00	3	f	2026-01-16 17:00:05.832	2026-01-16 17:00:05.832
cmklfue2s0006urgth0efnjjz	cmklfue2q0005urgtl6llpfym	150gsm Glossy	\N	\N	PER_QUANTITY	0.00	1	t	2026-01-19 17:27:38.677	2026-01-19 17:27:38.677
cmklfue2s0007urgt0h5ek917	cmklfue2q0005urgtl6llpfym	200gsm Glossy	\N	\N	PER_QUANTITY	1.00	2	f	2026-01-19 17:27:38.677	2026-01-19 17:27:38.677
cmklfue2s0008urgtqtlj86ok	cmklfue2q0005urgtl6llpfym	250gsm Matte	\N	\N	PER_QUANTITY	1.50	3	f	2026-01-19 17:27:38.677	2026-01-19 17:27:38.677
cmklfue2w000aurgtikr8l9hc	cmklfue2v0009urgttrokop0d	Tri-fold (3 panels)	\N	\N	FIXED	1.00	1	t	2026-01-19 17:27:38.677	2026-01-19 17:27:38.677
cmklfue2w000burgttiu89u4h	cmklfue2v0009urgttrokop0d	Z-fold	\N	\N	PER_QUANTITY	2.00	2	f	2026-01-19 17:27:38.677	2026-01-19 17:27:38.677
cmkn39wmi000s0zgtjcjij91k	cmkn39wmf000r0zgtfehm4g41	Standard (300gsm)	\N	\N	FIXED	0.00	1	t	2026-01-20 21:11:19.905	2026-01-20 21:11:19.905
cmkn39wmi000t0zgtgk15o2y9	cmkn39wmf000r0zgtfehm4g41	Premium (350gsm)	\N	\N	PER_QUANTITY	0.50	2	f	2026-01-20 21:11:19.905	2026-01-20 21:11:19.905
cmkn39wmi000u0zgttfk8gwd0	cmkn39wmf000r0zgtfehm4g41	Luxury (400gsm)	\N	\N	PER_QUANTITY	1.00	3	f	2026-01-20 21:11:19.905	2026-01-20 21:11:19.905
cmkn39wmn000w0zgt36tghh32	cmkn39wmm000v0zgt2no4233e	Mat	\N	\N	FIXED	0.00	1	t	2026-01-20 21:11:19.905	2026-01-20 21:11:19.905
cmkn39wmn000x0zgti4d8wni0	cmkn39wmm000v0zgt2no4233e	Vernis	\N	\N	PER_QUANTITY	0.50	2	f	2026-01-20 21:11:19.905	2026-01-20 21:11:19.905
cmkn39wmr000z0zgt0vi5ppp1	cmkn39wmq000y0zgtk2qom3am	Recto	\N	\N	FIXED	0.00	1	t	2026-01-20 21:11:19.905	2026-01-20 21:11:19.905
cmkn39wmr00100zgt9ulhipsz	cmkn39wmq000y0zgtk2qom3am	Recto/Verso	\N	\N	PER_QUANTITY	1.00	2	f	2026-01-20 21:11:19.905	2026-01-20 21:11:19.905
cmkn39wmt00120zgtrtpcz4np	cmkn39wms00110zgtkyai95rd	Carrés	\N	/api/media/media/6b55da32-c210-4182-b56c-01c82a2d6514.svg	FIXED	0.00	0	t	2026-01-20 21:11:19.905	2026-01-20 21:11:19.905
cmkn39wmt00130zgt03pu5xy1	cmkn39wms00110zgtkyai95rd	Arrondis	\N	/api/media/media/cfb06572-dbb2-43f1-8284-dd672cba5f97.svg	PACK	0.20	1	f	2026-01-20 21:11:19.905	2026-01-20 21:11:19.905
cmknu6j6o00079igteqw955jl	cmknu6j6m00069igt489qex38	150gsm Glossy	\N	\N	PER_QUANTITY	0.00	1	t	2026-01-21 09:44:32.144	2026-01-21 09:44:32.144
cmknu6j6o00089igtqlftenxd	cmknu6j6m00069igt489qex38	200gsm Glossy	\N	\N	PER_QUANTITY	1.00	2	f	2026-01-21 09:44:32.144	2026-01-21 09:44:32.144
cmknu6j6o00099igt9nxz6xr3	cmknu6j6m00069igt489qex38	250gsm Matte	\N	\N	PER_QUANTITY	1.50	3	f	2026-01-21 09:44:32.144	2026-01-21 09:44:32.144
cmknu6j6v000b9igth5tsiav3	cmknu6j6t000a9igt5mh9d708	Tri-fold (3 panels)	\N	\N	FIXED	1.00	1	t	2026-01-21 09:44:32.144	2026-01-21 09:44:32.144
cmknu6j6v000c9igt5ygn1hug	cmknu6j6t000a9igt5mh9d708	Z-fold	\N	\N	PER_QUANTITY	2.00	2	f	2026-01-21 09:44:32.144	2026-01-21 09:44:32.144
\.


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

COPY public."Order" (id, "orderNumber", "trackingToken", "userId", "customerName", "customerEmail", "customerPhone", "customerAddress", "customerCity", "customerNotes", "clientType", "companyName", "companyIce", "wantsInvoice", "subtotalHT", "tvaRate", "tvaAmount", "deliveryAmount", "totalTTC", status, "createdAt", "updatedAt", "printTemplateId", "printTemplateSnapshot") FROM stdin;
cmkfzivnh0000zygtliuyoo6w	ORD-20260115-92271	cmkfzivnh0001zygtdgkxy9nu	\N	Darji Bould	bllede@gmail.Com	67666444	56 Rue La ssamond	Casablanca	my note	PARTICULIER	\N	\N	f	40.00	20.00	8.00	0.00	48.00	PENDING	2026-01-15 21:51:56.859	2026-01-15 21:51:56.859	\N	\N
cmki5soa000002jgtgy5gmkj4	ORD-1768645383898-001	cmki5soa000012jgtysay9nsm	cmkdy0m0f0001zegtrh8hmwbd	Fatima Alaoui	fatima.alaoui@test.com	+212 698530817	65 Rue Mohammed V	Rabat	\N	PARTICULIER	\N	\N	f	250.00	20.00	50.00	50.00	350.00	PENDING	2025-12-25 08:53:50.854	2026-01-17 10:23:03.91	\N	\N
cmki5soak00032jgtek7po8c7	ORD-1768645383927-002	cmki5soak00042jgtv9jxosfu	cmkdy0m0f0001zegtrh8hmwbd	Mohammed Tazi	mohammed.tazi@test.com	+212 669680872	71 Rue Mohammed V	Marrakech	\N	PARTICULIER	\N	\N	f	366.67	20.00	73.33	50.00	490.00	CONFIRMED	2025-12-29 00:35:25.866	2026-01-17 10:23:03.931	\N	\N
cmki5soav00062jgthji849yg	ORD-1768645383940-004	cmki5soav00072jgt99ykgkp2	cmkdy0m0f0001zegtrh8hmwbd	Youssef El Amrani	youssef.el amrani@test.com	+212 691923063	46 Rue Mohammed V	Tanger	\N	PARTICULIER	\N	\N	f	400.00	20.00	80.00	50.00	530.00	IN_PRODUCTION	2025-12-21 07:23:42.543	2026-01-17 10:23:03.943	\N	\N
cmki5sob400092jgt0wj1w9gd	ORD-1768645383949-005	cmki5sob4000a2jgtopt2g6vp	cmkdy0m0f0001zegtrh8hmwbd	Sara Bennani	sara.bennani@test.com	+212 694057607	194 Rue Mohammed V	Agadir	\N	PARTICULIER	\N	\N	f	775.00	20.00	155.00	50.00	980.00	IN_PRODUCTION	2025-12-19 13:37:34.767	2026-01-17 10:23:03.952	\N	\N
cmki5sobh000c2jgtq955ybyp	ORD-1768645383961-007	cmki5sobh000d2jgt8p9kg9q5	cmkdy0m0f0001zegtrh8hmwbd	Fatima Alaoui	fatima.alaoui@test.com	+212 680524628	107 Rue Mohammed V	Rabat	\N	PARTICULIER	\N	\N	f	875.00	20.00	175.00	50.00	1100.00	READY	2025-12-21 00:24:19.352	2026-01-17 10:23:03.964	\N	\N
cmki5sobs000f2jgtkj13sx6g	ORD-1768645383973-008	cmki5sobs000g2jgtrjctxz25	cmkdy0m0f0001zegtrh8hmwbd	Mohammed Tazi	mohammed.tazi@test.com	+212 674056048	78 Rue Mohammed V	Marrakech	\N	PARTICULIER	\N	\N	f	166.67	20.00	33.33	50.00	250.00	DELIVERED	2025-12-22 23:04:38.066	2026-01-17 10:23:03.976	\N	\N
cmki5soc7000i2jgty0edbk7j	ORD-1768645383985-010	cmki5soc7000j2jgtebtr0rgv	cmkdy0m0f0001zegtrh8hmwbd	Youssef El Amrani	youssef.el amrani@test.com	+212 645991376	163 Rue Mohammed V	Tanger	\N	PARTICULIER	\N	\N	f	133.33	20.00	26.67	50.00	210.00	CANCELLED	2025-12-27 09:25:44.79	2026-01-17 10:23:03.988	\N	\N
cmki5socf000l2jgtwiuo5lya	ORD-1768645383996-011	cmki5socf000m2jgt6p77f2i0	cmkdy0m0f0001zegtrh8hmwbd	Sara Bennani	sara.bennani@test.com	+212 687496536	158 Rue Mohammed V	Agadir	\N	PARTICULIER	\N	\N	f	241.67	20.00	48.33	50.00	340.00	CANCELLED	2026-01-17 07:56:43.387	2026-01-17 10:23:03.998	\N	\N
cmki5u32z000092gt1bzrcr1e	ORD-1768645449740-001	cmki5u32z000192gtinqw5dld	cmkdy0m0f0001zegtrh8hmwbd	Fatima Alaoui	fatima.alaoui@test.com	+212 668939593	132 Rue Mohammed V	Rabat	\N	PARTICULIER	\N	\N	f	775.00	20.00	155.00	50.00	980.00	PENDING	2026-01-10 03:46:17.343	2026-01-17 10:24:09.753	\N	\N
cmki5u33h000392gtdq8bwopb	ORD-1768645449769-002	cmki5u33h000492gt59czbsls	cmkdy0m0f0001zegtrh8hmwbd	Mohammed Tazi	mohammed.tazi@test.com	+212 695951022	77 Rue Mohammed V	Marrakech	\N	PARTICULIER	\N	\N	f	875.00	20.00	175.00	50.00	1100.00	CONFIRMED	2025-12-30 12:43:34.372	2026-01-17 10:24:09.772	\N	\N
cmki5u33x000692gtwsmgns5g	ORD-1768645449784-004	cmki5u33x000792gt1brq6bmv	cmkdy0m0f0001zegtrh8hmwbd	Youssef El Amrani	youssef.el amrani@test.com	+212 693112389	169 Rue Mohammed V	Tanger	\N	PARTICULIER	\N	\N	f	258.33	20.00	51.67	50.00	360.00	IN_PRODUCTION	2026-01-17 03:14:44.875	2026-01-17 10:24:09.788	\N	\N
cmki5u349000992gtrj399zp1	ORD-1768645449796-005	cmki5u349000a92gtd3wtfl8w	cmkdy0m0f0001zegtrh8hmwbd	Sara Bennani	sara.bennani@test.com	+212 683890688	28 Rue Mohammed V	Agadir	\N	PARTICULIER	\N	\N	f	241.67	20.00	48.33	50.00	340.00	IN_PRODUCTION	2026-01-01 23:56:20.936	2026-01-17 10:24:09.8	\N	\N
cmki5u34l000c92gtnfokpnuj	ORD-1768645449810-007	cmki5u34l000d92gtx371l23j	cmkdy0m0f0001zegtrh8hmwbd	Fatima Alaoui	fatima.alaoui@test.com	+212 666051237	34 Rue Mohammed V	Rabat	\N	PARTICULIER	\N	\N	f	600.00	20.00	120.00	50.00	770.00	READY	2026-01-07 11:17:55.296	2026-01-17 10:24:09.813	\N	\N
cmki5u34v000f92gttbru1rve	ORD-1768645449819-008	cmki5u34v000g92gtbugjd00r	cmkdy0m0f0001zegtrh8hmwbd	Mohammed Tazi	mohammed.tazi@test.com	+212 655502532	43 Rue Mohammed V	Marrakech	\N	PARTICULIER	\N	\N	f	558.33	20.00	111.67	50.00	720.00	DELIVERED	2026-01-07 17:56:53.1	2026-01-17 10:24:09.822	\N	\N
cmki5u356000i92gtz7n2zr1i	ORD-1768645449831-010	cmki5u356000j92gtujm5hglq	cmkdy0m0f0001zegtrh8hmwbd	Youssef El Amrani	youssef.el amrani@test.com	+212 631482706	158 Rue Mohammed V	Tanger	\N	PARTICULIER	\N	\N	f	216.67	20.00	43.33	50.00	310.00	CANCELLED	2026-01-15 15:43:49.04	2026-01-17 10:24:09.834	\N	\N
cmki5u35f000l92gtwcikxu7o	ORD-1768645449840-011	cmki5u35f000m92gtots4km7o	cmkdy0m0f0001zegtrh8hmwbd	Sara Bennani	sara.bennani@test.com	+212 614279988	178 Rue Mohammed V	Agadir	\N	PARTICULIER	\N	\N	f	525.00	20.00	105.00	50.00	680.00	CANCELLED	2025-12-27 01:31:48.953	2026-01-17 10:24:09.843	\N	\N
cmkilcdn1000e0vgtbaofioqr	ORD-20260117-82949	cmkilcdn1000f0vgtuhdtkhjf	\N	Mido Bilao	masokuril@chatwesi.com	67766777	Vu N112 Rue la fontaine	Casablanca	Give me a Test long	PARTICULIER	\N	\N	f	125.00	20.00	25.00	0.00	150.00	PENDING	2026-01-17 17:38:17.483	2026-01-17 17:38:17.483	\N	\N
\.


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

COPY public."OrderItem" (id, "orderId", "productId", "productSnapshot", "selectedOptions", quantity, width, height, surface, "linearMeters", "basePrice", "optionsPrice", "discountAmount", "unitPrice", "totalPrice", "uploadedFile", "createdAt", "updatedAt") FROM stdin;
cmkfzivnk0002zygtllxr6f48	cmkfzivnh0000zygtliuyoo6w	cmke5q09q0004opgtkic3weos	{"id": "cmke5q09q0004opgtkic3weos", "name": "Bache hybridee", "slug": "bache-hybridee", "type": "HYBRID", "images": [], "status": "PUBLISHED", "options": [], "maxWidth": null, "minWidth": 1, "basePrice": 20, "createdAt": "2026-01-14T15:09:54.781Z", "maxHeight": null, "maxLength": null, "minHeight": null, "minLength": 1, "updatedAt": "2026-01-14T15:10:10.870Z", "categoryId": "cmkdy0m0z0004zegtncnmm1ah", "customSize": false, "fixedWidth": null, "maxSurface": null, "minSurface": null, "templateId": null, "allowUpload": true, "description": "bache en venil sous forme non arrondi", "maxQuantity": null, "minQuantity": 1, "presetSizes": null, "deliveryPrice": 0, "customQuantity": false, "printTemplateId": null, "linearCalculator": false, "presetQuantities": [], "shortDescription": null, "surfaceCalculator": false, "deliveryPricingMode": "FIXED", "createdFromTemplateId": null, "createdFromTemplateVersion": null}	[]	1	1.00	2.00	\N	\N	40.00	0.00	0.00	40.00	40.00	\N	2026-01-15 21:51:56.859	2026-01-15 21:51:56.859
cmki5soa900022jgtvyqxjwjw	cmki5soa000002jgtgy5gmkj4	cmke5nkcp0002opgt11jinnab	{"name": "Bache Venile", "slug": "bache-venile", "type": "PER_M2"}	{}	30	\N	\N	\N	\N	10.00	0.00	0.00	10.00	300.00	\N	2026-01-17 10:23:03.91	2026-01-17 10:23:03.91
cmki5soal00052jgtmod35k19	cmki5soak00032jgtek7po8c7	cmke5nkcp0002opgt11jinnab	{"name": "Bache Venile", "slug": "bache-venile", "type": "PER_M2"}	{}	44	\N	\N	\N	\N	10.00	0.00	0.00	10.00	440.00	\N	2026-01-17 10:23:03.931	2026-01-17 10:23:03.931
cmki5soax00082jgtpz10v2ou	cmki5soav00062jgthji849yg	cmke5nkcp0002opgt11jinnab	{"name": "Bache Venile", "slug": "bache-venile", "type": "PER_M2"}	{}	48	\N	\N	\N	\N	10.00	0.00	0.00	10.00	480.00	\N	2026-01-17 10:23:03.943	2026-01-17 10:23:03.943
cmki5sob6000b2jgt4vgkxyuk	cmki5sob400092jgt0wj1w9gd	cmke5nkcp0002opgt11jinnab	{"name": "Bache Venile", "slug": "bache-venile", "type": "PER_M2"}	{}	93	\N	\N	\N	\N	10.00	0.00	0.00	10.00	930.00	\N	2026-01-17 10:23:03.952	2026-01-17 10:23:03.952
cmki5sobj000e2jgt1evetaqb	cmki5sobh000c2jgtq955ybyp	cmke5nkcp0002opgt11jinnab	{"name": "Bache Venile", "slug": "bache-venile", "type": "PER_M2"}	{}	105	\N	\N	\N	\N	10.00	0.00	0.00	10.00	1050.00	\N	2026-01-17 10:23:03.964	2026-01-17 10:23:03.964
cmki5sobu000h2jgtd8sagyh2	cmki5sobs000f2jgtkj13sx6g	cmke5nkcp0002opgt11jinnab	{"name": "Bache Venile", "slug": "bache-venile", "type": "PER_M2"}	{}	20	\N	\N	\N	\N	10.00	0.00	0.00	10.00	200.00	\N	2026-01-17 10:23:03.976	2026-01-17 10:23:03.976
cmki5soc9000k2jgtwqusd4bm	cmki5soc7000i2jgty0edbk7j	cmke5nkcp0002opgt11jinnab	{"name": "Bache Venile", "slug": "bache-venile", "type": "PER_M2"}	{}	16	\N	\N	\N	\N	10.00	0.00	0.00	10.00	160.00	\N	2026-01-17 10:23:03.988	2026-01-17 10:23:03.988
cmki5socg000n2jgt8754nutz	cmki5socf000l2jgtwiuo5lya	cmke5nkcp0002opgt11jinnab	{"name": "Bache Venile", "slug": "bache-venile", "type": "PER_M2"}	{}	29	\N	\N	\N	\N	10.00	0.00	0.00	10.00	290.00	\N	2026-01-17 10:23:03.998	2026-01-17 10:23:03.998
cmki5u333000292gt1bm0y7tw	cmki5u32z000092gt1bzrcr1e	cmke5nkcp0002opgt11jinnab	{"name": "Bache Venile", "slug": "bache-venile", "type": "PER_M2"}	{}	93	\N	\N	\N	\N	10.00	0.00	0.00	10.00	930.00	\N	2026-01-17 10:24:09.753	2026-01-17 10:24:09.753
cmki5u33i000592gtfuym3i1a	cmki5u33h000392gtdq8bwopb	cmke5nkcp0002opgt11jinnab	{"name": "Bache Venile", "slug": "bache-venile", "type": "PER_M2"}	{}	105	\N	\N	\N	\N	10.00	0.00	0.00	10.00	1050.00	\N	2026-01-17 10:24:09.772	2026-01-17 10:24:09.772
cmki5u33z000892gthk2yqd9y	cmki5u33x000692gtwsmgns5g	cmke5nkcp0002opgt11jinnab	{"name": "Bache Venile", "slug": "bache-venile", "type": "PER_M2"}	{}	31	\N	\N	\N	\N	10.00	0.00	0.00	10.00	310.00	\N	2026-01-17 10:24:09.788	2026-01-17 10:24:09.788
cmki5u34b000b92gt7urvtn1v	cmki5u349000992gtrj399zp1	cmke5nkcp0002opgt11jinnab	{"name": "Bache Venile", "slug": "bache-venile", "type": "PER_M2"}	{}	29	\N	\N	\N	\N	10.00	0.00	0.00	10.00	290.00	\N	2026-01-17 10:24:09.8	2026-01-17 10:24:09.8
cmki5u34n000e92gti58tgkc7	cmki5u34l000c92gtnfokpnuj	cmke5nkcp0002opgt11jinnab	{"name": "Bache Venile", "slug": "bache-venile", "type": "PER_M2"}	{}	72	\N	\N	\N	\N	10.00	0.00	0.00	10.00	720.00	\N	2026-01-17 10:24:09.813	2026-01-17 10:24:09.813
cmki5u34x000h92gtj8doxtiv	cmki5u34v000f92gttbru1rve	cmke5nkcp0002opgt11jinnab	{"name": "Bache Venile", "slug": "bache-venile", "type": "PER_M2"}	{}	67	\N	\N	\N	\N	10.00	0.00	0.00	10.00	670.00	\N	2026-01-17 10:24:09.822	2026-01-17 10:24:09.822
cmki5u359000k92gtvnrxbpiz	cmki5u356000i92gtz7n2zr1i	cmke5nkcp0002opgt11jinnab	{"name": "Bache Venile", "slug": "bache-venile", "type": "PER_M2"}	{}	26	\N	\N	\N	\N	10.00	0.00	0.00	10.00	260.00	\N	2026-01-17 10:24:09.834	2026-01-17 10:24:09.834
cmki5u35h000n92gtjrgajix7	cmki5u35f000l92gtwcikxu7o	cmke5nkcp0002opgt11jinnab	{"name": "Bache Venile", "slug": "bache-venile", "type": "PER_M2"}	{}	63	\N	\N	\N	\N	10.00	0.00	0.00	10.00	630.00	\N	2026-01-17 10:24:09.843	2026-01-17 10:24:09.843
cmkilcdn4000g0vgtmujs7x9q	cmkilcdn1000e0vgtbaofioqr	cmkh4jeqm0012ungtr5zneu6r	{"id": "cmkh4jeqm0012ungtr5zneu6r", "name": "A4 Tri-fold Brochure", "slug": "brochure-a4-trifold", "type": "PER_UNIT", "isNew": true, "images": [], "status": "PUBLISHED", "options": [{"id": "cmkhc5fdo0005ocgtwkwktu94", "name": "Paper Type", "values": [{"id": "cmkhc5fdq0006ocgt5sxqdp5n", "icon": null, "image": null, "label": "150gsm Glossy", "optionId": "cmkhc5fdo0005ocgtwkwktu94", "createdAt": "2026-01-16T20:33:10.414Z", "isDefault": true, "sortOrder": 1, "updatedAt": "2026-01-16T20:33:10.414Z", "pricingMode": "FIXED", "pricingValue": 0}, {"id": "cmkhc5fdq0007ocgt1ra87xf0", "icon": null, "image": null, "label": "200gsm Glossy", "optionId": "cmkhc5fdo0005ocgtwkwktu94", "createdAt": "2026-01-16T20:33:10.414Z", "isDefault": false, "sortOrder": 2, "updatedAt": "2026-01-16T20:33:10.414Z", "pricingMode": "PER_QUANTITY", "pricingValue": 25}, {"id": "cmkhc5fdq0008ocgte37tgopo", "icon": null, "image": null, "label": "250gsm Matte", "optionId": "cmkhc5fdo0005ocgtwkwktu94", "createdAt": "2026-01-16T20:33:10.414Z", "isDefault": false, "sortOrder": 3, "updatedAt": "2026-01-16T20:33:10.414Z", "pricingMode": "PER_QUANTITY", "pricingValue": 40}], "required": true, "createdAt": "2026-01-16T20:33:10.414Z", "productId": "cmkh4jeqm0012ungtr5zneu6r", "sortOrder": 1, "updatedAt": "2026-01-16T20:33:10.414Z"}, {"id": "cmkhc5fdt0009ocgt6vyjhlq4", "name": "Folding", "values": [{"id": "cmkhc5fdu000aocgtcp9bjzyu", "icon": null, "image": null, "label": "Tri-fold (3 panels)", "optionId": "cmkhc5fdt0009ocgt6vyjhlq4", "createdAt": "2026-01-16T20:33:10.414Z", "isDefault": true, "sortOrder": 1, "updatedAt": "2026-01-16T20:33:10.414Z", "pricingMode": "FIXED", "pricingValue": 0}, {"id": "cmkhc5fdu000bocgtjm1sb53b", "icon": null, "image": null, "label": "Z-fold", "optionId": "cmkhc5fdt0009ocgt6vyjhlq4", "createdAt": "2026-01-16T20:33:10.414Z", "isDefault": false, "sortOrder": 2, "updatedAt": "2026-01-16T20:33:10.414Z", "pricingMode": "PER_QUANTITY", "pricingValue": 10}], "required": true, "createdAt": "2026-01-16T20:33:10.414Z", "productId": "cmkh4jeqm0012ungtr5zneu6r", "sortOrder": 2, "updatedAt": "2026-01-16T20:33:10.414Z"}], "maxWidth": null, "minWidth": null, "basePrice": 2.5, "createdAt": "2026-01-16T17:00:05.853Z", "isLimited": false, "isPopular": false, "maxHeight": null, "maxLength": null, "minHeight": null, "minLength": null, "updatedAt": "2026-01-16T20:33:10.414Z", "categoryId": "cmkdy0m160005zegts0zay8rf", "customSize": false, "fixedWidth": null, "maxSurface": null, "minSurface": null, "templateId": null, "allowUpload": true, "description": "Professional tri-fold brochures perfect for showcasing your services and products. High-quality full color printing.", "maxQuantity": 10000, "minQuantity": 50, "presetSizes": null, "featureImage": null, "deliveryPrice": 0, "customQuantity": false, "printTemplateId": null, "linearCalculator": false, "presetQuantities": [100, 200], "shortDescription": "", "surfaceCalculator": false, "deliveryPricingMode": "FIXED", "createdFromTemplateId": null, "createdFromTemplateVersion": null}	[{"valueId": "cmkhc5fdq0006ocgt5sxqdp5n", "optionId": "cmkhc5fdo0005ocgtwkwktu94", "valueName": "150gsm Glossy", "optionName": "Paper Type"}, {"valueId": "cmkhc5fdu000aocgtcp9bjzyu", "optionId": "cmkhc5fdt0009ocgt6vyjhlq4", "valueName": "Tri-fold (3 panels)", "optionName": "Folding"}]	50	\N	\N	\N	\N	125.00	0.00	0.00	2.50	125.00	\N	2026-01-17 17:38:17.483	2026-01-17 17:38:17.483
\.


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

COPY public."OrderNote" (id, "orderId", "staffId", content, mentions, "createdAt") FROM stdin;
\.


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

COPY public."OrderRevision" (id, "orderId", type, changes, reason, "staffId", "createdAt") FROM stdin;
\.


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

COPY public."Page" (id, slug, title, "createdAt", "updatedAt", content, "seoDescription", "seoTitle", status) FROM stdin;
cmkijp8450001hlgtzpt42t7p	about	À propos de nous	2026-01-17 16:52:17.621	2026-01-17 16:52:17.621	[{"id": "hero-1", "type": "hero", "content": {"align": "center", "heading": "À propos de Acom Print", "subheading": "Votre partenaire impression professionnelle au Maroc depuis des années"}}, {"id": "text-1", "type": "text", "content": {"align": "left", "content": "<h2>Notre Histoire</h2><p>Fondée avec la passion de l'impression de qualité, Acom Print est devenue une référence dans le domaine de l'impression professionnelle au Maroc. Notre équipe d'experts combine savoir-faire traditionnel et technologies modernes pour vous offrir des produits d'exception.</p><h2>Notre Mission</h2><p>Fournir à nos clients des solutions d'impression de haute qualité, rapides et fiables, tout en maintenant un service client exceptionnel et des prix compétitifs.</p>"}}, {"id": "cta-1", "type": "cta", "content": {"heading": "Prêt à démarrer votre projet ?", "buttonLink": "/products", "buttonText": "Voir nos produits", "description": "Découvrez notre gamme complète de services d'impression."}}]	Découvrez Acom Print, votre partenaire impression professionnelle au Maroc depuis des années.	À propos | Acom Print Maroc	PUBLISHED
cmkijp84c0002hlgt0c2y13ta	legal-privacy	Politique de confidentialité	2026-01-17 16:52:17.628	2026-01-17 16:52:17.628	[{"id": "hero-1", "type": "hero", "content": {"align": "center", "heading": "Politique de Confidentialité", "subheading": "Comment nous protégeons vos données personnelles"}}, {"id": "text-1", "type": "text", "content": {"align": "left", "content": "<h2>1. Collecte des données</h2><p>Nous collectons uniquement les informations nécessaires au traitement de vos commandes : nom, adresse, email, téléphone et informations de facturation.</p><h2>2. Utilisation des données</h2><p>Vos données sont utilisées exclusivement pour traiter vos commandes, vous contacter concernant votre commande et améliorer nos services.</p><h2>3. Protection des données</h2><p>Nous mettons en œuvre des mesures de sécurité appropriées pour protéger vos informations personnelles contre tout accès non autorisé.</p><h2>4. Partage des données</h2><p>Nous ne vendons ni ne partageons vos données personnelles avec des tiers, sauf obligation légale ou pour le traitement de votre commande (ex: livraison).</p><h2>5. Vos droits</h2><p>Vous avez le droit d'accéder, modifier ou supprimer vos données personnelles. Contactez-nous à contact@acomma.me pour toute demande.</p>"}}]	\N	Politique de confidentialité | Acom Print	PUBLISHED
cmkijp84s0003hlgt0eteyub1	legal-terms	Conditions générales de vente	2026-01-17 16:52:17.644	2026-01-17 16:52:17.644	[{"id": "hero-1", "type": "hero", "content": {"align": "center", "heading": "Conditions Générales de Vente", "subheading": "Les termes et conditions qui régissent nos services"}}, {"id": "text-1", "type": "text", "content": {"align": "left", "content": "<h2>1. Objet</h2><p>Les présentes conditions générales régissent les ventes de produits d'impression effectuées par Acom Print.</p><h2>2. Commandes</h2><p>Toute commande implique l'acceptation des présentes conditions. Les commandes sont validées après confirmation par notre équipe et accord sur le devis.</p><h2>3. Prix et Paiement</h2><p>Les prix sont indiqués en Dirhams marocains (MAD) et incluent la TVA au taux en vigueur. Le paiement est dû selon les modalités convenues lors de la validation de la commande.</p><h2>4. Livraison</h2><p>Les délais de livraison sont indicatifs et peuvent varier. Acom Print s'engage à livrer dans les meilleurs délais possibles.</p><h2>5. Réclamations</h2><p>Toute réclamation doit être adressée dans les 48 heures suivant la réception de la commande.</p><h2>6. Responsabilité</h2><p>Acom Print ne saurait être tenu responsable des retards de livraison indépendants de sa volonté ou des erreurs dans les fichiers fournis par le client.</p>"}}]	\N	CGV | Acom Print	PUBLISHED
cmkijp83q0000hlgtb26z4529	contact	Contactez-nous	2026-01-17 16:52:17.606	2026-01-17 16:52:17.606	[{"id": "hero-1", "type": "hero", "content": {"align": "center", "heading": "Contactez-nous", "subheading": "Notre équipe est à votre écoute pour tous vos projets d'impression"}}, {"id": "text-1", "type": "text", "content": {"align": "left", "content": "<div class=\\"grid md:grid-cols-2 gap-8\\"><div><h3 class=\\"text-xl font-bold mb-4\\">Nos Coordonnées</h3><p><strong>Adresse:</strong> Rabat, Maroc</p><p><strong>Téléphone:</strong> +212 5 22 00 00 00</p><p><strong>Email:</strong> contact@acomma.me</p></div><div><h3 class=\\"text-xl font-bold mb-4\\">Horaires</h3><p>Lundi - Vendredi: 09:00 - 18:00</p><p>Samedi: 09:00 - 13:00</p><p>Dimanche: Fermé</p></div></div>"}}, {"id": "cta-1", "type": "cta", "content": {"heading": "Besoin d'un devis ?", "buttonLink": "/products", "buttonText": "Voir nos produits", "description": "Parcourez nos produits et demandez un devis gratuit en quelques clics."}}]	Contactez notre équipe pour vos projets d'impression au Maroc. Devis gratuit et réponse rapide.	Contact | Acom Print Maroc	PUBLISHED
cmkijp8550005hlgtzzyk09pw	faq	Questions fréquentes	2026-01-17 16:52:17.657	2026-01-17 16:52:17.657	[{"id": "hero-1", "type": "hero", "content": {"align": "center", "heading": "Questions Fréquentes", "subheading": "Trouvez rapidement les réponses à vos questions"}}, {"id": "faq-1", "type": "faq", "content": {"items": [{"answer": "Les délais varient selon le produit. En général, comptez 3 à 5 jours ouvrables pour les commandes standard et 24-48h pour les commandes urgentes.", "question": "Quels sont les délais de livraison ?"}, {"answer": "Nous acceptons les fichiers PDF, AI, EPS, PSD et les images haute résolution (300 DPI minimum) en JPG, PNG ou TIFF.", "question": "Quels formats de fichiers acceptez-vous ?"}, {"answer": "Oui, nous pouvons fournir des échantillons pour les commandes importantes. Contactez-nous pour plus d'informations.", "question": "Proposez-vous des échantillons ?"}, {"answer": "Après validation de votre commande, vous recevrez un lien de suivi par email vous permettant de suivre l'avancement en temps réel.", "question": "Comment puis-je suivre ma commande ?"}, {"answer": "Nous fonctionnons sur devis. Après validation de votre commande, nous vous contacterons pour finaliser le paiement.", "question": "Quels modes de paiement acceptez-vous ?"}, {"answer": "Oui, nous livrons dans toutes les villes du Maroc. Les frais et délais de livraison varient selon la destination.", "question": "Livrez-vous dans tout le Maroc ?"}], "heading": ""}}]	\N	FAQ | Acom Print Maroc	PUBLISHED
cmkijp84z0004hlgtsafcp56g	legal-shipping	Livraison et retours	2026-01-17 16:52:17.651	2026-01-17 16:52:17.651	[{"id": "hero-1", "type": "hero", "content": {"align": "center", "heading": "Livraison et Retours", "subheading": "Tout ce que vous devez savoir sur nos services de livraison"}}, {"id": "text-1", "type": "text", "content": {"align": "left", "content": "<h2>Livraison</h2><p><strong>Zones de livraison:</strong> Nous livrons dans tout le Maroc.</p><p><strong>Délais:</strong> 3 à 5 jours ouvrables pour les commandes standard. Service express disponible (24-48h) avec supplément.</p><p><strong>Frais:</strong> Les frais de livraison sont calculés selon la destination et le poids. Livraison gratuite pour les commandes supérieures à 500 DH.</p><h2>Suivi de commande</h2><p>Un lien de suivi vous est envoyé par email dès l'expédition de votre commande.</p><h2>Retours et Réclamations</h2><p>En cas de défaut de fabrication, contactez-nous dans les 48h suivant la réception. Les retours pour défaut avéré sont pris en charge par Acom Print.</p><p><strong>Note:</strong> Les produits personnalisés conformes à la commande ne peuvent être retournés.</p>"}}, {"id": "faq-1", "type": "faq", "content": {"items": [{"answer": "Oui, tant que votre commande n'a pas été expédiée. Contactez-nous rapidement pour effectuer le changement.", "question": "Puis-je modifier mon adresse de livraison ?"}, {"answer": "Le livreur vous contactera pour convenir d'un nouveau rendez-vous de livraison.", "question": "Que faire si je suis absent lors de la livraison ?"}, {"answer": "Prenez des photos et contactez-nous immédiatement. Nous traiterons votre réclamation en priorité.", "question": "Ma commande est arrivée endommagée, que faire ?"}], "heading": "Questions sur la livraison"}}]	\N	Livraison et retours | Acom Print	PUBLISHED
\.


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

COPY public."PricingTier" (id, "productId", "minQuantity", discount, price, "createdAt", "updatedAt") FROM stdin;
cmke5xoxk0005opgt3oxjvwym	cmke5j79r0000opgtyij1qm95	100	0.00	5.00	2026-01-14 15:15:53.325	2026-01-14 15:15:53.325
cmke5xoxk0006opgtn9u46yle	cmke5j79r0000opgtyij1qm95	500	0.00	3.00	2026-01-14 15:15:53.325	2026-01-14 15:15:53.325
cmkh4jepq000pungtiuzz0lzw	cmkh4jepl000hungtt0mhxsri	100	0.00	0.50	2026-01-16 17:00:05.816	2026-01-16 17:00:05.816
cmkh4jepq000qungtf7e5it1r	cmkh4jepl000hungtt0mhxsri	250	20.00	0.40	2026-01-16 17:00:05.816	2026-01-16 17:00:05.816
cmkh4jepq000rungt0zlrmmrj	cmkh4jepl000hungtt0mhxsri	500	40.00	0.30	2026-01-16 17:00:05.816	2026-01-16 17:00:05.816
cmkh4jepq000sungt1y5xnjdf	cmkh4jepl000hungtt0mhxsri	1000	50.00	0.25	2026-01-16 17:00:05.816	2026-01-16 17:00:05.816
cmkh4jepq000tungt24ysid9e	cmkh4jepl000hungtt0mhxsri	5000	60.00	0.20	2026-01-16 17:00:05.816	2026-01-16 17:00:05.816
cmkh4jeq6000zungthyc08mmx	cmkh4jeq1000uungtqbvsb4t3	1	0.00	150.00	2026-01-16 17:00:05.832	2026-01-16 17:00:05.832
cmkh4jeq60010ungtzk315woi	cmkh4jeq1000uungtqbvsb4t3	5	13.33	130.00	2026-01-16 17:00:05.832	2026-01-16 17:00:05.832
cmkh4jeq60011ungt4ovfmyv4	cmkh4jeq1000uungtqbvsb4t3	10	20.00	120.00	2026-01-16 17:00:05.832	2026-01-16 17:00:05.832
cmkn39wmc000m0zgt8xy9gnt7	cmkh4jeok0000ungttdw9tsmu	50	0.00	2.00	2026-01-20 21:11:19.905	2026-01-20 21:11:19.905
cmkn39wmc000n0zgtq1aslv9o	cmkh4jeok0000ungttdw9tsmu	100	25.00	1.50	2026-01-20 21:11:19.905	2026-01-20 21:11:19.905
cmkn39wmc000o0zgtksc809w6	cmkh4jeok0000ungttdw9tsmu	250	40.00	1.20	2026-01-20 21:11:19.905	2026-01-20 21:11:19.905
cmkn39wmc000p0zgte1p0cgdw	cmkh4jeok0000ungttdw9tsmu	500	50.00	1.00	2026-01-20 21:11:19.905	2026-01-20 21:11:19.905
cmkn39wmc000q0zgtqt82ax78	cmkh4jeok0000ungttdw9tsmu	1000	60.00	0.80	2026-01-20 21:11:19.905	2026-01-20 21:11:19.905
cmknu6j6f00019igtyl0k6t77	cmknu6j6900009igtzyxr4jug	50	0.00	2.50	2026-01-21 09:44:32.144	2026-01-21 09:44:32.144
cmknu6j6f00029igtefxh5d77	cmknu6j6900009igtzyxr4jug	100	0.00	2.00	2026-01-21 09:44:32.144	2026-01-21 09:44:32.144
cmknu6j6f00039igtqlnautyw	cmknu6j6900009igtzyxr4jug	250	0.00	1.50	2026-01-21 09:44:32.144	2026-01-21 09:44:32.144
cmknu6j6f00049igtb7v0c02r	cmknu6j6900009igtzyxr4jug	500	0.00	1.00	2026-01-21 09:44:32.144	2026-01-21 09:44:32.144
cmknu6j6f00059igt9prc8hor	cmknu6j6900009igtzyxr4jug	1000	0.00	0.50	2026-01-21 09:44:32.144	2026-01-21 09:44:32.144
cmklfue2m0000urgtwga4iuft	cmkh4jeqm0012ungtr5zneu6r	50	0.00	2.50	2026-01-19 17:27:38.677	2026-01-19 17:27:38.677
cmklfue2m0001urgt9ufwv67x	cmkh4jeqm0012ungtr5zneu6r	100	0.00	2.00	2026-01-19 17:27:38.677	2026-01-19 17:27:38.677
cmklfue2m0002urgtjv4hk7za	cmkh4jeqm0012ungtr5zneu6r	250	0.00	1.50	2026-01-19 17:27:38.677	2026-01-19 17:27:38.677
cmklfue2n0003urgtk1m0yoen	cmkh4jeqm0012ungtr5zneu6r	500	0.00	1.00	2026-01-19 17:27:38.677	2026-01-19 17:27:38.677
cmklfue2n0004urgtnhtbwfth	cmkh4jeqm0012ungtr5zneu6r	1000	0.00	0.50	2026-01-19 17:27:38.677	2026-01-19 17:27:38.677
\.


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

COPY public."PrintTemplate" (id, name, description, "fileUrl", "createdAt", "updatedAt", "allowedFileTypes", bleed, "colorMode", "fixedHeight", "fixedWidth", "manualValidation", "maxFileSize", "maxHeight", "maxWidth", "minHeight", "minResolution", "minWidth", "rejectReasons", "safeZone", "sizeMode", "validationRules") FROM stdin;
cmkh4jer3001fungte28go9h2	Standard CMYK Print Template	\N	\N	2026-01-16 17:00:05.871	2026-01-16 17:00:05.871	{pdf,ai,psd}	2.00	CMYK	55.00	85.00	f	50	\N	\N	\N	300	\N	\N	\N	FIXED	\N
cmkh4jerb001gungtc3ibputs	Digital RGB Template	\N	\N	2026-01-16 17:00:05.879	2026-01-16 17:00:05.879	{pdf,jpg,png}	0.00	RGB	\N	\N	f	100	3000.00	5000.00	100.00	150	100.00	\N	\N	FLEXIBLE	\N
\.


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

COPY public."Product" (id, name, slug, description, "shortDescription", type, status, "basePrice", "presetQuantities", "customQuantity", "minQuantity", "maxQuantity", "presetSizes", "customSize", "minWidth", "maxWidth", "minHeight", "maxHeight", "minSurface", "maxSurface", "minLength", "maxLength", "fixedWidth", "surfaceCalculator", "linearCalculator", "allowUpload", "deliveryPricingMode", "deliveryPrice", images, "categoryId", "templateId", "printTemplateId", "createdAt", "updatedAt", "createdFromTemplateId", "createdFromTemplateVersion", "featureImage", "isLimited", "isNew", "isPopular", "allowedFileTypes", "customDesign", "customDesignRequired", "deferredUploadAllowed", "heightStep", "lengthStep", "maxFileSize", "quantityStep", "widthStep") FROM stdin;
cmke5nkcp0002opgt11jinnab	Bache Venile	bache-venile	bache venile etanche	\N	PER_M2	PUBLISHED	10.00	{}	f	1	\N	\N	f	2.00	10.00	\N	\N	\N	\N	2.00	10.00	\N	f	f	t	FIXED	0.00	[]	cmkdy0m0z0004zegtncnmm1ah	\N	\N	2026-01-14 15:08:00.84	2026-01-14 15:08:00.84	\N	\N	\N	f	f	f	{pdf,ai,psd,png,jpg}	f	f	t	\N	\N	50	1	\N
cmke5q09q0004opgtkic3weos	Bache hybridee	bache-hybridee	bache en venil sous forme non arrondi	\N	HYBRID	PUBLISHED	20.00	{}	f	1	\N	\N	f	1.00	\N	\N	\N	\N	\N	1.00	\N	\N	f	f	t	FIXED	0.00	[]	cmkdy0m0z0004zegtncnmm1ah	\N	\N	2026-01-14 15:09:54.781	2026-01-14 15:10:10.87	\N	\N	\N	f	f	f	{pdf,ai,psd,png,jpg}	f	f	t	\N	\N	50	1	\N
cmke5j79r0000opgtyij1qm95	Business card	business-card	Business card reflet. you identity	\N	PER_UNIT	PUBLISHED	5.00	{}	f	100	\N	\N	f	\N	\N	\N	\N	\N	\N	\N	\N	\N	f	f	t	FIXED	0.00	[]	cmkdy0m0l0002zegtsnyqylsz	\N	\N	2026-01-14 15:04:37.261	2026-01-14 15:15:53.325	\N	\N	\N	f	f	f	{pdf,ai,psd,png,jpg}	f	f	t	\N	\N	50	1	\N
cmke5omo60003opgtfp22lxb5	Bache linair	bache-linair	bache linair pour peaneau de publicité	\N	PER_ML	PUBLISHED	10.00	{}	f	1	\N	\N	f	\N	\N	\N	\N	\N	\N	1.00	100.00	5.00	f	f	t	FIXED	0.00	[]	cmkdy0m0z0004zegtncnmm1ah	\N	\N	2026-01-14 15:08:50.5	2026-01-14 15:31:00.515	\N	\N	\N	f	f	f	{pdf,ai,psd,png,jpg}	f	f	t	\N	\N	50	1	\N
cmkh4jepl000hungtt0mhxsri	Flyers A5	flyers-a5	High-quality A5 flyers perfect for promotions, events, and marketing campaigns. Full color printing on quality paper.	\N	PER_UNIT	PUBLISHED	0.50	\N	f	100	50000	\N	f	\N	\N	\N	\N	\N	\N	\N	\N	\N	f	f	t	FIXED	\N	[]	cmkdy0m0s0003zegtsvdc6t9k	\N	\N	2026-01-16 17:00:05.816	2026-01-16 17:00:05.816	\N	\N	\N	f	f	f	{pdf,ai,psd,png,jpg}	f	f	t	\N	\N	50	1	\N
cmkh4jeq1000uungtqbvsb4t3	Vinyl Banner	banner-vinyl	Durable vinyl banners for indoor and outdoor use. Weather-resistant and high-quality printing. Custom sizes available.	\N	PER_M2	PUBLISHED	150.00	\N	f	1	100	\N	t	50.00	500.00	50.00	300.00	\N	\N	\N	\N	\N	f	f	t	FIXED	\N	[]	cmkdy0m0z0004zegtncnmm1ah	\N	\N	2026-01-16 17:00:05.832	2026-01-16 17:00:05.832	\N	\N	\N	f	f	f	{pdf,ai,psd,png,jpg}	f	f	t	\N	\N	50	1	\N
cmkh4jeok0000ungttdw9tsmu	Cartes de Visite Classique	cartes-de-visite-classique	Plus épaisses que d'ordinaire, les Cartes de Visite Classiques mettent la barre plus haute en matière de cartes de visite. Un fini uniforme lisse, une qualité d'impression extraordinaire et un papier agréable au toucher : tout pour rendre vos présentations inoubliables.	\N	PER_UNIT	PUBLISHED	2.00	{}	f	50	10000	\N	f	\N	\N	\N	\N	\N	\N	\N	\N	\N	f	f	t	FIXED	0.00	[{"id": "img-1768943479888-0", "alt": "Cartes de Visite Classique", "url": "/api/media/media/2dfb4567-1f16-41d2-a248-37f0b75639fc.jpg", "isPrimary": true}]	cmkdy0m0l0002zegtsnyqylsz	\N	\N	2026-01-16 17:00:05.776	2026-01-20 21:11:19.905	\N	\N	/api/media/media/2dfb4567-1f16-41d2-a248-37f0b75639fc.jpg	f	f	f	{pdf,ai,psd,png,jpg}	f	f	t	\N	\N	50	1	\N
cmkh4jeqm0012ungtr5zneu6r	A4 Tri-fold Brochure	brochure-a4-trifold	Professional tri-fold brochures perfect for showcasing your services and products. High-quality full color printing.		PER_UNIT	PUBLISHED	2.50	{}	f	50	10000	\N	f	\N	\N	\N	\N	\N	\N	\N	\N	\N	f	f	t	FIXED	0.00	[]	cmkdy0m160005zegts0zay8rf	\N	\N	2026-01-16 17:00:05.853	2026-01-19 17:27:38.677	\N	\N	\N	f	t	f	{pdf,ai,psd,png,jpg}	f	f	t	\N	\N	50	1	\N
cmknu6j6900009igtzyxr4jug	A4 Tri-fold Brochure (Copy)	brochure-a4-trifold-copy	Professional tri-fold brochures perfect for showcasing your services and products. High-quality full color printing.		PER_UNIT	DRAFT	2.50	{}	f	50	10000	\N	f	\N	\N	\N	\N	\N	\N	\N	\N	\N	f	f	t	FIXED	0.00	[]	cmkdy0m160005zegts0zay8rf	\N	\N	2026-01-21 09:44:32.144	2026-01-21 09:44:32.144	\N	\N	\N	f	t	f	{pdf,ai,psd,png,jpg}	f	f	t	\N	\N	50	1	\N
\.


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

COPY public."ProductOption" (id, "productId", name, required, "sortOrder", "createdAt", "updatedAt") FROM stdin;
cmke5xoxq0007opgtkleaj6n7	cmke5j79r0000opgtyij1qm95	finitions	t	0	2026-01-14 15:15:53.325	2026-01-14 15:15:53.325
cmke6h4x6000aopgtu2yk58b9	cmke5omo60003opgtfp22lxb5	Metrial	t	0	2026-01-14 15:31:00.515	2026-01-14 15:31:00.515
cmkh4jepn000iungtqw2z3sn2	cmkh4jepl000hungtt0mhxsri	Paper Weight	t	1	2026-01-16 17:00:05.816	2026-01-16 17:00:05.816
cmkh4jepo000mungtp3d0hg9a	cmkh4jepl000hungtt0mhxsri	Sides	t	2	2026-01-16 17:00:05.816	2026-01-16 17:00:05.816
cmkh4jeq3000vungtmcseuvzx	cmkh4jeq1000uungtqbvsb4t3	Finishing	t	1	2026-01-16 17:00:05.832	2026-01-16 17:00:05.832
cmklfue2q0005urgtl6llpfym	cmkh4jeqm0012ungtr5zneu6r	Paper Type	t	1	2026-01-19 17:27:38.677	2026-01-19 17:27:38.677
cmklfue2v0009urgttrokop0d	cmkh4jeqm0012ungtr5zneu6r	Folding	t	2	2026-01-19 17:27:38.677	2026-01-19 17:27:38.677
cmkn39wmf000r0zgtfehm4g41	cmkh4jeok0000ungttdw9tsmu	Type de Papier	t	1	2026-01-20 21:11:19.905	2026-01-20 21:11:19.905
cmkn39wmm000v0zgt2no4233e	cmkh4jeok0000ungttdw9tsmu	Finition	t	2	2026-01-20 21:11:19.905	2026-01-20 21:11:19.905
cmkn39wmq000y0zgtk2qom3am	cmkh4jeok0000ungttdw9tsmu	Recto/Verso	t	3	2026-01-20 21:11:19.905	2026-01-20 21:11:19.905
cmkn39wms00110zgtkyai95rd	cmkh4jeok0000ungttdw9tsmu	Type de Coin	t	3	2026-01-20 21:11:19.905	2026-01-20 21:11:19.905
cmknu6j6m00069igt489qex38	cmknu6j6900009igtzyxr4jug	Paper Type	t	1	2026-01-21 09:44:32.144	2026-01-21 09:44:32.144
cmknu6j6t000a9igt5mh9d708	cmknu6j6900009igtzyxr4jug	Folding	t	2	2026-01-21 09:44:32.144	2026-01-21 09:44:32.144
\.


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

COPY public."ProductTemplate" (id, name, description, "createdAt", "updatedAt", "allowUpload", "basePrice", "customQuantity", "customSize", "defaultOptions", "defaultPricingTiers", "defaultPrintTemplateId", "deliveryPrice", "deliveryPricingMode", "fixedWidth", "linearCalculator", "maxHeight", "maxLength", "maxQuantity", "maxSurface", "maxWidth", "minHeight", "minLength", "minQuantity", "minSurface", "minWidth", "presetModels", "presetQuantities", "presetSizes", "productType", "surfaceCalculator", "vatIncluded", version) FROM stdin;
cmkh4jero001hungtqahg60bo	Standard Business Card Template	Standard template for business cards with common options and pricing	2026-01-16 17:00:05.892	2026-01-21 10:01:55.316	t	200.00	f	f	"{\\"paperType\\":\\"standard\\",\\"finish\\":\\"matte\\",\\"sides\\":\\"double\\"}"	"[{\\"minQuantity\\":50,\\"maxQuantity\\":99,\\"unitPrice\\":2},{\\"minQuantity\\":100,\\"maxQuantity\\":249,\\"unitPrice\\":1.5},{\\"minQuantity\\":250,\\"maxQuantity\\":499,\\"unitPrice\\":1.2},{\\"minQuantity\\":500,\\"maxQuantity\\":999,\\"unitPrice\\":1},{\\"minQuantity\\":1000,\\"maxQuantity\\":null,\\"unitPrice\\":0.8}]"	cmkh4jer3001fungte28go9h2	0.00	FIXED	\N	f	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N	\N	{50,100,250,500,1000}	\N	PER_UNIT	f	f	2
\.


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

COPY public."ProductVariation" (id, "productId", name, description, "basePrice", "pricingType", "isDefault", "sortOrder", "minQuantity", "maxQuantity", "minWidth", "maxWidth", "minHeight", "maxHeight", "minSurface", "maxSurface", "minLength", "maxLength", image, "createdAt", "updatedAt") FROM stdin;
\.


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

COPY public."ProductionFile" (id, "jobId", "fileUrl", "fileName", "fileType", status, "createdAt") FROM stdin;
cmki6wsr500011dgt2otwbt6l	cmki6wsr000001dgttrcqoyah	/uploads/orders/cmki5soav00062jgthji849yg/design-file.pdf	design-file.pdf	application/pdf	PENDING_REVIEW	2026-01-17 10:54:15.953
cmki6wsrc00031dgt7azo3br2	cmki6wsr900021dgts3p1curn	/uploads/orders/cmki5sob400092jgt0wj1w9gd/design-file.pdf	design-file.pdf	application/pdf	APPROVED	2026-01-17 10:54:15.96
cmki6wsri00051dgt3w13wesp	cmki6wsrf00041dgtem884o37	/uploads/orders/cmki5u33x000692gtwsmgns5g/design-file.pdf	design-file.pdf	application/pdf	REJECTED	2026-01-17 10:54:15.966
cmki6wsrr00071dgt5m6q10c7	cmki6wsrm00061dgtxpbeqvcj	/uploads/orders/cmki5u349000992gtrj399zp1/design-file.pdf	design-file.pdf	application/pdf	PENDING_REVIEW	2026-01-17 10:54:15.975
\.


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

COPY public."ProductionJob" (id, "orderId", status, "assignedToId", "createdAt", "updatedAt", "printReadyFileUrl", "printTemplateId", "printTemplateSnapshot", "rejectionReason", "validationNotes", "validationStatus") FROM stdin;
cmki6wsr000001dgttrcqoyah	cmki5soav00062jgthji849yg	QUEUED	cmkh4ej100001xngtoekbnd93	2026-01-17 10:54:15.948	2026-01-17 10:54:15.948	/uploads/production/print-ready-file.pdf	\N	\N	\N	File validated successfully. Ready for printing.	APPROVED
cmki6wsr900021dgts3p1curn	cmki5sob400092jgt0wj1w9gd	PREPRESS	cmkh4ej100001xngtoekbnd93	2026-01-17 10:54:15.957	2026-01-17 10:54:15.957	\N	\N	\N	\N	\N	PENDING
cmki6wsrf00041dgtem884o37	cmki5u33x000692gtwsmgns5g	PRINTING	cmkh4ej100001xngtoekbnd93	2026-01-17 10:54:15.963	2026-01-17 10:54:15.963	\N	\N	\N	Resolution below minimum 300 DPI requirement	File resolution too low. Please upload a higher quality file.	REJECTED
cmki6wsrm00061dgtxpbeqvcj	cmki5u349000992gtrj399zp1	FINISHING	cmkh4ej100001xngtoekbnd93	2026-01-17 10:54:15.97	2026-01-17 10:54:15.97	/uploads/production/print-ready-file.pdf	\N	\N	\N	File validated successfully. Ready for printing.	APPROVED
\.


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

COPY public."Role" (id, name, permissions, description, "isSystem") FROM stdin;
cmkee78mk0000q5gt5x7ipe00	Admin	["*"]	Full system access and administrative privileges	t
cmkee78od0001q5gt9x04asfb	Manager	["orders.*", "production.*", "staff.view", "users.view", "reports.*"]	Management access to orders, production, and staff	t
cmkee78oj0002q5gtmqw8d1rt	Designer	["production.view", "production.validate", "files.*"]	Design validation and file management	t
cmkee78op0003q5gte5mjfhus	Production	["production.*", "orders.view"]	Production management and job processing	t
\.


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

COPY public."Session" (id, "sessionToken", "userId", expires) FROM stdin;
\.


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

COPY public."Setting" (id, key, value, "group", "createdAt", "updatedAt") FROM stdin;
cmkee78pa0004q5gtlstkyxpl	site_name	"ACOM Printing"	GENERAL	2026-01-14 19:07:15.79	2026-01-14 19:07:15.79
cmkee78pi0005q5gtlwr59jte	site_description	"Professional printing services in Morocco"	GENERAL	2026-01-14 19:07:15.798	2026-01-14 19:07:15.798
cmkee78pp0006q5gtkpqereza	contact_email	"contact@acomma.me"	GENERAL	2026-01-14 19:07:15.805	2026-01-14 19:07:15.805
cmkee78pv0007q5gt6g0xhhi2	contact_phone	"+212 XXX XXXXXX"	GENERAL	2026-01-14 19:07:15.811	2026-01-14 19:07:15.811
cmkee78qi000bq5gt8n2oim7s	default_currency	"MAD"	STORE	2026-01-14 19:07:15.834	2026-01-14 19:07:15.834
cmkee78qq000cq5gt3azwbumv	default_vat_rate	20	STORE	2026-01-14 19:07:15.842	2026-01-14 19:07:15.842
cmkee78qw000dq5gt9tz1yj88	min_order_amount	100	STORE	2026-01-14 19:07:15.848	2026-01-14 19:07:15.848
cmkee78r2000eq5gtqjciwbcr	free_delivery_threshold	500	STORE	2026-01-14 19:07:15.854	2026-01-14 19:07:15.854
cmkee78ra000fq5gttw4cop1i	meta_title	"ACOM Printing - Professional Print Services Morocco"	SEO	2026-01-14 19:07:15.862	2026-01-14 19:07:15.862
cmkee78rf000gq5gtwjjbz7hn	meta_description	"High-quality printing services in Morocco. Business cards, flyers, banners and more."	SEO	2026-01-14 19:07:15.867	2026-01-14 19:07:15.867
cmkee78rk000hq5gtqor7zkuh	meta_keywords	"printing,morocco,business cards,flyers,banners"	SEO	2026-01-14 19:07:15.871	2026-01-14 19:07:15.871
cmkee78ro000iq5gthcxhm1ew	default_language	"fr"	LANGUAGE	2026-01-14 19:07:15.876	2026-01-14 19:07:15.876
cmkee78rv000jq5gtuzp1bci4	available_languages	["fr", "ar", "en"]	LANGUAGE	2026-01-14 19:07:15.883	2026-01-14 19:07:15.883
cmkif8uvx0000osgtpje62d4n	maintenance_mode	false	ADVANCED	2026-01-17 14:47:35.517	2026-01-17 14:47:35.517
cmkif8uw20001osgtaemyzern	maintenance_message	"We are currently performing scheduled maintenance. Please check back soon."	ADVANCED	2026-01-17 14:47:35.522	2026-01-17 14:47:35.522
cmkif8uw40002osgt1h795ck7	debug_mode	false	ADVANCED	2026-01-17 14:47:35.523	2026-01-17 14:47:35.523
cmkif8uw50003osgtcvg3zevh	cache_enabled	true	ADVANCED	2026-01-17 14:47:35.525	2026-01-17 14:47:35.525
cmkif8uw90004osgtc2smw5bd	cache_ttl	3600	ADVANCED	2026-01-17 14:47:35.529	2026-01-17 14:47:35.529
cmkee78rz000kq5gtq7aux53h	max_file_size	50	ADVANCED	2026-01-14 19:07:15.887	2026-01-17 14:47:35.53
cmkee78s4000lq5gt5s0dkez0	allowed_file_types	["pdf", "ai", "psd", "png", "jpg"]	ADVANCED	2026-01-14 19:07:15.892	2026-01-17 14:47:35.532
cmkif8uwd0007osgtlhc7fjzo	smtp_host	"mail.acom.ma"	ADVANCED	2026-01-17 14:47:35.533	2026-01-17 14:47:35.533
cmkif8uwe0008osgtxy29x48d	smtp_port	587	ADVANCED	2026-01-17 14:47:35.534	2026-01-17 14:47:35.534
cmkif8uwf0009osgth0mdoc4c	smtp_user	"noreply@acom.ma"	ADVANCED	2026-01-17 14:47:35.535	2026-01-17 14:47:35.535
cmkif8uwi000cosgtgksslm7w	smtp_from_email	"noreply@acom.ma"	ADVANCED	2026-01-17 14:47:35.538	2026-01-17 14:47:35.538
cmkif8uwk000dosgtegh6wdsw	smtp_from_name	"ACOM Printing"	ADVANCED	2026-01-17 14:47:35.54	2026-01-17 14:47:35.54
cmkif8uwh000bosgthbtbaxh7	smtp_secure	false	ADVANCED	2026-01-17 14:47:35.537	2026-01-17 14:47:35.537
cmkif8uwg000aosgtcac0ivsh	smtp_password	"AXNBpWwajWCB"	ADVANCED	2026-01-17 14:47:35.536	2026-01-17 14:47:35.536
cmkee78q60009q5gtr120sl1k	logo_url	"/uploads/categories/a8a14ae2-bee4-44d3-ba44-d1cff3c08b64.svg"	APPEARANCE	2026-01-14 19:07:15.822	2026-01-18 07:38:26.924
cmkil06n200010vgtlb6jltpe	logo_dark_url	"/uploads/categories/eab0ea89-2be5-4f61-83a8-3d641d620382.png"	APPEARANCE	2026-01-17 17:28:48.542	2026-01-18 07:38:26.926
cmkee78qc000aq5gt6d5wk57z	favicon_url	"/favicon.ico"	APPEARANCE	2026-01-14 19:07:15.828	2026-01-18 07:38:26.928
cmkee78q10008q5gt4elkp4i7	theme_color	"#2563eb"	APPEARANCE	2026-01-14 19:07:15.817	2026-01-18 07:38:26.929
cmkil06n600040vgt6nmy22ap	secondary_color	"#64748b"	APPEARANCE	2026-01-17 17:28:48.546	2026-01-18 07:38:26.93
cmkil06n700050vgt196x1ycc	accent_color	"#f59e0b"	APPEARANCE	2026-01-17 17:28:48.547	2026-01-18 07:38:26.931
cmkil06n800060vgt1km6u5ix	theme_mode	"light"	APPEARANCE	2026-01-17 17:28:48.548	2026-01-18 07:38:26.932
\.


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

COPY public."Staff" (id, "userId", "roleId", "createdAt", "updatedAt", "isSuspended", "suspendedAt", "suspendedReason") FROM stdin;
cmkh4ej100001xngtoekbnd93	cmkh4ej0x0000xngtyrv5riu0	cmkee78mk0000q5gt5x7ipe00	2026-01-16 16:56:18.124	2026-01-16 16:56:18.124	f	\N	\N
staff_ebf43882c054512b3088	cmkdy0lwu0000zegt8ujvt2su	cmkee78mk0000q5gt5x7ipe00	2026-01-17 14:15:53.554	2026-01-17 14:15:53.554	f	\N	\N
cmkie65rm00012ugtqtsnir8o	cmkie65r000002ugtq8x4xwji	cmkee78od0001q5gt9x04asfb	2026-01-17 14:17:30.033	2026-01-17 14:17:30.033	f	\N	\N
\.


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

COPY public."StaffMessage" (id, "authorId", content, "parentId", "entityType", "entityId", "isDeleted", "deletedAt", "createdAt", "updatedAt") FROM stdin;
\.


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

COPY public."StaffMessageRecipient" (id, "messageId", "staffId", read, "readAt", deleted, "deletedAt", "createdAt") FROM stdin;
\.


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

COPY public."StaffNote" (id, "staffId", "authorId", content, "createdAt") FROM stdin;
\.


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

COPY public."StaffNotification" (id, "staffId", title, message, read, "createdAt", "entityId", "entityType", link, "readAt", type) FROM stdin;
\.


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

COPY public."Ticket" (id, subject, "orderId", "userId", "assignedToId", status, priority, "createdAt", "updatedAt", category, "closedAt", description, "firstResponseAt", "productId", "productionId", "resolvedAt", tags, "ticketNumber") FROM stdin;
\.


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

COPY public."TicketMessage" (id, "ticketId", "isStaff", content, attachments, "createdAt", "authorId", "isInternal") FROM stdin;
\.


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

COPY public."TicketNote" (id, "ticketId", "staffId", content, "createdAt") FROM stdin;
\.


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

COPY public."TicketTimeline" (id, "ticketId", "staffId", action, "oldValue", "newValue", metadata, "createdAt") FROM stdin;
\.


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

COPY public."User" (id, name, email, "emailVerified", image, password, role, "createdAt", "updatedAt", address, "blockedAt", "blockedReason", city, "isBlocked", "isGuest", "lastOrderAt", phone, "totalSpent") FROM stdin;
cmkdy0m0f0001zegtrh8hmwbd	Test User	user@test.com	2026-01-14 11:34:12.59	\N	$2b$10$6i2OroXqbWsbLMZjw5eMW.yGDy4Ok1aDkA3ircJJvcrWNXsUUPbYK	USER	2026-01-14 11:34:12.591	2026-01-14 11:34:12.591	\N	\N	\N	\N	f	f	\N	\N	0.00
cmkdy0lwu0000zegt8ujvt2su	Admin User	admin@acomma.me	2026-01-14 11:34:12.455	\N	$2b$10$aLSqmtPCDiuKyu2YbhX4pODxotuNVJGkB2ylo22qW0fXLEQI99P.6	ADMIN	2026-01-14 11:34:12.462	2026-01-14 11:34:12.462	\N	\N	\N	\N	f	f	\N	\N	0.00
cmkh4ej0x0000xngtyrv5riu0	Admin User	admin@acom.ma	2026-01-16 16:56:18.11	\N	$2b$10$Y/MMI4VW1NGtl5xTAGSGSecOCnPDlOxDmCXsNZ5Pvy98gl3l1/Etq	ADMIN	2026-01-16 16:56:18.124	2026-01-16 16:56:18.124	\N	\N	\N	\N	f	f	\N	\N	0.00
cmkie65r000002ugtq8x4xwji	Achraf Vinari	achraf@acom.ma	\N	\N	$2b$10$TJyGRueNBB804PQYe9JKyO02216Dnc8dx.tNlNrONf0JsjvAr65ai	STAFF	2026-01-17 14:17:30.011	2026-01-17 14:17:30.027	\N	\N	\N	\N	f	f	\N	212 661775234	0.00
\.


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

COPY public."VerificationToken" (identifier, token, expires) FROM stdin;
\.


--
-- Name: Account Account_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Account"
    ADD CONSTRAINT "Account_pkey" PRIMARY KEY (id);


--
-- Name: Category Category_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Category"
    ADD CONSTRAINT "Category_pkey" PRIMARY KEY (id);


--
-- Name: EmailCampaign EmailCampaign_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."EmailCampaign"
    ADD CONSTRAINT "EmailCampaign_pkey" PRIMARY KEY (id);


--
-- Name: EmailLog EmailLog_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."EmailLog"
    ADD CONSTRAINT "EmailLog_pkey" PRIMARY KEY (id);


--
-- Name: EmailTemplate EmailTemplate_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."EmailTemplate"
    ADD CONSTRAINT "EmailTemplate_pkey" PRIMARY KEY (id);


--
-- Name: InternalNoteNotification InternalNoteNotification_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."InternalNoteNotification"
    ADD CONSTRAINT "InternalNoteNotification_pkey" PRIMARY KEY (id);


--
-- Name: InternalNote InternalNote_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."InternalNote"
    ADD CONSTRAINT "InternalNote_pkey" PRIMARY KEY (id);


--
-- Name: MediaFolder MediaFolder_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."MediaFolder"
    ADD CONSTRAINT "MediaFolder_pkey" PRIMARY KEY (id);


--
-- Name: Media Media_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Media"
    ADD CONSTRAINT "Media_pkey" PRIMARY KEY (id);


--
-- Name: MenuItem MenuItem_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."MenuItem"
    ADD CONSTRAINT "MenuItem_pkey" PRIMARY KEY (id);


--
-- Name: Menu Menu_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Menu"
    ADD CONSTRAINT "Menu_pkey" PRIMARY KEY (id);


--
-- Name: OptionValue OptionValue_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."OptionValue"
    ADD CONSTRAINT "OptionValue_pkey" PRIMARY KEY (id);


--
-- Name: OrderItem OrderItem_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."OrderItem"
    ADD CONSTRAINT "OrderItem_pkey" PRIMARY KEY (id);


--
-- Name: OrderNote OrderNote_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."OrderNote"
    ADD CONSTRAINT "OrderNote_pkey" PRIMARY KEY (id);


--
-- Name: OrderRevision OrderRevision_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."OrderRevision"
    ADD CONSTRAINT "OrderRevision_pkey" PRIMARY KEY (id);


--
-- Name: Order Order_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Order"
    ADD CONSTRAINT "Order_pkey" PRIMARY KEY (id);


--
-- Name: Page Page_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Page"
    ADD CONSTRAINT "Page_pkey" PRIMARY KEY (id);


--
-- Name: PricingTier PricingTier_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."PricingTier"
    ADD CONSTRAINT "PricingTier_pkey" PRIMARY KEY (id);


--
-- Name: PrintTemplate PrintTemplate_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."PrintTemplate"
    ADD CONSTRAINT "PrintTemplate_pkey" PRIMARY KEY (id);


--
-- Name: ProductOption ProductOption_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."ProductOption"
    ADD CONSTRAINT "ProductOption_pkey" PRIMARY KEY (id);


--
-- Name: ProductTemplate ProductTemplate_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."ProductTemplate"
    ADD CONSTRAINT "ProductTemplate_pkey" PRIMARY KEY (id);


--
-- Name: ProductVariation ProductVariation_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."ProductVariation"
    ADD CONSTRAINT "ProductVariation_pkey" PRIMARY KEY (id);


--
-- Name: Product Product_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Product"
    ADD CONSTRAINT "Product_pkey" PRIMARY KEY (id);


--
-- Name: ProductionFile ProductionFile_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."ProductionFile"
    ADD CONSTRAINT "ProductionFile_pkey" PRIMARY KEY (id);


--
-- Name: ProductionJob ProductionJob_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."ProductionJob"
    ADD CONSTRAINT "ProductionJob_pkey" PRIMARY KEY (id);


--
-- Name: Role Role_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Role"
    ADD CONSTRAINT "Role_pkey" PRIMARY KEY (id);


--
-- Name: Session Session_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Session"
    ADD CONSTRAINT "Session_pkey" PRIMARY KEY (id);


--
-- Name: Setting Setting_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Setting"
    ADD CONSTRAINT "Setting_pkey" PRIMARY KEY (id);


--
-- Name: StaffMessageRecipient StaffMessageRecipient_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."StaffMessageRecipient"
    ADD CONSTRAINT "StaffMessageRecipient_pkey" PRIMARY KEY (id);


--
-- Name: StaffMessage StaffMessage_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."StaffMessage"
    ADD CONSTRAINT "StaffMessage_pkey" PRIMARY KEY (id);


--
-- Name: StaffNote StaffNote_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."StaffNote"
    ADD CONSTRAINT "StaffNote_pkey" PRIMARY KEY (id);


--
-- Name: StaffNotification StaffNotification_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."StaffNotification"
    ADD CONSTRAINT "StaffNotification_pkey" PRIMARY KEY (id);


--
-- Name: Staff Staff_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Staff"
    ADD CONSTRAINT "Staff_pkey" PRIMARY KEY (id);


--
-- Name: TicketMessage TicketMessage_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."TicketMessage"
    ADD CONSTRAINT "TicketMessage_pkey" PRIMARY KEY (id);


--
-- Name: TicketNote TicketNote_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."TicketNote"
    ADD CONSTRAINT "TicketNote_pkey" PRIMARY KEY (id);


--
-- Name: TicketTimeline TicketTimeline_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."TicketTimeline"
    ADD CONSTRAINT "TicketTimeline_pkey" PRIMARY KEY (id);


--
-- Name: Ticket Ticket_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Ticket"
    ADD CONSTRAINT "Ticket_pkey" PRIMARY KEY (id);


--
-- Name: User User_pkey; Type: CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."User"
    ADD CONSTRAINT "User_pkey" PRIMARY KEY (id);


--
-- Name: Account_provider_providerAccountId_key; Type: INDEX; Schema: public; Owner: alhadet_clean
--

CREATE UNIQUE INDEX "Account_provider_providerAccountId_key" ON public."Account" USING btree (provider, "providerAccountId");


--
-- Name: Category_slug_key; Type: INDEX; Schema: public; Owner: alhadet_clean
--

CREATE UNIQUE INDEX "Category_slug_key" ON public."Category" USING btree (slug);


--
-- Name: EmailTemplate_slug_key; Type: INDEX; Schema: public; Owner: alhadet_clean
--

CREATE UNIQUE INDEX "EmailTemplate_slug_key" ON public."EmailTemplate" USING btree (slug);


--
-- Name: Menu_name_key; Type: INDEX; Schema: public; Owner: alhadet_clean
--

CREATE UNIQUE INDEX "Menu_name_key" ON public."Menu" USING btree (name);


--
-- Name: Order_orderNumber_key; Type: INDEX; Schema: public; Owner: alhadet_clean
--

CREATE UNIQUE INDEX "Order_orderNumber_key" ON public."Order" USING btree ("orderNumber");


--
-- Name: Order_trackingToken_key; Type: INDEX; Schema: public; Owner: alhadet_clean
--

CREATE UNIQUE INDEX "Order_trackingToken_key" ON public."Order" USING btree ("trackingToken");


--
-- Name: Page_slug_key; Type: INDEX; Schema: public; Owner: alhadet_clean
--

CREATE UNIQUE INDEX "Page_slug_key" ON public."Page" USING btree (slug);


--
-- Name: Product_slug_key; Type: INDEX; Schema: public; Owner: alhadet_clean
--

CREATE UNIQUE INDEX "Product_slug_key" ON public."Product" USING btree (slug);


--
-- Name: ProductionJob_orderId_key; Type: INDEX; Schema: public; Owner: alhadet_clean
--

CREATE UNIQUE INDEX "ProductionJob_orderId_key" ON public."ProductionJob" USING btree ("orderId");


--
-- Name: Role_name_key; Type: INDEX; Schema: public; Owner: alhadet_clean
--

CREATE UNIQUE INDEX "Role_name_key" ON public."Role" USING btree (name);


--
-- Name: Session_sessionToken_key; Type: INDEX; Schema: public; Owner: alhadet_clean
--

CREATE UNIQUE INDEX "Session_sessionToken_key" ON public."Session" USING btree ("sessionToken");


--
-- Name: Setting_key_key; Type: INDEX; Schema: public; Owner: alhadet_clean
--

CREATE UNIQUE INDEX "Setting_key_key" ON public."Setting" USING btree (key);


--
-- Name: Staff_userId_key; Type: INDEX; Schema: public; Owner: alhadet_clean
--

CREATE UNIQUE INDEX "Staff_userId_key" ON public."Staff" USING btree ("userId");


--
-- Name: Ticket_ticketNumber_key; Type: INDEX; Schema: public; Owner: alhadet_clean
--

CREATE UNIQUE INDEX "Ticket_ticketNumber_key" ON public."Ticket" USING btree ("ticketNumber");


--
-- Name: User_email_key; Type: INDEX; Schema: public; Owner: alhadet_clean
--

CREATE UNIQUE INDEX "User_email_key" ON public."User" USING btree (email);


--
-- Name: VerificationToken_identifier_token_key; Type: INDEX; Schema: public; Owner: alhadet_clean
--

CREATE UNIQUE INDEX "VerificationToken_identifier_token_key" ON public."VerificationToken" USING btree (identifier, token);


--
-- Name: VerificationToken_token_key; Type: INDEX; Schema: public; Owner: alhadet_clean
--

CREATE UNIQUE INDEX "VerificationToken_token_key" ON public."VerificationToken" USING btree (token);


--
-- Name: Account Account_userId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Account"
    ADD CONSTRAINT "Account_userId_fkey" FOREIGN KEY ("userId") REFERENCES public."User"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: Category Category_parentId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Category"
    ADD CONSTRAINT "Category_parentId_fkey" FOREIGN KEY ("parentId") REFERENCES public."Category"(id) ON UPDATE CASCADE ON DELETE SET NULL;


--
-- Name: EmailLog EmailLog_templateId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."EmailLog"
    ADD CONSTRAINT "EmailLog_templateId_fkey" FOREIGN KEY ("templateId") REFERENCES public."EmailTemplate"(id) ON UPDATE CASCADE ON DELETE SET NULL;


--
-- Name: InternalNoteNotification InternalNoteNotification_noteId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."InternalNoteNotification"
    ADD CONSTRAINT "InternalNoteNotification_noteId_fkey" FOREIGN KEY ("noteId") REFERENCES public."InternalNote"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: InternalNoteNotification InternalNoteNotification_staffId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."InternalNoteNotification"
    ADD CONSTRAINT "InternalNoteNotification_staffId_fkey" FOREIGN KEY ("staffId") REFERENCES public."Staff"(id) ON UPDATE CASCADE ON DELETE RESTRICT;


--
-- Name: InternalNote InternalNote_authorId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."InternalNote"
    ADD CONSTRAINT "InternalNote_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES public."Staff"(id) ON UPDATE CASCADE ON DELETE RESTRICT;


--
-- Name: MediaFolder MediaFolder_parentId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."MediaFolder"
    ADD CONSTRAINT "MediaFolder_parentId_fkey" FOREIGN KEY ("parentId") REFERENCES public."MediaFolder"(id) ON UPDATE CASCADE ON DELETE SET NULL;


--
-- Name: Media Media_folderId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Media"
    ADD CONSTRAINT "Media_folderId_fkey" FOREIGN KEY ("folderId") REFERENCES public."MediaFolder"(id) ON UPDATE CASCADE ON DELETE SET NULL;


--
-- Name: MenuItem MenuItem_menuId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."MenuItem"
    ADD CONSTRAINT "MenuItem_menuId_fkey" FOREIGN KEY ("menuId") REFERENCES public."Menu"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: MenuItem MenuItem_parentId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."MenuItem"
    ADD CONSTRAINT "MenuItem_parentId_fkey" FOREIGN KEY ("parentId") REFERENCES public."MenuItem"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: OptionValue OptionValue_optionId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."OptionValue"
    ADD CONSTRAINT "OptionValue_optionId_fkey" FOREIGN KEY ("optionId") REFERENCES public."ProductOption"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: OrderItem OrderItem_orderId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."OrderItem"
    ADD CONSTRAINT "OrderItem_orderId_fkey" FOREIGN KEY ("orderId") REFERENCES public."Order"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: OrderItem OrderItem_productId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."OrderItem"
    ADD CONSTRAINT "OrderItem_productId_fkey" FOREIGN KEY ("productId") REFERENCES public."Product"(id) ON UPDATE CASCADE ON DELETE RESTRICT;


--
-- Name: OrderNote OrderNote_orderId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."OrderNote"
    ADD CONSTRAINT "OrderNote_orderId_fkey" FOREIGN KEY ("orderId") REFERENCES public."Order"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: OrderNote OrderNote_staffId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."OrderNote"
    ADD CONSTRAINT "OrderNote_staffId_fkey" FOREIGN KEY ("staffId") REFERENCES public."Staff"(id) ON UPDATE CASCADE ON DELETE RESTRICT;


--
-- Name: OrderRevision OrderRevision_orderId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."OrderRevision"
    ADD CONSTRAINT "OrderRevision_orderId_fkey" FOREIGN KEY ("orderId") REFERENCES public."Order"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: OrderRevision OrderRevision_staffId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."OrderRevision"
    ADD CONSTRAINT "OrderRevision_staffId_fkey" FOREIGN KEY ("staffId") REFERENCES public."Staff"(id) ON UPDATE CASCADE ON DELETE SET NULL;


--
-- Name: Order Order_userId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Order"
    ADD CONSTRAINT "Order_userId_fkey" FOREIGN KEY ("userId") REFERENCES public."User"(id) ON UPDATE CASCADE ON DELETE SET NULL;


--
-- Name: PricingTier PricingTier_productId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."PricingTier"
    ADD CONSTRAINT "PricingTier_productId_fkey" FOREIGN KEY ("productId") REFERENCES public."Product"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: ProductOption ProductOption_productId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."ProductOption"
    ADD CONSTRAINT "ProductOption_productId_fkey" FOREIGN KEY ("productId") REFERENCES public."Product"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: ProductTemplate ProductTemplate_defaultPrintTemplateId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."ProductTemplate"
    ADD CONSTRAINT "ProductTemplate_defaultPrintTemplateId_fkey" FOREIGN KEY ("defaultPrintTemplateId") REFERENCES public."PrintTemplate"(id) ON UPDATE CASCADE ON DELETE SET NULL;


--
-- Name: ProductVariation ProductVariation_productId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."ProductVariation"
    ADD CONSTRAINT "ProductVariation_productId_fkey" FOREIGN KEY ("productId") REFERENCES public."Product"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: Product Product_categoryId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Product"
    ADD CONSTRAINT "Product_categoryId_fkey" FOREIGN KEY ("categoryId") REFERENCES public."Category"(id) ON UPDATE CASCADE ON DELETE RESTRICT;


--
-- Name: Product Product_createdFromTemplateId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Product"
    ADD CONSTRAINT "Product_createdFromTemplateId_fkey" FOREIGN KEY ("createdFromTemplateId") REFERENCES public."ProductTemplate"(id) ON UPDATE CASCADE ON DELETE SET NULL;


--
-- Name: Product Product_printTemplateId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Product"
    ADD CONSTRAINT "Product_printTemplateId_fkey" FOREIGN KEY ("printTemplateId") REFERENCES public."PrintTemplate"(id) ON UPDATE CASCADE ON DELETE SET NULL;


--
-- Name: Product Product_templateId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Product"
    ADD CONSTRAINT "Product_templateId_fkey" FOREIGN KEY ("templateId") REFERENCES public."ProductTemplate"(id) ON UPDATE CASCADE ON DELETE SET NULL;


--
-- Name: ProductionFile ProductionFile_jobId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."ProductionFile"
    ADD CONSTRAINT "ProductionFile_jobId_fkey" FOREIGN KEY ("jobId") REFERENCES public."ProductionJob"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: ProductionJob ProductionJob_assignedToId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."ProductionJob"
    ADD CONSTRAINT "ProductionJob_assignedToId_fkey" FOREIGN KEY ("assignedToId") REFERENCES public."Staff"(id) ON UPDATE CASCADE ON DELETE SET NULL;


--
-- Name: ProductionJob ProductionJob_orderId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."ProductionJob"
    ADD CONSTRAINT "ProductionJob_orderId_fkey" FOREIGN KEY ("orderId") REFERENCES public."Order"(id) ON UPDATE CASCADE ON DELETE RESTRICT;


--
-- Name: Session Session_userId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Session"
    ADD CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES public."User"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: StaffMessageRecipient StaffMessageRecipient_messageId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."StaffMessageRecipient"
    ADD CONSTRAINT "StaffMessageRecipient_messageId_fkey" FOREIGN KEY ("messageId") REFERENCES public."StaffMessage"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: StaffMessageRecipient StaffMessageRecipient_staffId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."StaffMessageRecipient"
    ADD CONSTRAINT "StaffMessageRecipient_staffId_fkey" FOREIGN KEY ("staffId") REFERENCES public."Staff"(id) ON UPDATE CASCADE ON DELETE RESTRICT;


--
-- Name: StaffMessage StaffMessage_authorId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."StaffMessage"
    ADD CONSTRAINT "StaffMessage_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES public."Staff"(id) ON UPDATE CASCADE ON DELETE RESTRICT;


--
-- Name: StaffMessage StaffMessage_parentId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."StaffMessage"
    ADD CONSTRAINT "StaffMessage_parentId_fkey" FOREIGN KEY ("parentId") REFERENCES public."StaffMessage"(id) ON UPDATE CASCADE ON DELETE SET NULL;


--
-- Name: StaffNote StaffNote_authorId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."StaffNote"
    ADD CONSTRAINT "StaffNote_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES public."Staff"(id) ON UPDATE CASCADE ON DELETE RESTRICT;


--
-- Name: StaffNote StaffNote_staffId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."StaffNote"
    ADD CONSTRAINT "StaffNote_staffId_fkey" FOREIGN KEY ("staffId") REFERENCES public."Staff"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: StaffNotification StaffNotification_staffId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."StaffNotification"
    ADD CONSTRAINT "StaffNotification_staffId_fkey" FOREIGN KEY ("staffId") REFERENCES public."Staff"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: Staff Staff_roleId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Staff"
    ADD CONSTRAINT "Staff_roleId_fkey" FOREIGN KEY ("roleId") REFERENCES public."Role"(id) ON UPDATE CASCADE ON DELETE RESTRICT;


--
-- Name: Staff Staff_userId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Staff"
    ADD CONSTRAINT "Staff_userId_fkey" FOREIGN KEY ("userId") REFERENCES public."User"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: TicketMessage TicketMessage_ticketId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."TicketMessage"
    ADD CONSTRAINT "TicketMessage_ticketId_fkey" FOREIGN KEY ("ticketId") REFERENCES public."Ticket"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: TicketNote TicketNote_staffId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."TicketNote"
    ADD CONSTRAINT "TicketNote_staffId_fkey" FOREIGN KEY ("staffId") REFERENCES public."Staff"(id) ON UPDATE CASCADE ON DELETE RESTRICT;


--
-- Name: TicketNote TicketNote_ticketId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."TicketNote"
    ADD CONSTRAINT "TicketNote_ticketId_fkey" FOREIGN KEY ("ticketId") REFERENCES public."Ticket"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: TicketTimeline TicketTimeline_staffId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."TicketTimeline"
    ADD CONSTRAINT "TicketTimeline_staffId_fkey" FOREIGN KEY ("staffId") REFERENCES public."Staff"(id) ON UPDATE CASCADE ON DELETE SET NULL;


--
-- Name: TicketTimeline TicketTimeline_ticketId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."TicketTimeline"
    ADD CONSTRAINT "TicketTimeline_ticketId_fkey" FOREIGN KEY ("ticketId") REFERENCES public."Ticket"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: Ticket Ticket_assignedToId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Ticket"
    ADD CONSTRAINT "Ticket_assignedToId_fkey" FOREIGN KEY ("assignedToId") REFERENCES public."Staff"(id) ON UPDATE CASCADE ON DELETE SET NULL;


--
-- Name: Ticket Ticket_orderId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Ticket"
    ADD CONSTRAINT "Ticket_orderId_fkey" FOREIGN KEY ("orderId") REFERENCES public."Order"(id) ON UPDATE CASCADE ON DELETE SET NULL;


--
-- Name: Ticket Ticket_productId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Ticket"
    ADD CONSTRAINT "Ticket_productId_fkey" FOREIGN KEY ("productId") REFERENCES public."Product"(id) ON UPDATE CASCADE ON DELETE SET NULL;


--
-- Name: Ticket Ticket_productionId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Ticket"
    ADD CONSTRAINT "Ticket_productionId_fkey" FOREIGN KEY ("productionId") REFERENCES public."ProductionJob"(id) ON UPDATE CASCADE ON DELETE SET NULL;


--
-- Name: Ticket Ticket_userId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: alhadet_clean
--

ALTER TABLE ONLY public."Ticket"
    ADD CONSTRAINT "Ticket_userId_fkey" FOREIGN KEY ("userId") REFERENCES public."User"(id) ON UPDATE CASCADE ON DELETE SET NULL;


--
-- Name: SCHEMA public; Type: ACL; Schema: -; Owner: pg_database_owner
--

GRANT ALL ON SCHEMA public TO alhadet_clean;


--
--

\unrestrict X9eufb8gkaGbZVaWxCxwYJ2uA3Y7eg8xT5yJtz9uti4s07csR2G61Fxxsi0V29s

