--
-- PostgreSQL database dump
--

\restrict G8F1Pe4vN8QqnQiJm2czcuO6LIvB9rXeTo7OwqWZsCEFWJAU8kaFti0FkhBqxK6

-- Dumped from database version 16.10
-- Dumped by pg_dump version 16.10

SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;

ALTER TABLE IF EXISTS ONLY public.vendors DROP CONSTRAINT IF EXISTS vendors_pkey;
ALTER TABLE IF EXISTS ONLY public.vendor_reviews DROP CONSTRAINT IF EXISTS vendor_reviews_pkey;
ALTER TABLE IF EXISTS ONLY public.vendor_products DROP CONSTRAINT IF EXISTS vendor_products_pkey;
ALTER TABLE IF EXISTS ONLY public.users DROP CONSTRAINT IF EXISTS users_pkey;
ALTER TABLE IF EXISTS ONLY public.users DROP CONSTRAINT IF EXISTS users_email_unique;
ALTER TABLE IF EXISTS ONLY public.users DROP CONSTRAINT IF EXISTS users_clerk_id_unique;
ALTER TABLE IF EXISTS ONLY public.vendor_reviews DROP CONSTRAINT IF EXISTS uq_review_per_quote;
ALTER TABLE IF EXISTS ONLY public.tenders DROP CONSTRAINT IF EXISTS tenders_pkey;
ALTER TABLE IF EXISTS ONLY public.tender_notes DROP CONSTRAINT IF EXISTS tender_notes_pkey;
ALTER TABLE IF EXISTS ONLY public.tender_fdds DROP CONSTRAINT IF EXISTS tender_fdds_tender_id_key;
ALTER TABLE IF EXISTS ONLY public.tender_fdds DROP CONSTRAINT IF EXISTS tender_fdds_pkey;
ALTER TABLE IF EXISTS ONLY public.tender_documents DROP CONSTRAINT IF EXISTS tender_documents_pkey;
ALTER TABLE IF EXISTS ONLY public.team_assignments DROP CONSTRAINT IF EXISTS team_assignments_pkey;
ALTER TABLE IF EXISTS ONLY public.subscriptions DROP CONSTRAINT IF EXISTS subscriptions_pkey;
ALTER TABLE IF EXISTS ONLY public.subscriptions DROP CONSTRAINT IF EXISTS subscriptions_company_id_unique;
ALTER TABLE IF EXISTS ONLY public.submission_checklist DROP CONSTRAINT IF EXISTS submission_checklist_pkey;
ALTER TABLE IF EXISTS ONLY public.saved_searches DROP CONSTRAINT IF EXISTS saved_searches_pkey;
ALTER TABLE IF EXISTS ONLY public.reports DROP CONSTRAINT IF EXISTS reports_pkey;
ALTER TABLE IF EXISTS ONLY public.quote_requests DROP CONSTRAINT IF EXISTS quote_requests_pkey;
ALTER TABLE IF EXISTS ONLY public.proposal_versions DROP CONSTRAINT IF EXISTS proposal_versions_pkey;
ALTER TABLE IF EXISTS ONLY public.proposal_drafts DROP CONSTRAINT IF EXISTS proposal_drafts_tender_id_unique;
ALTER TABLE IF EXISTS ONLY public.proposal_drafts DROP CONSTRAINT IF EXISTS proposal_drafts_pkey;
ALTER TABLE IF EXISTS ONLY public.platform_settings DROP CONSTRAINT IF EXISTS platform_settings_pkey;
ALTER TABLE IF EXISTS ONLY public.plans DROP CONSTRAINT IF EXISTS plans_pkey;
ALTER TABLE IF EXISTS ONLY public.notification_settings DROP CONSTRAINT IF EXISTS notification_settings_pkey;
ALTER TABLE IF EXISTS ONLY public.notification_settings DROP CONSTRAINT IF EXISTS notification_settings_company_id_unique;
ALTER TABLE IF EXISTS ONLY public.invoices DROP CONSTRAINT IF EXISTS invoices_stripe_invoice_id_unique;
ALTER TABLE IF EXISTS ONLY public.invoices DROP CONSTRAINT IF EXISTS invoices_pkey;
ALTER TABLE IF EXISTS ONLY public.invoices DROP CONSTRAINT IF EXISTS invoices_invoice_number_unique;
ALTER TABLE IF EXISTS ONLY public.documents DROP CONSTRAINT IF EXISTS documents_pkey;
ALTER TABLE IF EXISTS ONLY public.compliance_items DROP CONSTRAINT IF EXISTS compliance_items_pkey;
ALTER TABLE IF EXISTS ONLY public.companies DROP CONSTRAINT IF EXISTS companies_pkey;
ALTER TABLE IF EXISTS ONLY public.chat_messages DROP CONSTRAINT IF EXISTS chat_messages_pkey;
ALTER TABLE IF EXISTS ONLY public.audit_log DROP CONSTRAINT IF EXISTS audit_log_pkey;
ALTER TABLE IF EXISTS ONLY public.analyses DROP CONSTRAINT IF EXISTS analyses_pkey;
ALTER TABLE IF EXISTS ONLY public.activity_events DROP CONSTRAINT IF EXISTS activity_events_pkey;
ALTER TABLE IF EXISTS public.vendors ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.vendor_reviews ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.vendor_products ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.users ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.tenders ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.tender_notes ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.tender_fdds ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.tender_documents ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.team_assignments ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.subscriptions ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.submission_checklist ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.saved_searches ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.reports ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.quote_requests ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.proposal_versions ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.proposal_drafts ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.plans ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.notification_settings ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.invoices ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.documents ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.compliance_items ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.companies ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.chat_messages ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.audit_log ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.analyses ALTER COLUMN id DROP DEFAULT;
ALTER TABLE IF EXISTS public.activity_events ALTER COLUMN id DROP DEFAULT;
DROP SEQUENCE IF EXISTS public.vendors_id_seq;
DROP TABLE IF EXISTS public.vendors;
DROP SEQUENCE IF EXISTS public.vendor_reviews_id_seq;
DROP TABLE IF EXISTS public.vendor_reviews;
DROP SEQUENCE IF EXISTS public.vendor_products_id_seq;
DROP TABLE IF EXISTS public.vendor_products;
DROP SEQUENCE IF EXISTS public.users_id_seq;
DROP TABLE IF EXISTS public.users;
DROP SEQUENCE IF EXISTS public.tenders_id_seq;
DROP TABLE IF EXISTS public.tenders;
DROP SEQUENCE IF EXISTS public.tender_notes_id_seq;
DROP TABLE IF EXISTS public.tender_notes;
DROP SEQUENCE IF EXISTS public.tender_fdds_id_seq;
DROP TABLE IF EXISTS public.tender_fdds;
DROP SEQUENCE IF EXISTS public.tender_documents_id_seq;
DROP TABLE IF EXISTS public.tender_documents;
DROP SEQUENCE IF EXISTS public.team_assignments_id_seq;
DROP TABLE IF EXISTS public.team_assignments;
DROP SEQUENCE IF EXISTS public.subscriptions_id_seq;
DROP TABLE IF EXISTS public.subscriptions;
DROP SEQUENCE IF EXISTS public.submission_checklist_id_seq;
DROP TABLE IF EXISTS public.submission_checklist;
DROP SEQUENCE IF EXISTS public.saved_searches_id_seq;
DROP TABLE IF EXISTS public.saved_searches;
DROP SEQUENCE IF EXISTS public.reports_id_seq;
DROP TABLE IF EXISTS public.reports;
DROP SEQUENCE IF EXISTS public.quote_requests_id_seq;
DROP TABLE IF EXISTS public.quote_requests;
DROP SEQUENCE IF EXISTS public.proposal_versions_id_seq;
DROP TABLE IF EXISTS public.proposal_versions;
DROP SEQUENCE IF EXISTS public.proposal_drafts_id_seq;
DROP TABLE IF EXISTS public.proposal_drafts;
DROP TABLE IF EXISTS public.platform_settings;
DROP SEQUENCE IF EXISTS public.plans_id_seq;
DROP TABLE IF EXISTS public.plans;
DROP SEQUENCE IF EXISTS public.notification_settings_id_seq;
DROP TABLE IF EXISTS public.notification_settings;
DROP SEQUENCE IF EXISTS public.invoices_id_seq;
DROP TABLE IF EXISTS public.invoices;
DROP SEQUENCE IF EXISTS public.documents_id_seq;
DROP TABLE IF EXISTS public.documents;
DROP SEQUENCE IF EXISTS public.compliance_items_id_seq;
DROP TABLE IF EXISTS public.compliance_items;
DROP SEQUENCE IF EXISTS public.companies_id_seq;
DROP TABLE IF EXISTS public.companies;
DROP SEQUENCE IF EXISTS public.chat_messages_id_seq;
DROP TABLE IF EXISTS public.chat_messages;
DROP SEQUENCE IF EXISTS public.audit_log_id_seq;
DROP TABLE IF EXISTS public.audit_log;
DROP SEQUENCE IF EXISTS public.analyses_id_seq;
DROP TABLE IF EXISTS public.analyses;
DROP SEQUENCE IF EXISTS public.activity_events_id_seq;
DROP TABLE IF EXISTS public.activity_events;
DROP SCHEMA IF EXISTS public;
--
-- Name: public; Type: SCHEMA; Schema: -; Owner: -
--

CREATE SCHEMA public;


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

COMMENT ON SCHEMA public IS 'standard public schema';


SET default_tablespace = '';

SET default_table_access_method = heap;

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

CREATE TABLE public.activity_events (
    id integer NOT NULL,
    company_id integer NOT NULL,
    user_id integer,
    user_name text,
    action text NOT NULL,
    entity_type text,
    entity_id integer,
    entity_title text,
    created_at timestamp without time zone DEFAULT now() NOT NULL
);


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

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


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

ALTER SEQUENCE public.activity_events_id_seq OWNED BY public.activity_events.id;


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

CREATE TABLE public.analyses (
    id integer NOT NULL,
    tender_id integer NOT NULL,
    language text DEFAULT 'ar'::text NOT NULL,
    executive_summary text,
    tender_type text,
    submission_deadline text,
    required_documents jsonb DEFAULT '[]'::jsonb NOT NULL,
    technical_requirements jsonb DEFAULT '[]'::jsonb NOT NULL,
    financial_requirements jsonb DEFAULT '[]'::jsonb NOT NULL,
    legal_requirements jsonb DEFAULT '[]'::jsonb NOT NULL,
    qualification_requirements jsonb DEFAULT '[]'::jsonb NOT NULL,
    risks jsonb DEFAULT '[]'::jsonb NOT NULL,
    bid_decision text,
    bid_score integer,
    bid_reasons jsonb DEFAULT '[]'::jsonb NOT NULL,
    missing_information jsonb DEFAULT '[]'::jsonb NOT NULL,
    proposal_outline jsonb,
    created_at timestamp without time zone DEFAULT now() NOT NULL
);


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

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


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

ALTER SEQUENCE public.analyses_id_seq OWNED BY public.analyses.id;


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

CREATE TABLE public.audit_log (
    id integer NOT NULL,
    user_id integer,
    user_email text,
    company_id integer,
    tender_id integer,
    action text NOT NULL,
    entity_type text DEFAULT ''::text NOT NULL,
    entity_id integer,
    before jsonb,
    after jsonb,
    created_at timestamp without time zone DEFAULT now() NOT NULL
);


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

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


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

ALTER SEQUENCE public.audit_log_id_seq OWNED BY public.audit_log.id;


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

CREATE TABLE public.chat_messages (
    id integer NOT NULL,
    tender_id integer NOT NULL,
    user_id integer,
    role text NOT NULL,
    content text NOT NULL,
    created_at timestamp without time zone DEFAULT now() NOT NULL
);


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

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


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

ALTER SEQUENCE public.chat_messages_id_seq OWNED BY public.chat_messages.id;


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

CREATE TABLE public.companies (
    id integer NOT NULL,
    name text NOT NULL,
    sector text,
    target_regions jsonb DEFAULT '[]'::jsonb NOT NULL,
    experience text,
    certifications jsonb DEFAULT '[]'::jsonb NOT NULL,
    min_project_value numeric(15,2),
    max_project_value numeric(15,2),
    preferred_project_types jsonb DEFAULT '[]'::jsonb NOT NULL,
    bio text,
    logo_url text,
    analysis_used_this_month integer DEFAULT 0 NOT NULL,
    analysis_reset_at timestamp without time zone DEFAULT now() NOT NULL,
    created_at timestamp without time zone DEFAULT now() NOT NULL,
    updated_at timestamp without time zone DEFAULT now() NOT NULL,
    min_bid_score integer DEFAULT 60 NOT NULL,
    letterhead_path text,
    letterhead_name text,
    doc_template_path text,
    doc_template_name text,
    template_has_cover boolean DEFAULT false
);


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

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


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

ALTER SEQUENCE public.companies_id_seq OWNED BY public.companies.id;


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

CREATE TABLE public.compliance_items (
    id integer NOT NULL,
    tender_id integer NOT NULL,
    requirement text NOT NULL,
    category text DEFAULT 'admin'::text NOT NULL,
    status text DEFAULT 'pending'::text NOT NULL,
    owner text,
    notes text,
    assigned_to_user_id integer,
    assigned_to_name text,
    created_at timestamp without time zone DEFAULT now() NOT NULL,
    updated_at timestamp without time zone DEFAULT now() NOT NULL
);


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

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


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

ALTER SEQUENCE public.compliance_items_id_seq OWNED BY public.compliance_items.id;


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

CREATE TABLE public.documents (
    id integer NOT NULL,
    company_id integer NOT NULL,
    name text NOT NULL,
    document_type text,
    file_name text NOT NULL,
    file_size integer,
    file_path text,
    created_at timestamp without time zone DEFAULT now() NOT NULL,
    description text,
    expires_at timestamp without time zone
);


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

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


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

ALTER SEQUENCE public.documents_id_seq OWNED BY public.documents.id;


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

CREATE TABLE public.invoices (
    id integer NOT NULL,
    invoice_number text NOT NULL,
    company_id integer NOT NULL,
    company_name text NOT NULL,
    plan_name text,
    amount_sar numeric(10,2) NOT NULL,
    vat_amount numeric(10,2) DEFAULT '0'::numeric NOT NULL,
    total_amount numeric(10,2) NOT NULL,
    status text DEFAULT 'pending'::text NOT NULL,
    stripe_invoice_id text,
    pdf_path text,
    created_at timestamp without time zone DEFAULT now() NOT NULL
);


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

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


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

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


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

CREATE TABLE public.notification_settings (
    id integer NOT NULL,
    company_id integer NOT NULL,
    deadline_reminder_7_days boolean DEFAULT true NOT NULL,
    deadline_reminder_1_day boolean DEFAULT true NOT NULL,
    analysis_complete boolean DEFAULT true NOT NULL,
    subscription_events boolean DEFAULT true NOT NULL,
    created_at timestamp without time zone DEFAULT now() NOT NULL,
    updated_at timestamp without time zone DEFAULT now() NOT NULL
);


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

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


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

ALTER SEQUENCE public.notification_settings_id_seq OWNED BY public.notification_settings.id;


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

CREATE TABLE public.plans (
    id integer NOT NULL,
    name text NOT NULL,
    name_ar text,
    description text,
    description_ar text,
    price_sar numeric(10,2) NOT NULL,
    billing_period text DEFAULT 'monthly'::text NOT NULL,
    analysis_limit integer DEFAULT 10 NOT NULL,
    features jsonb DEFAULT '[]'::jsonb NOT NULL,
    features_ar jsonb DEFAULT '[]'::jsonb NOT NULL,
    is_active boolean DEFAULT true NOT NULL,
    stripe_price_id text,
    created_at timestamp without time zone DEFAULT now() NOT NULL,
    updated_at timestamp without time zone DEFAULT now() NOT NULL
);


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

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


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

ALTER SEQUENCE public.plans_id_seq OWNED BY public.plans.id;


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

CREATE TABLE public.platform_settings (
    key text NOT NULL,
    value text NOT NULL
);


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

CREATE TABLE public.proposal_drafts (
    id integer NOT NULL,
    tender_id integer NOT NULL,
    language text DEFAULT 'ar'::text NOT NULL,
    content text,
    introduction text,
    scope_understanding text,
    methodology text,
    team text,
    timeline text,
    quality_management text,
    risk_management text,
    conclusion text,
    created_at timestamp without time zone DEFAULT now() NOT NULL,
    updated_at timestamp without time zone DEFAULT now() NOT NULL,
    financial_summary text,
    pricing_table text,
    payment_terms text,
    financial_guarantees text,
    total_amount text,
    generated_images jsonb DEFAULT '{}'::jsonb,
    pricing_items jsonb
);


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

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


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

ALTER SEQUENCE public.proposal_drafts_id_seq OWNED BY public.proposal_drafts.id;


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

CREATE TABLE public.proposal_versions (
    id integer NOT NULL,
    tender_id integer NOT NULL,
    version_number integer NOT NULL,
    label text,
    ai_notes text,
    type text DEFAULT 'ai_generated'::text NOT NULL,
    language text DEFAULT 'ar'::text NOT NULL,
    introduction text,
    scope_understanding text,
    methodology text,
    team text,
    timeline text,
    quality_management text,
    risk_management text,
    conclusion text,
    financial_summary text,
    pricing_table text,
    payment_terms text,
    financial_guarantees text,
    total_amount text,
    file_path text,
    file_name text,
    file_type text,
    created_at timestamp without time zone DEFAULT now() NOT NULL,
    created_by text
);


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

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


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

ALTER SEQUENCE public.proposal_versions_id_seq OWNED BY public.proposal_versions.id;


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

CREATE TABLE public.quote_requests (
    id integer NOT NULL,
    tender_id integer,
    buyer_user_id integer NOT NULL,
    vendor_id integer NOT NULL,
    subject text NOT NULL,
    message text,
    items jsonb DEFAULT '[]'::jsonb NOT NULL,
    status text DEFAULT 'pending'::text NOT NULL,
    vendor_response text,
    quoted_price text,
    valid_until timestamp without time zone,
    created_at timestamp without time zone DEFAULT now() NOT NULL,
    updated_at timestamp without time zone DEFAULT now() NOT NULL
);


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

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


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

ALTER SEQUENCE public.quote_requests_id_seq OWNED BY public.quote_requests.id;


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

CREATE TABLE public.reports (
    id integer NOT NULL,
    company_id integer NOT NULL,
    user_id integer,
    tender_id integer,
    title text NOT NULL,
    type text DEFAULT 'analysis'::text NOT NULL,
    language text DEFAULT 'ar'::text NOT NULL,
    format text DEFAULT 'pdf'::text NOT NULL,
    content jsonb,
    file_path text,
    created_at timestamp without time zone DEFAULT now() NOT NULL
);


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

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


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

ALTER SEQUENCE public.reports_id_seq OWNED BY public.reports.id;


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

CREATE TABLE public.saved_searches (
    id integer NOT NULL,
    company_id integer NOT NULL,
    user_id integer,
    name text NOT NULL,
    filters jsonb DEFAULT '{}'::jsonb NOT NULL,
    is_watchlist integer DEFAULT 0 NOT NULL,
    created_at timestamp without time zone DEFAULT now() NOT NULL,
    updated_at timestamp without time zone DEFAULT now() NOT NULL
);


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

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


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

ALTER SEQUENCE public.saved_searches_id_seq OWNED BY public.saved_searches.id;


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

CREATE TABLE public.submission_checklist (
    id integer NOT NULL,
    tender_id integer NOT NULL,
    label text NOT NULL,
    label_en text,
    done boolean DEFAULT false NOT NULL,
    category text DEFAULT 'general'::text,
    sort_order integer DEFAULT 0 NOT NULL,
    created_at timestamp without time zone DEFAULT now() NOT NULL,
    updated_at timestamp without time zone DEFAULT now() NOT NULL
);


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

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


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

ALTER SEQUENCE public.submission_checklist_id_seq OWNED BY public.submission_checklist.id;


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

CREATE TABLE public.subscriptions (
    id integer NOT NULL,
    company_id integer NOT NULL,
    plan_id integer,
    status text DEFAULT 'active'::text NOT NULL,
    stripe_subscription_id text,
    stripe_customer_id text,
    current_period_start timestamp without time zone,
    current_period_end timestamp without time zone,
    cancel_at_period_end boolean DEFAULT false NOT NULL,
    created_at timestamp without time zone DEFAULT now() NOT NULL,
    updated_at timestamp without time zone DEFAULT now() NOT NULL
);


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

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


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

ALTER SEQUENCE public.subscriptions_id_seq OWNED BY public.subscriptions.id;


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

CREATE TABLE public.team_assignments (
    id integer NOT NULL,
    company_id integer NOT NULL,
    tender_id integer NOT NULL,
    user_id integer,
    user_name text NOT NULL,
    user_email text,
    role text DEFAULT 'member'::text NOT NULL,
    notes text,
    created_at timestamp without time zone DEFAULT now() NOT NULL,
    updated_at timestamp without time zone DEFAULT now() NOT NULL
);


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

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


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

ALTER SEQUENCE public.team_assignments_id_seq OWNED BY public.team_assignments.id;


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

CREATE TABLE public.tender_documents (
    id integer NOT NULL,
    tender_id integer NOT NULL,
    file_name text NOT NULL,
    file_size integer,
    extracted_text text,
    created_at timestamp without time zone DEFAULT now() NOT NULL,
    file_path text,
    openai_file_id text,
    summary text,
    ocr_status text,
    ocr_error text
);


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

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


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

ALTER SEQUENCE public.tender_documents_id_seq OWNED BY public.tender_documents.id;


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

CREATE TABLE public.tender_fdds (
    id integer NOT NULL,
    tender_id integer NOT NULL,
    language text DEFAULT 'ar'::text NOT NULL,
    overview text,
    functional_requirements text,
    non_functional_requirements text,
    data_requirements text,
    interfaces text,
    constraints text,
    assumptions text,
    acceptance_criteria text,
    created_at timestamp without time zone DEFAULT now() NOT NULL,
    updated_at timestamp without time zone DEFAULT now() NOT NULL
);


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

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


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

ALTER SEQUENCE public.tender_fdds_id_seq OWNED BY public.tender_fdds.id;


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

CREATE TABLE public.tender_notes (
    id integer NOT NULL,
    tender_id integer NOT NULL,
    user_id integer NOT NULL,
    author_name text NOT NULL,
    content text NOT NULL,
    mentions text[],
    created_at timestamp without time zone DEFAULT now() NOT NULL,
    updated_at timestamp without time zone DEFAULT now() NOT NULL
);


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

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


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

ALTER SEQUENCE public.tender_notes_id_seq OWNED BY public.tender_notes.id;


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

CREATE TABLE public.tenders (
    id integer NOT NULL,
    company_id integer NOT NULL,
    title text NOT NULL,
    government_entity text,
    competition_number text,
    sector text,
    city text,
    deadline timestamp without time zone,
    booklet_price numeric(12,2),
    tender_url text,
    description text,
    status text DEFAULT 'new'::text NOT NULL,
    has_analysis boolean DEFAULT false NOT NULL,
    created_at timestamp without time zone DEFAULT now() NOT NULL,
    updated_at timestamp without time zone DEFAULT now() NOT NULL,
    vector_store_id text
);


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

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


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

ALTER SEQUENCE public.tenders_id_seq OWNED BY public.tenders.id;


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

CREATE TABLE public.users (
    id integer NOT NULL,
    clerk_id text NOT NULL,
    email text NOT NULL,
    first_name text,
    last_name text,
    role text DEFAULT 'company_user'::text NOT NULL,
    company_id integer,
    is_suspended boolean DEFAULT false NOT NULL,
    language text DEFAULT 'ar'::text NOT NULL,
    created_at timestamp without time zone DEFAULT now() NOT NULL,
    updated_at timestamp without time zone DEFAULT now() NOT NULL
);


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

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


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

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


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

CREATE TABLE public.vendor_products (
    id integer NOT NULL,
    vendor_id integer NOT NULL,
    name text NOT NULL,
    name_ar text,
    category text NOT NULL,
    category_ar text,
    description text,
    description_ar text,
    unit text DEFAULT 'piece'::text NOT NULL,
    min_price numeric(15,2),
    max_price numeric(15,2),
    currency text DEFAULT 'SAR'::text NOT NULL,
    in_stock boolean DEFAULT true NOT NULL,
    min_order_qty integer DEFAULT 1 NOT NULL,
    lead_time_days integer,
    specs jsonb DEFAULT '{}'::jsonb,
    image_url text,
    tags jsonb DEFAULT '[]'::jsonb NOT NULL,
    is_active boolean DEFAULT true NOT NULL,
    created_at timestamp without time zone DEFAULT now() NOT NULL,
    updated_at timestamp without time zone DEFAULT now() NOT NULL
);


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

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


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

ALTER SEQUENCE public.vendor_products_id_seq OWNED BY public.vendor_products.id;


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

CREATE TABLE public.vendor_reviews (
    id integer NOT NULL,
    vendor_id integer NOT NULL,
    buyer_user_id integer NOT NULL,
    quote_request_id integer NOT NULL,
    rating integer NOT NULL,
    comment text,
    created_at timestamp without time zone DEFAULT now() NOT NULL
);


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

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


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

ALTER SEQUENCE public.vendor_reviews_id_seq OWNED BY public.vendor_reviews.id;


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

CREATE TABLE public.vendors (
    id integer NOT NULL,
    user_id integer NOT NULL,
    company_name text NOT NULL,
    company_name_ar text,
    sector text NOT NULL,
    sector_ar text,
    description text,
    description_ar text,
    city text NOT NULL,
    region text,
    address text,
    contact_email text NOT NULL,
    phone text,
    website text,
    logo_url text,
    cr_number text,
    vat_number text,
    categories jsonb DEFAULT '[]'::jsonb NOT NULL,
    is_verified boolean DEFAULT false NOT NULL,
    is_active boolean DEFAULT true NOT NULL,
    rating numeric(3,2) DEFAULT 0,
    total_reviews integer DEFAULT 0 NOT NULL,
    created_at timestamp without time zone DEFAULT now() NOT NULL,
    updated_at timestamp without time zone DEFAULT now() NOT NULL
);


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

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


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

ALTER SEQUENCE public.vendors_id_seq OWNED BY public.vendors.id;


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

COPY public.activity_events (id, company_id, user_id, user_name, action, entity_type, entity_id, entity_title, created_at) FROM stdin;
1	1	2	Admin	created_tender	tender	1	سس	2026-05-25 06:40:05.144763
2	1	2	ashraf farid	analyzed_tender	tender	1	سس	2026-05-25 09:52:39.160537
\.


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

COPY public.analyses (id, tender_id, language, executive_summary, tender_type, submission_deadline, required_documents, technical_requirements, financial_requirements, legal_requirements, qualification_requirements, risks, bid_decision, bid_score, bid_reasons, missing_information, proposal_outline, created_at) FROM stdin;
1	1	ar	مشروع أرشفة يتطلب خبرة في تقنية المعلومات، يستهدف منطقة الرياض.	أرشفة	N/A	["N/A"]	["خبرة في مشاريع الأرشفة", "قدرة على التعامل مع أنظمة إدارة المحتوى"]	["تقديم عرض مالي تنافسي"]	["تسجيل الشركة في الرياض", "الامتثال للوائح المحلية"]	["خبرة لا تقل عن 5 سنوات في مشاريع مشابهة"]	[{"title": "نقص المعلومات", "severity": "high", "description": "عدم توفر معلومات كافية حول متطلبات المشروع."}]	needs_review	0	["توافق الخبرة مع متطلبات المشروع", "استهداف المنطقة الجغرافية الصحيحة"]	[]	{}	2026-05-25 09:52:39.063368
\.


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

COPY public.audit_log (id, user_id, user_email, company_id, tender_id, action, entity_type, entity_id, before, after, created_at) FROM stdin;
1	2	ashraffaridhd@gmail.com	1	1	update_tender	tender	1	{"id": 1, "city": "", "title": "سس", "sector": "", "status": "new", "deadline": "2027-01-01T01:00:00.000Z", "companyId": 1, "createdAt": "2026-05-25T06:40:05.139Z", "tenderUrl": null, "updatedAt": "2026-05-25T06:40:05.139Z", "description": "س", "hasAnalysis": false, "bookletPrice": null, "governmentEntity": "سس", "competitionNumber": "222"}	{"id": 1, "city": "الرياض", "title": "سس", "sector": "الصحة", "status": "new", "deadline": "2027-01-01T01:00:00.000Z", "companyId": 1, "createdAt": "2026-05-25T06:40:05.139Z", "tenderUrl": null, "updatedAt": "2026-05-25T07:56:22.949Z", "description": "مشروع ارشفة", "hasAnalysis": false, "bookletPrice": null, "governmentEntity": "سس", "competitionNumber": "222"}	2026-05-25 07:56:23.006864
2	2	ashraffaridhd@gmail.com	1	1	update_tender	tender	1	{"id": 1, "city": "الرياض", "title": "سس", "sector": "الصحة", "status": "new", "deadline": "2027-01-01T01:00:00.000Z", "companyId": 1, "createdAt": "2026-05-25T06:40:05.139Z", "tenderUrl": null, "updatedAt": "2026-05-25T07:56:22.949Z", "description": "مشروع ارشفة", "hasAnalysis": false, "bookletPrice": null, "governmentEntity": "سس", "competitionNumber": "222"}	{"id": 1, "city": "الرياض", "title": "سس", "sector": "الصحة", "status": "new", "deadline": "2027-01-01T01:00:00.000Z", "companyId": 1, "createdAt": "2026-05-25T06:40:05.139Z", "tenderUrl": null, "updatedAt": "2026-05-25T07:56:47.791Z", "description": "مشروع ارشفة", "hasAnalysis": false, "bookletPrice": null, "governmentEntity": "وزارة الصحة", "competitionNumber": "222"}	2026-05-25 07:56:47.824878
3	2	ashraffaridhd@gmail.com	1	1	create	analysis	1	\N	{"bidScore": 0, "bidDecision": "needs_review"}	2026-05-25 09:52:39.167125
4	2	ashraffaridhd@gmail.com	1	1	generate	proposal_draft	1	\N	\N	2026-05-25 11:47:35.062049
5	2	ashraffaridhd@gmail.com	1	1	generate	proposal_draft	1	\N	\N	2026-05-25 11:48:11.261246
6	2	ashraffaridhd@gmail.com	1	1	generate	proposal_draft	1	\N	\N	2026-05-25 11:49:31.695407
7	2	ashraffaridhd@gmail.com	1	1	update	proposal_draft	1	\N	\N	2026-05-25 12:30:27.103641
8	2	ashraffaridhd@gmail.com	1	1	generate	proposal_draft	1	\N	\N	2026-05-25 13:37:35.340937
\.


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

COPY public.chat_messages (id, tender_id, user_id, role, content, created_at) FROM stdin;
1	1	2	user	اسم الجهة ايه اللى مصدرة العرض	2026-05-25 12:18:18.213106
2	1	\N	assistant	الجهة المصدرة للعرض هي "شركة الوفاق حلول النقل – يلو".	2026-05-25 12:18:26.181586
\.


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

COPY public.companies (id, name, sector, target_regions, experience, certifications, min_project_value, max_project_value, preferred_project_types, bio, logo_url, analysis_used_this_month, analysis_reset_at, created_at, updated_at, min_bid_score, letterhead_path, letterhead_name, doc_template_path, doc_template_name, template_has_cover) FROM stdin;
1	قلعة العقول	تقنية المعلومات	["الرياض"]	30	[]	\N	\N	["برمجيات"]	شركة تهتم بمجالات التقنية والذكاء الاصطناعي	\N	1	2026-05-25 06:27:59.438709	2026-05-25 06:27:59.438709	2026-05-25 09:52:39.157	60	\N	\N	\N	\N	f
\.


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

COPY public.compliance_items (id, tender_id, requirement, category, status, owner, notes, assigned_to_user_id, assigned_to_name, created_at, updated_at) FROM stdin;
1	1	خبرة في مشاريع الأرشفة	technical	pending	\N	\N	\N	\N	2026-05-25 09:52:39.070776	2026-05-25 09:52:39.070776
2	1	قدرة على التعامل مع أنظمة إدارة المحتوى	technical	pending	\N	\N	\N	\N	2026-05-25 09:52:39.070776	2026-05-25 09:52:39.070776
3	1	تقديم عرض مالي تنافسي	financial	pending	\N	\N	\N	\N	2026-05-25 09:52:39.070776	2026-05-25 09:52:39.070776
4	1	تسجيل الشركة في الرياض	legal	pending	\N	\N	\N	\N	2026-05-25 09:52:39.070776	2026-05-25 09:52:39.070776
5	1	الامتثال للوائح المحلية	legal	pending	\N	\N	\N	\N	2026-05-25 09:52:39.070776	2026-05-25 09:52:39.070776
6	1	N/A	admin	pending	\N	\N	\N	\N	2026-05-25 09:52:39.070776	2026-05-25 09:52:39.070776
\.


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

COPY public.documents (id, company_id, name, document_type, file_name, file_size, file_path, created_at, description, expires_at) FROM stdin;
2	1	السجل التجاري	\N	1.pdf	315439	/home/runner/workspace/artifacts/api-server/uploads/1779692187465-1.pdf	2026-05-25 06:56:28.586521	نسخة معتمدة تجدد سنويا	2027-05-21 00:00:00
3	1	الرقم الضريبي	\N	2.pdf	170164	/home/runner/workspace/artifacts/api-server/uploads/1779694248429-2.pdf	2026-05-25 07:30:48.514168	\N	2026-12-31 00:00:00
\.


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

COPY public.invoices (id, invoice_number, company_id, company_name, plan_name, amount_sar, vat_amount, total_amount, status, stripe_invoice_id, pdf_path, created_at) FROM stdin;
\.


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

COPY public.notification_settings (id, company_id, deadline_reminder_7_days, deadline_reminder_1_day, analysis_complete, subscription_events, created_at, updated_at) FROM stdin;
1	1	t	t	t	t	2026-05-25 06:53:50.209491	2026-05-25 07:13:15.283
\.


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

COPY public.plans (id, name, name_ar, description, description_ar, price_sar, billing_period, analysis_limit, features, features_ar, is_active, stripe_price_id, created_at, updated_at) FROM stdin;
1	Starter	المبتدئ	Perfect for small companies exploring tenders	مثالي للشركات الصغيرة	299.00	monthly	5	["PDF Upload & Analysis", "Bid/No-Bid Decision", "Compliance Matrix", "Email Support"]	["رفع وتحليل PDF", "قرار الترشيح", "مصفوفة الامتثال", "دعم عبر البريد الإلكتروني"]	t	\N	2026-05-24 18:52:21.960834	2026-05-24 18:52:21.960834
2	Professional	الاحترافي	For growing companies with regular tenders	للشركات المتنامية	799.00	monthly	20	["Everything in Starter", "AI Proposal Generation", "AI Chat Assistant", "Document Library", "Priority Support"]	["كل ميزات المبتدئ", "توليد العرض بالذكاء الاصطناعي", "مساعد ذكي مخصص", "مكتبة المستندات", "دعم ذو أولوية"]	t	\N	2026-05-24 18:52:21.960834	2026-05-24 18:52:21.960834
3	Enterprise	المؤسسي	Full power for large enterprises	القوة الكاملة للمؤسسات الكبيرة	1999.00	monthly	100	["Everything in Professional", "Unlimited Team Members", "API Access", "Custom Integrations", "Dedicated Account Manager"]	["كل ميزات الاحترافي", "أعضاء فريق غير محدود", "الوصول إلى API", "تكاملات مخصصة", "مدير حساب مخصص"]	t	\N	2026-05-24 18:52:21.960834	2026-05-24 18:52:21.960834
\.


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

COPY public.platform_settings (key, value) FROM stdin;
ai_model	gpt-4o
ai_api_key	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
system_prompt_ar	
proposal_prompt_en	
system_prompt_en	
proposal_prompt_ar	
landing_title_ar	المساعد الذكي للمناقصات الحكومية السعودية
landing_title_en	AI Tender Copilot Saudi
landing_subtitle_ar	حلل المناقصات الحكومية السعودية بالذكاء الاصطناعي
landing_subtitle_en	Analyze Saudi government tenders with AI precision
\.


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

COPY public.proposal_drafts (id, tender_id, language, content, introduction, scope_understanding, methodology, team, timeline, quality_management, risk_management, conclusion, created_at, updated_at, financial_summary, pricing_table, payment_terms, financial_guarantees, total_amount, generated_images, pricing_items) FROM stdin;
1	1	ar	\N	تتشرف شركة قلعة العقول، الرائدة في مجال تقنية المعلومات منذ 30 عامًا، بتقديم عرضها الفني والمالي لتنفيذ مشروع الأرشفة الإلكترونية لصالح الجهة الحكومية في منطقة الرياض. نحن ملتزمون بتقديم حلول مبتكرة وفعالة تلبي احتياجات الأرشفة الحالية والمستقبلية وفقًا لأعلى المعايير التقنية والأمنية.	نحن ندرك أن نطاق العمل يتضمن أرشفة المستندات الحالية من خلال المسح الضوئي الشامل وتصنيفها وربطها بالبيانات الوصفية، بالإضافة إلى توفير آلية مستدامة للأرشفة الإلكترونية المتكاملة مع الأنظمة الحالية مثل Microsoft Dynamics، وأتمتة عمليات الأرشفة وسير العمل.	تشمل منهجيتنا تنفيذ المشروع على مراحل تبدأ بتقييم شامل للمستندات الورقية الحالية، يليها المسح الضوئي والتصنيف، ثم الربط بالبيانات الوصفية والتخزين في قاعدة بيانات آمنة. سنقوم بتكامل النظام الجديد مع الأنظمة الحالية وتوفير التدريب اللازم للموظفين لضمان سهولة الاستخدام.	يتكون فريقنا من خبراء في تقنية المعلومات متخصصين في مشاريع الأرشفة الإلكترونية، يشمل الفريق مدير مشروع، مهندسي نظم، متخصصي قواعد بيانات، وفريق دعم فني. يتمتع جميع أعضاء الفريق بخبرة تزيد عن 5 سنوات في مشاريع مشابهة.	سيتم تنفيذ المشروع على مدى 6 أشهر، مقسمة إلى مراحل تشمل التحليل والتخطيط (شهر واحد)، المسح الضوئي والأرشفة (شهرين)، التكامل والتدريب (شهرين)، والاختبار والتسليم النهائي (شهر واحد).	سنقوم بتطبيق خطة ضمان الجودة التي تتضمن مراجعات دورية، واختبارات الأمان، وتقييم الأداء لضمان أن النظام يلبي جميع المتطلبات والمعايير المحددة.	لقد حددنا المخاطر المحتملة مثل نقص المعلومات وسنعمل على تخفيفها من خلال التواصل المستمر مع الجهة المعنية للحصول على جميع المتطلبات والتفاصيل اللازمة لضمان تنفيذ المشروع بنجاح.	نحن على ثقة بأن عرضنا سيوفر للجهة الحكومية نظام أرشفة إلكتروني متكامل وفعال يساهم في تحسين كفاءة العمل وتقليل التكاليف التشغيلية. نتطلع إلى شراكة ناجحة ومثمرة.	2026-05-25 11:02:27.721582	2026-05-25 13:37:35.335	\N	\N	\N	\N	\N	{"introduction": "/home/runner/workspace/artifacts/uploads/proposal-images/1779712107397-introduction.png"}	{"items": [{"unit": "مشروع", "total": 75000, "quantity": 1, "unitPrice": 75000, "description": "- المسح الضوئي وتصنيف المستندات"}, {"unit": "مشروع", "total": 50000, "quantity": 1, "unitPrice": 50000, "description": "- ربط المستندات بالبيانات الوصفية وتخزينها"}, {"unit": "مشروع", "total": 15000, "quantity": 1, "unitPrice": 15000, "description": "- إتلاف الوثائق الورقية بعد الأرشفة"}, {"unit": "مشروع", "total": 150000, "quantity": 1, "unitPrice": 150000, "description": "- توفير آلية مستدامة للأرشفة والتكامل"}, {"unit": "مشروع", "total": 100000, "quantity": 1, "unitPrice": 100000, "description": "- أتمتة عمليات الأرشفة وسير العمل"}, {"unit": "سنوي", "total": 35000, "quantity": 1, "unitPrice": 35000, "description": "- تراخيص البرامج المستخدمة"}, {"unit": "سنوي", "total": 45000, "quantity": 1, "unitPrice": 45000, "description": "- الدعم والصيانة السنوية"}, {"unit": "", "total": 0, "quantity": 0, "unitPrice": 0, "description": "**الإجمالي قبل الضريبة**"}, {"unit": "", "total": 0, "quantity": 0, "unitPrice": 0, "description": "**ضريبة القيمة المضافة 15%**"}, {"unit": "", "total": 0, "quantity": 0, "unitPrice": 0, "description": "**الإجمالي مع الضريبة**"}], "total": 540500, "vatRate": 0.15, "currency": "SAR", "subtotal": 470000, "vatAmount": 70500}
\.


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

COPY public.proposal_versions (id, tender_id, version_number, label, ai_notes, type, language, introduction, scope_understanding, methodology, team, timeline, quality_management, risk_management, conclusion, financial_summary, pricing_table, payment_terms, financial_guarantees, total_amount, file_path, file_name, file_type, created_at, created_by) FROM stdin;
1	1	1	1	\N	ai_generated	ar	تتشرف شركة قلعة العقول بتقديم عرضها الفني والمالي لمشروع الأرشفة المطلوب من قبل هيئة المشتريات الحكومية في منطقة الرياض. نحن نمتلك خبرة تمتد لأكثر من 30 عامًا في مجال تقنية المعلومات، مما يجعلنا الشريك المثالي لتنفيذ هذا المشروع بنجاح وكفاءة عالية.	يتطلب المشروع تنفيذ نظام أرشفة متكامل يتماشى مع أحدث التقنيات في إدارة المحتوى. يتضمن ذلك تطوير بنية تحتية قوية لضمان سهولة الوصول إلى المعلومات واسترجاعها، مع التركيز على الأمان والسرعة في الأداء.	سنتبع منهجية تنفيذية تبدأ بتحليل متطلبات العميل، يليها تصميم النظام وفقًا لأفضل الممارسات. سنقوم بتطوير واختبار النظام بشكل تدريجي لضمان توافقه مع جميع المتطلبات. سيتم تدريب فريق العمل على استخدام النظام قبل الانتقال إلى مرحلة التشغيل الفعلي.	يتكون فريقنا من مهندسين متخصصين في تقنية المعلومات، وخبراء في إدارة المشاريع، ومطورين ذوي خبرة في أنظمة الأرشفة. جميع أعضاء الفريق حاصلون على شهادات معترف بها ولديهم خبرة عملية في مشاريع مشابهة.	سيتم تنفيذ المشروع على مدار 6 أشهر، مقسمة إلى مراحل تشمل التحليل (شهر واحد)، التصميم (شهر واحد)، التطوير (شهرين)، الاختبار (شهر واحد)، والتدريب والتسليم (شهر واحد).	سنطبق معايير الجودة العالمية مثل ISO 9001 لضمان تقديم نظام أرشفة يلبي توقعات العميل. سيتم إجراء اختبارات جودة دورية خلال جميع مراحل المشروع.	تم تحديد خطر نقص المعلومات كخطر عالي. سنقوم بإجراء اجتماعات دورية مع العميل لضمان وضوح جميع المتطلبات وتحديثها بشكل مستمر لتقليل هذا الخطر.	نحن واثقون من قدرتنا على تقديم نظام أرشفة يتجاوز توقعاتكم، ونتطلع إلى فرصة التعاون معكم لتحقيق أهداف المشروع بكفاءة وفعالية.	\N	\N	\N	\N	\N	\N	\N	\N	2026-05-25 12:08:08.324178	ashraffaridhd@gmail.com
2	1	2	قبل إعادة توليد: pricingTable	\N	ai_generated	ar	تتشرف شركة قلعة العقول بتقديم عرضها الفني والمالي لمشروع الأرشفة المطلوب من قبل هيئة المشتريات الحكومية في منطقة الرياض. نحن نمتلك خبرة تمتد لأكثر من 30 عامًا في مجال تقنية المعلومات، مما يجعلنا الشريك المثالي لتنفيذ هذا المشروع بنجاح وكفاءة عالية.	يتطلب المشروع تنفيذ نظام أرشفة متكامل يتماشى مع أحدث التقنيات في إدارة المحتوى. يتضمن ذلك تطوير بنية تحتية قوية لضمان سهولة الوصول إلى المعلومات واسترجاعها، مع التركيز على الأمان والسرعة في الأداء.	سنتبع منهجية تنفيذية تبدأ بتحليل متطلبات العميل، يليها تصميم النظام وفقًا لأفضل الممارسات. سنقوم بتطوير واختبار النظام بشكل تدريجي لضمان توافقه مع جميع المتطلبات. سيتم تدريب فريق العمل على استخدام النظام قبل الانتقال إلى مرحلة التشغيل الفعلي.	يتكون فريقنا من مهندسين متخصصين في تقنية المعلومات، وخبراء في إدارة المشاريع، ومطورين ذوي خبرة في أنظمة الأرشفة. جميع أعضاء الفريق حاصلون على شهادات معترف بها ولديهم خبرة عملية في مشاريع مشابهة.	سيتم تنفيذ المشروع على مدار 6 أشهر، مقسمة إلى مراحل تشمل التحليل (شهر واحد)، التصميم (شهر واحد)، التطوير (شهرين)، الاختبار (شهر واحد)، والتدريب والتسليم (شهر واحد).	سنطبق معايير الجودة العالمية مثل ISO 9001 لضمان تقديم نظام أرشفة يلبي توقعات العميل. سيتم إجراء اختبارات جودة دورية خلال جميع مراحل المشروع.	تم تحديد خطر نقص المعلومات كخطر عالي. سنقوم بإجراء اجتماعات دورية مع العميل لضمان وضوح جميع المتطلبات وتحديثها بشكل مستمر لتقليل هذا الخطر.	نحن واثقون من قدرتنا على تقديم نظام أرشفة يتجاوز توقعاتكم، ونتطلع إلى فرصة التعاون معكم لتحقيق أهداف المشروع بكفاءة وفعالية.	\N	\N	\N	\N	\N	\N	\N	\N	2026-05-25 13:37:10.299431	ashraffaridhd@gmail.com
\.


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

COPY public.quote_requests (id, tender_id, buyer_user_id, vendor_id, subject, message, items, status, vendor_response, quoted_price, valid_until, created_at, updated_at) FROM stdin;
\.


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

COPY public.reports (id, company_id, user_id, tender_id, title, type, language, format, content, file_path, created_at) FROM stdin;
\.


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

COPY public.saved_searches (id, company_id, user_id, name, filters, is_watchlist, created_at, updated_at) FROM stdin;
\.


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

COPY public.submission_checklist (id, tender_id, label, label_en, done, category, sort_order, created_at, updated_at) FROM stdin;
1	1	العرض الفني	Technical Proposal	f	documents	1	2026-05-25 12:08:31.519574	2026-05-25 12:08:31.519574
2	1	العرض المالي	Financial Proposal	f	documents	2	2026-05-25 12:08:31.519574	2026-05-25 12:08:31.519574
3	1	الوثائق القانونية (السجل التجاري، الترخيص)	Legal Documents	f	legal	3	2026-05-25 12:08:31.519574	2026-05-25 12:08:31.519574
4	1	شهادة الزكاة والضريبة	Zakat & Tax Certificate	f	legal	4	2026-05-25 12:08:31.519574	2026-05-25 12:08:31.519574
5	1	شهادة التأمينات الاجتماعية (GOSI)	GOSI Certificate	f	legal	5	2026-05-25 12:08:31.519574	2026-05-25 12:08:31.519574
6	1	شهادة حسن السير والسلوك	Good Standing Certificate	f	legal	6	2026-05-25 12:08:31.519574	2026-05-25 12:08:31.519574
7	1	الكفالة الابتدائية (إن وُجدت)	Bid Bond (if required)	f	financial	7	2026-05-25 12:08:31.519574	2026-05-25 12:08:31.519574
8	1	مراجعة متطلبات الامتثال	Review Compliance Checklist	f	compliance	8	2026-05-25 12:08:31.519574	2026-05-25 12:08:31.519574
9	1	رفع العرض على المنصة الرسمية (منصة اعتماد)	Submit on Etimad Platform	f	submission	9	2026-05-25 12:08:31.519574	2026-05-25 12:08:31.519574
\.


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

COPY public.subscriptions (id, company_id, plan_id, status, stripe_subscription_id, stripe_customer_id, current_period_start, current_period_end, cancel_at_period_end, created_at, updated_at) FROM stdin;
\.


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

COPY public.team_assignments (id, company_id, tender_id, user_id, user_name, user_email, role, notes, created_at, updated_at) FROM stdin;
\.


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

COPY public.tender_documents (id, tender_id, file_name, file_size, extracted_text, created_at, file_path, openai_file_id, summary, ocr_status, ocr_error) FROM stdin;
2	1	نظام_أرشفة_إلكتروني.pdf	333317	تاريخ الإصدار : 06 مايو 2026\nرقم الإصدار : الأول\n\nوثيقة طلب تقديم عروض الأسعار\n\nمشروع نظام الأرشفة الإلكترونية والتحول من الأرشيف الورقي\n\nالجهة المصدرة : شركة الوفاق لحلول النقل - يلو\nالقسم المعني : فريق تقنية المعلومات والتحول الرقمي\n\nYELO\nwww.iyelo.com\nRiyadh - KSA\n\n1\n\nالفهرس\nوثيقة طلب تقديم عروض الأسعار .......\nمشروع نظام الأرشفة الإلكترونية والتحول من الأرشيف الورقي .\n1. مقدمة وأهداف المشروع ............\n2. الوضع الحالي : .\n...............3. نطاق العمل\n4. المتطلبات :.\n5. المتطلبات الفنية والأمنية\n6. الامتثال المتطلبات القانونية، وإدارة المخاطر :\n7. متطلبات خطة التنفيذ ..\n8. المطلوب من الموردين تقديمه في عروضهم :\n\n1\n1\n3\n3\n4\n5\n5\n6\n7\n8\n\n2\n\n1. مقدمة وأهداف المشروع :\nتسعى شركة الوفاق لحلول النقل يلو إلى تنفيذ مشروع استراتيجي متكامل للأرشفة الإلكترونية، يهدف إلى التحول التدريجي والجذري من بيئة الأرشيف الورقي التقليدي إلى نظام\nإلكتروني موحد وحديث لإدارة المستندات ويهدف هذا المشروع إلى تحقيق الأهداف الاستراتيجية التالية :\n• تحسين كفاءة وسرعة عمليات البحث والاسترجاع، وضمان سهولة الوصول إلى المستندات والمعلومات بدقة عالية.\n• حماية المستندات والأصول المعلوماتية من مخاطر التلف أو الفقدان أو الكوارث، وتعزيز استمرارية الأعمال.\n• رفع مستويات الحوكمة والامتثال للمتطلبات النظامية، والتشريعات القانونية، والأنظمة الضريبية ذات الصلة.\n• خفض التكاليف التشغيلية المرتبطة بإدارة الأرشيف الورقي، بما في ذلك مساحات التخزين والجهد التشغيلي.\n\n2. الوضع الحالي :\nتعتمد الشركة حاليًا على نظام أرشفة ورقي مركزي، يتم من خلاله توريد المستندات من مختلف الإدارات والفروع وعلى الرغم من ذلك، يواجه هذا النظام عددًا من التحديات التشغيلية،\nمن أبرزها :\n• الاعتماد الكامل على التصنيف اليدوي للمستندات من قبل قسم الأرشيف، مما يزيد من احتمالية الأخطاء.\n• استهلاك وقت وجهد كبيرين في عمليات التخزين، الفهرسة، والاسترجاع.\n• صعوبة وبطء الوصول إلى المعلومات الحيوية، لاسيما عند الحاجة العاجلة لاتخاذ القرار.\n• ارتفاع مخاطر فقدان أو تلف المستندات الورقية نتيجة العوامل البيئية أو الأخطاء البشرية.\n• ارتفاع مخاطر فقدان أو تلف المستندات الورقية نتيجة العوامل البيئية أو البشرية\n\n3\n\n3. نطاق العمل :\nيتمثل نطاق عمل المشروع في تنفيذ حل متكامل لأرشفة وإدارة المستندات، بما يحقق أهداف التحول الرقمي ويعزز كفاءة العمليات، وفق ما هو موضح أدناه.\nأولاً : مسؤوليات الطرف المنفذ (المورد)\nيلتزم الطرف المنفذ بتنفيذ الأعمال والخدمات التالية:\nأرشفة المستندات الحالية (الأرشيف القائم)\n• تنفيذ أعمال المسح الضوئي الشامل لكافة المستندات الورقية وفق المعايير الفنية المعتمدة، وبجودة عالية تضمن وضوح المحتوى وسلامة البيانات.\n• تصنيف المستندات تصنيفًا دقيقًا حسب طبيعتها ونوعها، بما يشمل - على سبيل المثال لا الحصر - الفواتير، والعقود، ومستندات الأصول، والمستندات الإدارية.\n• ربط المستندات المؤرشفة بالبيانات الوصفية (Metadata) المتفق عليها، مثل رقم العقد، ورقم الفاتورة، والسنة المالية، وغيرها، بما يضمن سهولة البحث والاسترجاع.\n• تخزين وحفظ المستندات ضمن قاعدة بيانات إلكترونية آمنة، مع الالتزام بمتطلبات الحوكمة، وحماية البيانات، وأمن المعلومات.\n• مسؤولية إتلاف الوثائق الورقية على المورد بعد إتمام الأرشفة الإلكترونية والتحقق من اعتماد المخرجات من قبل شركة يلو، وذلك بموجب خطاب رسمي معتمد، وبما يتوافق\nمع المتطلبات القانونية مع اشتراط تقديم شهادة إتلاف معتمدة.\nالأرشفة المستقبلية والتكامل التقني\n• توفير آلية مستدامة ومنهجية للأرشفة الإلكترونية المستقبلية، تمكن من رفع وأرشفة المستندات إلكترونيًا بشكل منظم وسلس، كجزء من الإجراءات التشغيلية اليومية.\n• تحقيق التكامل الفني الكامل مع الأنظمة الحالية للطرف المتعاقد، وبشكل خاص : Microsoft Dynamics\n• أتمتة عمليات الأرشفة وسير العمل (Workflow) وفق التسلسل المعتمد، بما يضمن سهولة التتبع والمراجعة والالتزام بالسياسات المعتمدة.\nثانيًا: مسؤوليات الطرف المتعاقد (الموظفين / الجهة)\nيلتزم الطرف المتعاقد بما يلي:\n• توفير جميع المستندات والملفات الورقية المطلوب أرشفتها، وتجهيزها وتسليمها للمورد وفق الخطة الزمنية المعتمدة.\n• تعيين منسق مشروع رسمي ونقاط اتصال معتمدة للتنسيق والمتابعة واعتماد المخرجات.\n• اعتماد سياسات التصنيف، والبيانات الوصفية، وإجراءات سير العمل وتوفير صلاحيات الوصول للانظمة مايكروسوفت 365 بما يتوافق كع سياسات امن المعلومات\n\n4\n\n4. المتطلبات الوظيفية والتشغيلية :\nيجب أن يوفر النظام المقترح بيئة متكاملة لإدارة المستندات تتضمن - كحد أدنى – الخصائص التالية :\n• إدارة الصلاحيات:\nنظام صلاحيات دقيق ومركزي مبني على الأدوار الوظيفية، ومتوافق مع الهيكل التنظيمي، بما يضمن التحكم في الوصول إلى المستندات وفق مبدأ أقل صلاحية\n• سجل التدقيق : (Audit Trail)\nتوفير سجل تدقيق شامل، وغير قابل للتعديل، يوثّق جميع العمليات التي تتم على المستندات، بما يشمل – على سبيل المثال لا الحصر – العرض، التعديل، الطباعة،\nوالحذف، مع تسجيل هوية المستخدم التاريخ، الوقت، ونوع العملية.\n• إدارة الإصدارات : (Version Control)\nالتحكم الكامل في نسخ المستندات وإصداراتها، مع الاحتفاظ بتاريخ التعديلات، وإمكانية الرجوع إلى الإصدارات السابقة، وضمان تتبع التغييرات بشكل دقيق.\n• البحث المتقدم:\nتوفير محرك بحث متقدم وقوي يدعم البحث باستخدام البيانات الوصفية (مثل الاسم الرقم التاريخ النوع، بالإضافة إلى البحث داخل محتوى المستندات من خلال\nتقنيات التعرف الضوئي على الحروف (OCR) ، بما يضمن سرعة ودقة الوصول إلى المعلومات.\n\n5. المتطلبات الفنية والأمنية :\n• المتطلبات الفنية\nيجب أن يدعم النظام اللغة العربية دعمًا كاملاً وشاملاً في جميع مكوناته، بما في ذلك واجهات المستخدم، ومحركات البحث، وتقنيات التعرف الضوئي على الحروف\n(OCR)، مع ضمان دقة المعالجة وسهولة الاستخدام, كما يجب على المورد تحديد و الالتزام بالحد الأدنى المقبول لدقة تقنيات OCR لكل من اللغة العربية واللغة\nالإنجليزية، على أن تكون هذه الدقة قابلة للقياس والتدقيق، وبما يضمن تحقيق جودة عالية في استخراج البيانات ومعالجتها.\n• قابلية التوسع : Scalability\nتمتع النظام بقابلية عالية للتوسع المستقبلي لاستيعاب النمو في حجم البيانات، وعدد المستندات، وزيادة عدد المستخدمين، دون التأثير على الأداء أو الاستقرار.\n• التكامل التقني : Integration\nدعم التكامل عبر واجهات برمجة التطبيقات (APIs) وخدمات الويب (Web Services) مع أكثر من منصة أو نظام إلكتروني، بما يضمن المرونة وسهولة الربط مع الأنظمة\nالحالية والمستقبلية.\n• التوافق مع البنية التحتية :\nالتوافق التام مع البنية التحتية وبيئة تقنية المعلومات الحالية للشركة، دون الحاجة إلى تغييرات جذرية في الأنظمة أو المكونات القائمة.\n\n5\n\n• التوثيق الفني : Technical Documentation\nتوفير توثيق فني شامل ومفصل ومحدّث للنظام يشمل البنية التقنية آليات التشغيل التكامل، وإجراءات الصيانة والدعم.\nالالتزام باتفاقية مستوى الخدمة (SLA) وأهداف مستوى الخدمة (SLOs) :\n• يجب على المورد الالتزام باتفاقية مستوى الخدمة (SLA) والتي تُعد جزءًا لا يتجزأ من العقد، على أن تتضمن أهداف مستوى خدمة (SLOs) واضحة، قابلة للقياس،\nوقابلة للتدقيق، لضمان جودة واستمرارية خدمات نظام الأرشفة الإلكترونية وإدارة الوثائق.\n• يلتزم المورد بالامتثال لنظام حماية البيانات الشخصية (PDPL)وضوابط الأمن السيبراني ذات العلاقة، مع منح شركة يلو حق إجراء التقييمات الأمنية عند الحاجة،\nومعالجة الثغرات وفق اتفاقية مستوى الخدمة (SLA) المعتمدة والقابلة للقياس والتدقيق\n• يجب على المورد تقديم تقرير حديث عن آخر اختبار اختراق أمني على ألا يتجاوز تاريخ إصداره 12 شهرا من تاريخ تقديم العرض.\n• يجب على المورد تحديد نموذج البنية التحتية المقترح (On-Prim/ Cloud/ Hybrid) مع توضيح المزايا و القيود لكل نموذج، و تكاليف كل خيار بشكل منفصل.\n• يجب أن يوفّر النظام المقترح إمكانية التكامل مع خدمات Microsoft Entra ID, Microsoft Active Directory ، مع دعم خاصية تسجيل الدخول\nالموحد (SSO).\n• يجب أن يدعم النظام المقترح آليات التحقق متعددة العوامل (Multi-Factor Authentication – MFA)\n• يجب أن يوفر النظام المقترح إمكانية التكامل مع أنظمة إدارة معلومات و أحداث الأمن (SIEM) و دعم بروتوكول Syslog\n• يجب أن يلبي النظام المقترح متطلبات التوافرية العالية (High Availability – HA) لضمان استمرارية الأعمال و تقليل الانقطاعات.\n• يجب أن يوفّر الحل خيارات النسخ الاحتياطي و الأرشفة غير القابلة للتعديل (Immutable / WORM-based Backup and Archive).\nأمن المعلومات والنسخ الاحتياطي\n• تطبيق آليات تشفير متقدمة لبيانات المستندات، سواء أثناء التخزين أو خلال عمليات النقل.\n• تنفيذ أنظمة نسخ احتياطي دورية ومنتظمة لضمان سلامة البيانات واستمرارية توفرها.\n• توفير خطط معتمدة وواضحة لاستعادة الأعمال والتعافي من الكوارث (Disaster Recovery)\n• الالتزام الكامل بسياسات وإجراءات أمن المعلومات المعتمدة لدى شركة الوفاق.\n\n6. الامتثال المتطلبات القانونية، وإدارة المخاطر :\n• المتطلبات الضريبية والزكوية :\nتمكين الشركة من تقديم المستندات المطلوبة للفحص الزكوي والضريبي إلكترونياً وبشكل معتمد، مع ضمان عدم إتلاف أي مستند ورقي قبل أرشفته إلكترونياً والتأكد من\nسلامته\n• إدارة المخاطر :\nيجب على المورد توضيح المخاطر المحتملة المرتبطة بالتخلص من الأرشيف الورقي، وتقديم الآليات المقترحة لضمان سلامة البيانات ومصداقيتها\n• الحوكمة :\n\n6\n\n• اقتراح ضوابط وإجراءات حدية تتوافق مع أطر الحوكمة الداخلية للشركة، ومتطلبات الامتثال، وتوصيات التدقيق الداخلي\n• يجب أن يدعم الحل متطلبات الاحتفاظ بالبيانات و إجراءات الحفظ القانوني (Legal Hold)وفق السياسات و الأنظمة المعمول بها\n• يجب على المورد توقيع اتفاقية عدم الإفصاح (Non-Disclosure Agreement)واتفاقية معالجة البيانات (Data Processing Agreement) وفق\nمتطلبات شركة يلو و الأنظمة ذات العلاقة.\n\n7. متطلبات خطة التنفيذ :\nيشترط على الموردين تقديم خطة تنفيذ تفصيلية، واضحة، وقابلة للتطبيق، تعكس فهماً كاملاً لمتطلبات المشروع، على أن تتضمن – كحد أدنى – ما يلي:\n• مراحل المشروع والجدول الزمني :\nتحديد جميع مراحل التنفيذ بوضوح، مع توضيح المخرجات المتوقعة لكل مرحلة والمدة الزمنية اللازمة لتنفيذها.\n• الموارد البشرية والفنية :\nبيان الموارد المطلوبة لتنفيذ المشروع، سواءً من طرف المورد أو من طرف الشركة، بما يشمل الأدوار والمسؤوليات الفنية والإدارية لكل طرف.\n• خطة الانتقال التدريجي (Transition Plan) :\nتقديم خطة معتمدة للانتقال المرحلي من الأرشيف الورقي إلى الأرشيف الإلكتروني، بما يضمن استمرارية الأعمال وتقليل المخاطر التشغيلية.\n• نقل المعرفة وبناء القدرات (Knowledge Transfer & Training) :\nتقديم آلية واضحة لنقل المعرفة، تشمل خطة تدريب شاملة للمستخدمين النهائيين ومديري النظام، تغطي الجوانب التشغيلية والفنية للنظام\n• إيقاف التعامل بالوثائق الورقية :\nاقتراح آلية تقنية وإجرائية معتمدة تهدف إلى إيقاف توريد وإدارة العقود الورقية بعد التأكد من الجاهزية الكاملة للنظام الإلكتروني ودخوله حيز التشغيل الفعلي\n• تضمين تدريب المستخدمين ضمن نطاق المشروع، على أن يشمل سياسات الأمن السيبراني، وأفضل الممارسات في التعامل الأمن والسليم مع المستندات والبيانات.\n• يجب أن يشمل المشروع تنفيذ مرحلة تجريبية (Pilot / Proof of Concept – POC)للتحقق من توافق الحل مع المتطلبات الفنية و التشغيلية قبل التنفيذ\nالكامل\n• يلتزم المورد بتوضيح متطلبات هجرة البيانات وحجم الأرشفة الشهرية المتوقع، مع تقديم خطة تنفيذ تفصيلية ومعتمدة.\n\n7\n\n8. المطلوب من الموردين تقديمه في عروضهم :\nيجب أن يتضمن العرض الفني والمالي المقدم من قبلكم الأقسام التالية بشكل واضح ومفصل لضمان قبوله ودخوله في مرحلة التقييم :\n\n# | البند المطلوب | التفاصيل المطلوبة\n1 | نبذة عن الشركة والخبرات | ملف تعريف الشركة وسجل الخبرات السابقة في تنفيذ مشاريع أرشفة إلكترونية مشابهة\n(يفضل في قطاع النقل أو الشركات الكبرى )\n2 | وصف تفصيلي للحل المقترح | شرح بنية النظام ووظائفه، وآلية توافقه مع متطلبات نطاق العمل، بما يشمل التكامل مع\nمايكروسوفت 365\n3 | خطة التنفيذ المعتمدة | تقديم جدول زمني معتمد ومفصل يبين مراحل التنفيذ، والتسليمات المرتبطة بكل مرحلة،\nوالإطار الزمني المتوقع، بدءًا من تاريخ نفاذ العقد.\n4 | المتطلبات الفنية والبنية التحتية | تحديد مواصفات الخوادم قواعد البيانات الشبكات، وأي متطلبات بنية تحتية يجب على\nالشركة توفيرها\n5 | هيكل التسعير المفصل | عرض مالي شفاف ومفصل يفصل التكاليف إلى : تكاليف التراخيص، تكاليف التنفيذ\n(والخدمات المهنية، تكاليف الدعم والصيانة السنوية\n6 | نموذج الدعم واتفاقية مستوى الخدمة | تقديم مسودة معتمدة لاتفاقية مستوى الخدمة (SLA) ونموذج دعم ما بعد التشغيل\nتتضمن أطر الاستجابة، وأزمنة المعالجة والحل وفق أفضل الممارسات المتبعة.\n\n8\n\nهذه الوثيقة ملك لـ "يلو – شركة الوفاق لحلول النقل "وتعتبر سرية . لا يجوز نسخها أو تداولها خارج نطاق الغرض المخصص لها وهو إعداد العروض الفنية والمالية\nيلو – شركة الوفاق لحلول النقل جميع الحقوق محفوظة 2026 ©\n\n9	2026-05-25 11:45:30.993151	/home/runner/workspace/artifacts/api-server/uploads/tenders/1779709529704-pid9fgcndr.pdf	file-CMUGEFwWdMCwgqLprRU4Yk	### نطاق العمل التفصيلي:\n- **أرشفة المستندات الحالية**: \n  - المسح الضوئي الشامل للمستندات الورقية.\n  - تصنيف المستندات حسب النوع.\n  - ربط المستندات بالبيانات الوصفية.\n  - تخزين المستندات في قاعدة بيانات إلكترونية آمنة.\n  - إتلاف الوثائق الورقية بعد الأرشفة الإلكترونية.\n- **الأرشفة المستقبلية والتكامل التقني**:\n  - توفير آلية مستدامة للأرشفة الإلكترونية.\n  - التكامل مع الأنظمة الحالية مثل Microsoft Dynamics.\n  - أتمتة عمليات الأرشفة وسير العمل.\n\n### المخرجات:\n- نظام متكامل لإدارة المستندات.\n- تحسين كفاءة وسرعة عمليات البحث والاسترجاع.\n- حماية المستندات من التلف أو الفقدان.\n- خفض التكاليف التشغيلية.\n\n### المواعيد:\n- تقديم خطة تنفيذ تفصيلية تشمل مراحل المشروع والجدول الزمني.\n\n### الشروط المالية:\n- عرض مالي شفاف ومفصل يشمل تكاليف التراخيص، التنفيذ، والدعم والصيانة السنوية.\n\n### جدول الكميات/الأسعار:\n- هيكل تسعير مفصل يفصل التكاليف إلى: تكاليف التراخيص، تكاليف التنفيذ، تكاليف الدعم والصيانة السنوية.\n\n### معايير التقييم:\n- نبذة عن الشركة والخبرات.\n- وصف تفصيلي للحل المقترح.\n- خطة التنفيذ المعتمدة.\n- المتطلبات الفنية والبنية التحتية.\n- هيكل التسعير المفصل.\n- نموذج الدعم واتفاقية مستوى الخدمة.\n\n### الضمانات:\n- الالتزام باتفاقية مستوى الخدمة (SLA) وأهداف مستوى الخدمة (SLOs).\n- تقديم تقرير حديث عن آخر اختبار اختراق أمني.\n\n### الغرامات:\n- لم يتم ذكر غرامات محددة في الوثيقة.\n\n### شروط الأهلية:\n- خبرة سابقة في تنفيذ مشاريع أرشفة إلكترونية مشابهة.\n\n### الوثائق المطلوبة:\n- ملف تعريف الشركة وسجل الخبرات السابقة.\n- وصف تفصيلي للحل المقترح.\n- خطة التنفيذ المعتمدة.\n- تحديد مواصفات الخوادم وقواعد البيانات والشبكات.\n- مسودة معتمدة لاتفاقية مستوى الخدمة (SLA).	completed	\N
\.


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

COPY public.tender_fdds (id, tender_id, language, overview, functional_requirements, non_functional_requirements, data_requirements, interfaces, constraints, assumptions, acceptance_criteria, created_at, updated_at) FROM stdin;
1	1	ar	## نظرة عامة\n\nتسعى شركة الوفاق لحلول النقل يلو إلى تنفيذ مشروع استراتيجي متكامل للأرشفة الإلكترونية، يهدف إلى التحول التدريجي والجذري من بيئة الأرشيف الورقي التقليدي إلى نظام إلكتروني موحد وحديث لإدارة المستندات. يهدف المشروع إلى تحسين كفاءة وسرعة عمليات البحث والاسترجاع، حماية المستندات من التلف أو الفقدان، رفع مستويات الحوكمة والامتثال، وخفض التكاليف التشغيلية.	## المتطلبات الوظيفية\n\n- FR-1: توفير نظام صلاحيات دقيق ومركزي مبني على الأدوار الوظيفية.\n- FR-2: توفير سجل تدقيق شامل وغير قابل للتعديل.\n- FR-3: التحكم الكامل في نسخ المستندات وإصداراتها.\n- FR-4: توفير محرك بحث متقدم يدعم البحث باستخدام البيانات الوصفية وتقنيات OCR.	## المتطلبات غير الوظيفية\n\n- NFR-1: دعم اللغة العربية بشكل كامل في جميع مكونات النظام.\n- NFR-2: قابلية التوسع لاستيعاب النمو في حجم البيانات وعدد المستخدمين.\n- NFR-3: دعم التكامل عبر واجهات برمجة التطبيقات (APIs) وخدمات الويب.\n- NFR-4: التوافق التام مع البنية التحتية الحالية للشركة.\n- NFR-5: الالتزام باتفاقية مستوى الخدمة (SLA) وأهداف مستوى الخدمة (SLOs).\n- NFR-6: الامتثال لنظام حماية البيانات الشخصية وضوابط الأمن السيبراني.	## متطلبات البيانات\n\n- توفير آلية لتصنيف المستندات حسب طبيعتها ونوعها.\n- ربط المستندات المؤرشفة بالبيانات الوصفية المتفق عليها.\n- تخزين وحفظ المستندات ضمن قاعدة بيانات إلكترونية آمنة.\n- تطبيق آليات تشفير متقدمة لبيانات المستندات.	## الواجهات والتكاملات\n\n- دعم التكامل مع الأنظمة الحالية مثل Microsoft Dynamics.\n- توفير إمكانية التكامل مع خدمات Microsoft Entra ID وMicrosoft Active Directory.\n- دعم خاصية تسجيل الدخول الموحد (SSO) وآليات التحقق متعددة العوامل (MFA).\n- دعم التكامل مع أنظمة إدارة معلومات وأحداث الأمن (SIEM) ودعم بروتوكول Syslog.	## القيود\n\n- الالتزام بالمتطلبات القانونية وإدارة المخاطر.\n- تقديم تقرير حديث عن آخر اختبار اختراق أمني.\n- تحديد نموذج البنية التحتية المقترح مع توضيح المزايا والقيود لكل نموذج.	## الافتراضات\n\n- توفر جميع المستندات والملفات الورقية المطلوب أرشفتها من قبل الطرف المتعاقد.\n- تعيين منسق مشروع رسمي ونقاط اتصال معتمدة للتنسيق والمتابعة.\n- اعتماد سياسات التصنيف والبيانات الوصفية وإجراءات سير العمل.	## معايير القبول\n\n- AC-1: تقديم خطة تنفيذ تفصيلية وواضحة وقابلة للتطبيق.\n- AC-2: تنفيذ مرحلة تجريبية (Pilot / Proof of Concept – POC) للتحقق من توافق الحل مع المتطلبات.\n- AC-3: تقديم آلية واضحة لنقل المعرفة تشمل خطة تدريب شاملة للمستخدمين النهائيين ومديري النظام.	2026-05-25 13:32:50.716086	2026-05-25 13:32:50.716086
\.


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

COPY public.tender_notes (id, tender_id, user_id, author_name, content, mentions, created_at, updated_at) FROM stdin;
\.


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

COPY public.tenders (id, company_id, title, government_entity, competition_number, sector, city, deadline, booklet_price, tender_url, description, status, has_analysis, created_at, updated_at, vector_store_id) FROM stdin;
1	1	سس	وزارة الصحة	222	الصحة	الرياض	2027-01-01 01:00:00	\N	\N	مشروع ارشفة	no_bid	t	2026-05-25 06:40:05.139197	2026-05-25 09:52:39.154	vs_6a14365be7a48191b0c487edc4698d3a
\.


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

COPY public.users (id, clerk_id, email, first_name, last_name, role, company_id, is_suspended, language, created_at, updated_at) FROM stdin;
1	user_3EBqNzRmhDPzVfBY7Hu2nVaM9LE	ashraffarid@gmail.com	Consalting	\N	company_user	\N	f	ar	2026-05-24 22:49:45.153363	2026-05-24 23:04:33.812
2	user_3EBseNiwRFrrXn0UtdqkdsUEzIF	ashraffaridhd@gmail.com	ashraf	farid	admin	1	f	ar	2026-05-24 22:56:31.730555	2026-05-25 07:02:21.386
\.


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

COPY public.vendor_products (id, vendor_id, name, name_ar, category, category_ar, description, description_ar, unit, min_price, max_price, currency, in_stock, min_order_qty, lead_time_days, specs, image_url, tags, is_active, created_at, updated_at) FROM stdin;
1	1	Desktop Computer HP EliteDesk	حاسوب مكتبي HP EliteDesk	أجهزة الحاسوب	أجهزة الحاسوب	Intel Core i7, 16GB RAM, 512GB SSD - مثالي للمكاتب الحكومية	\N	قطعة	2500.00	4500.00	SAR	t	1	7	{}	\N	["HP", "حاسوب", "مكتبي"]	t	2026-05-24 19:03:36.358101	2026-05-24 19:03:36.358101
2	1	Laptop Dell Latitude	حاسوب محمول Dell Latitude	أجهزة الحاسوب	أجهزة الحاسوب	Intel Core i5/i7, 8GB/16GB RAM, مناسب للعمل الميداني	\N	قطعة	3200.00	5800.00	SAR	t	1	5	{}	\N	["Dell", "لابتوب", "محمول"]	t	2026-05-24 19:03:36.358101	2026-05-24 19:03:36.358101
3	1	Network Switch Cisco	سويتش شبكي Cisco	الشبكات والاتصالات	الشبكات والاتصالات	مفتاح شبكي 24/48 منفذ للمباني الحكومية	\N	قطعة	1800.00	8500.00	SAR	t	1	10	{}	\N	["Cisco", "شبكة", "سويتش"]	t	2026-05-24 19:03:36.358101	2026-05-24 19:03:36.358101
4	1	Laser Printer	طابعة ليزر	المستلزمات المكتبية	المستلزمات المكتبية	طابعة ليزر أبيض وأسود عالية السرعة 45 صفحة/دقيقة	\N	قطعة	1200.00	2500.00	SAR	t	1	5	{}	\N	["طابعة", "ليزر"]	t	2026-05-24 19:03:36.358101	2026-05-24 19:03:36.358101
5	1	UPS Power Backup	مزود طاقة احتياطي UPS	تقنية المعلومات	تقنية المعلومات	مزود طاقة لا متقطعة 1000VA - 3000VA	\N	قطعة	600.00	2200.00	SAR	t	1	7	{}	\N	["UPS", "طاقة"]	t	2026-05-24 19:03:36.358101	2026-05-24 19:03:36.358101
6	2	Office Chair Executive	كرسي مكتبي تنفيذي	الأثاث والديكور	الأثاث والديكور	كرسي مكتبي فاخر بظهر شبكي ومسند ذراع قابل للتعديل	\N	قطعة	650.00	1800.00	SAR	t	1	14	{}	\N	["كرسي", "مكتب"]	t	2026-05-24 19:03:36.358101	2026-05-24 19:03:36.358101
7	2	Office Desk L-Shape	مكتب على شكل L	الأثاث والديكور	الأثاث والديكور	مكتب خشبي على شكل حرف L مناسب للمكاتب الحكومية	\N	قطعة	1200.00	2800.00	SAR	t	1	21	{}	\N	["مكتب", "أثاث"]	t	2026-05-24 19:03:36.358101	2026-05-24 19:03:36.358101
8	2	A4 Paper Box	ورق A4 كرتون	المستلزمات المكتبية	المستلزمات المكتبية	ورق طباعة A4 80 جرام - 5 رزم في الكرتون	\N	كرتون	85.00	95.00	SAR	t	10	3	{}	\N	["ورق", "A4", "طباعة"]	t	2026-05-24 19:03:36.358101	2026-05-24 19:03:36.358101
9	3	CCTV Camera 4MP	كاميرا مراقبة 4MP	الأمن والمراقبة	الأمن والمراقبة	كاميرا مراقبة خارجية 4 ميجابيكسل مع رؤية ليلية 30م	\N	قطعة	350.00	850.00	SAR	t	4	7	{}	\N	["كاميرا", "مراقبة", "CCTV"]	t	2026-05-24 19:03:36.358101	2026-05-24 19:03:36.358101
10	3	NVR 16-Channel	مسجل شبكي 16 قناة	الأمن والمراقبة	الأمن والمراقبة	جهاز تسجيل شبكي 16 قناة مع هارد ديسك 4TB	\N	قطعة	2800.00	5500.00	SAR	t	1	7	{}	\N	["NVR", "تسجيل", "مراقبة"]	t	2026-05-24 19:03:36.358101	2026-05-24 19:03:36.358101
11	3	Access Control System	نظام تحكم بالدخول	الأمن والمراقبة	الأمن والمراقبة	نظام تحكم بالدخول ببطاقة RFID أو بصمة الإصبع للأبواب الحكومية	\N	نقطة	1500.00	4000.00	SAR	t	1	14	{}	\N	["أمن", "تحكم", "دخول"]	t	2026-05-24 19:03:36.358101	2026-05-24 19:03:36.358101
12	4	Hospital Bed Adjustable	سرير مستشفى قابل للتعديل	المعدات الطبية	المعدات الطبية	سرير مستشفى كهربائي 3 حركات مع مرتبة ضد التقرحات	\N	قطعة	4500.00	9500.00	SAR	t	1	30	{}	\N	["سرير", "مستشفى", "طبي"]	t	2026-05-24 19:03:36.358101	2026-05-24 19:03:36.358101
13	4	Patient Monitor	شاشة مراقبة مريض	المعدات الطبية	المعدات الطبية	جهاز مراقبة علامات حيوية مع SpO2 وECG وضغط الدم	\N	قطعة	8500.00	18000.00	SAR	t	1	21	{}	\N	["مراقبة", "مريض", "طبي"]	t	2026-05-24 19:03:36.358101	2026-05-24 19:03:36.358101
14	5	Cement Portland 50kg	أسمنت بورتلاند 50 كجم	البناء والمقاولات	البناء والمقاولات	أسمنت بورتلاند عادي مطابق للمواصفات السعودية	\N	كيس	18.00	22.00	SAR	t	100	3	{}	\N	["أسمنت", "بناء"]	t	2026-05-24 19:03:36.358101	2026-05-24 19:03:36.358101
15	5	Steel Rebar 12mm	حديد تسليح 12مم	البناء والمقاولات	البناء والمقاولات	حديد تسليح مجدول 12مم طول 12م مطابق للمواصفات	\N	طن	3200.00	3800.00	SAR	t	5	5	{}	\N	["حديد", "تسليح", "بناء"]	t	2026-05-24 19:03:36.358101	2026-05-24 19:03:36.358101
\.


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

COPY public.vendor_reviews (id, vendor_id, buyer_user_id, quote_request_id, rating, comment, created_at) FROM stdin;
\.


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

COPY public.vendors (id, user_id, company_name, company_name_ar, sector, sector_ar, description, description_ar, city, region, address, contact_email, phone, website, logo_url, cr_number, vat_number, categories, is_verified, is_active, rating, total_reviews, created_at, updated_at) FROM stdin;
2	1	Al-Jazirah Office Supplies	شركة الجزيرة للمستلزمات المكتبية	Office Supplies	المستلزمات المكتبية	Comprehensive office supplies and furniture provider for government and corporate sectors across Saudi Arabia.	مورّد شامل للمستلزمات المكتبية والأثاث لقطاع الحكومة والشركات في المملكة.	الرياض	الرياض	\N	sales@aljazirah-office.sa	+966509876543	\N	\N	\N	\N	["المستلزمات المكتبية", "الأثاث والديكور"]	t	t	4.50	18	2026-05-24 19:01:53.686917	2026-05-24 19:01:53.686917
3	1	Gulf Security Systems	أنظمة الأمن الخليجية	Security & Surveillance	الأمن والمراقبة	Specialized in security cameras, access control, and surveillance systems for government buildings and facilities.	متخصصون في كاميرات المراقبة وأنظمة التحكم بالدخول والأمن للمباني الحكومية.	جدة	مكة المكرمة	\N	info@gulf-security.sa	+966557891234	\N	\N	\N	\N	["الأمن والمراقبة", "الشبكات والاتصالات"]	f	t	4.20	9	2026-05-24 19:01:53.686917	2026-05-24 19:01:53.686917
4	1	Saudi Medical Equipment Co.	شركة المعدات الطبية السعودية	Medical Equipment	المعدات الطبية	Trusted supplier of medical devices, hospital furniture, and diagnostic equipment for health sector tenders.	مورّد موثوق للأجهزة الطبية وأثاث المستشفيات ومعدات التشخيص لمناقصات القطاع الصحي.	الدمام	المنطقة الشرقية	\N	procurement@saudimedical.sa	+966562345678	\N	\N	\N	\N	["المعدات الطبية"]	t	t	4.70	31	2026-05-24 19:01:53.686917	2026-05-24 19:01:53.686917
5	1	Al-Riyadh Construction Materials	مواد البناء الرياض	Construction	البناء والمقاولات	Full range of construction materials, tools, and equipment for infrastructure and building projects.	تشكيلة كاملة من مواد البناء والأدوات والمعدات لمشاريع البنية التحتية.	الرياض	الرياض	\N	sales@riyadh-construction.sa	+966534567890	\N	\N	\N	\N	["البناء والمقاولات"]	t	t	4.00	12	2026-05-24 19:01:53.686917	2026-05-24 23:12:20.332
1	1	Riyadh Tech Solutions	شركة الرياض للحلول التقنية	Information Technology	تقنية المعلومات	Leading IT supplier in Riyadh. Specializing in computers, servers, networking equipment and IT infrastructure for government projects.	مورّد رائد لمعدات تقنية المعلومات في الرياض. متخصصون في الحواسيب والخوادم ومعدات الشبكات للمشاريع الحكومية.	الرياض	الرياض	\N	info@riyadhtech.sa	+966501234567	https://riyadhtech.sa	\N	\N	\N	["أجهزة الحاسوب", "الشبكات والاتصالات", "تقنية المعلومات"]	t	t	4.80	24	2026-05-24 19:01:53.686917	2026-05-24 23:12:38.093
\.


--
-- Name: activity_events_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
--

SELECT pg_catalog.setval('public.activity_events_id_seq', 2, true);


--
-- Name: analyses_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
--

SELECT pg_catalog.setval('public.analyses_id_seq', 1, true);


--
-- Name: audit_log_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
--

SELECT pg_catalog.setval('public.audit_log_id_seq', 8, true);


--
-- Name: chat_messages_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
--

SELECT pg_catalog.setval('public.chat_messages_id_seq', 2, true);


--
-- Name: companies_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
--

SELECT pg_catalog.setval('public.companies_id_seq', 1, true);


--
-- Name: compliance_items_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
--

SELECT pg_catalog.setval('public.compliance_items_id_seq', 6, true);


--
-- Name: documents_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
--

SELECT pg_catalog.setval('public.documents_id_seq', 3, true);


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

SELECT pg_catalog.setval('public.invoices_id_seq', 1, false);


--
-- Name: notification_settings_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
--

SELECT pg_catalog.setval('public.notification_settings_id_seq', 1, true);


--
-- Name: plans_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
--

SELECT pg_catalog.setval('public.plans_id_seq', 3, true);


--
-- Name: proposal_drafts_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
--

SELECT pg_catalog.setval('public.proposal_drafts_id_seq', 1, true);


--
-- Name: proposal_versions_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
--

SELECT pg_catalog.setval('public.proposal_versions_id_seq', 2, true);


--
-- Name: quote_requests_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
--

SELECT pg_catalog.setval('public.quote_requests_id_seq', 1, false);


--
-- Name: reports_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
--

SELECT pg_catalog.setval('public.reports_id_seq', 1, false);


--
-- Name: saved_searches_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
--

SELECT pg_catalog.setval('public.saved_searches_id_seq', 1, false);


--
-- Name: submission_checklist_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
--

SELECT pg_catalog.setval('public.submission_checklist_id_seq', 9, true);


--
-- Name: subscriptions_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
--

SELECT pg_catalog.setval('public.subscriptions_id_seq', 1, false);


--
-- Name: team_assignments_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
--

SELECT pg_catalog.setval('public.team_assignments_id_seq', 1, false);


--
-- Name: tender_documents_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
--

SELECT pg_catalog.setval('public.tender_documents_id_seq', 2, true);


--
-- Name: tender_fdds_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
--

SELECT pg_catalog.setval('public.tender_fdds_id_seq', 1, true);


--
-- Name: tender_notes_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
--

SELECT pg_catalog.setval('public.tender_notes_id_seq', 1, false);


--
-- Name: tenders_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
--

SELECT pg_catalog.setval('public.tenders_id_seq', 1, true);


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

SELECT pg_catalog.setval('public.users_id_seq', 2, true);


--
-- Name: vendor_products_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
--

SELECT pg_catalog.setval('public.vendor_products_id_seq', 15, true);


--
-- Name: vendor_reviews_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
--

SELECT pg_catalog.setval('public.vendor_reviews_id_seq', 1, false);


--
-- Name: vendors_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
--

SELECT pg_catalog.setval('public.vendors_id_seq', 5, true);


--
-- Name: activity_events activity_events_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.activity_events
    ADD CONSTRAINT activity_events_pkey PRIMARY KEY (id);


--
-- Name: analyses analyses_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.analyses
    ADD CONSTRAINT analyses_pkey PRIMARY KEY (id);


--
-- Name: audit_log audit_log_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.audit_log
    ADD CONSTRAINT audit_log_pkey PRIMARY KEY (id);


--
-- Name: chat_messages chat_messages_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.chat_messages
    ADD CONSTRAINT chat_messages_pkey PRIMARY KEY (id);


--
-- Name: companies companies_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.companies
    ADD CONSTRAINT companies_pkey PRIMARY KEY (id);


--
-- Name: compliance_items compliance_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.compliance_items
    ADD CONSTRAINT compliance_items_pkey PRIMARY KEY (id);


--
-- Name: documents documents_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.documents
    ADD CONSTRAINT documents_pkey PRIMARY KEY (id);


--
-- Name: invoices invoices_invoice_number_unique; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.invoices
    ADD CONSTRAINT invoices_invoice_number_unique UNIQUE (invoice_number);


--
-- Name: invoices invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.invoices
    ADD CONSTRAINT invoices_pkey PRIMARY KEY (id);


--
-- Name: invoices invoices_stripe_invoice_id_unique; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.invoices
    ADD CONSTRAINT invoices_stripe_invoice_id_unique UNIQUE (stripe_invoice_id);


--
-- Name: notification_settings notification_settings_company_id_unique; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.notification_settings
    ADD CONSTRAINT notification_settings_company_id_unique UNIQUE (company_id);


--
-- Name: notification_settings notification_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.notification_settings
    ADD CONSTRAINT notification_settings_pkey PRIMARY KEY (id);


--
-- Name: plans plans_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.plans
    ADD CONSTRAINT plans_pkey PRIMARY KEY (id);


--
-- Name: platform_settings platform_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.platform_settings
    ADD CONSTRAINT platform_settings_pkey PRIMARY KEY (key);


--
-- Name: proposal_drafts proposal_drafts_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.proposal_drafts
    ADD CONSTRAINT proposal_drafts_pkey PRIMARY KEY (id);


--
-- Name: proposal_drafts proposal_drafts_tender_id_unique; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.proposal_drafts
    ADD CONSTRAINT proposal_drafts_tender_id_unique UNIQUE (tender_id);


--
-- Name: proposal_versions proposal_versions_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.proposal_versions
    ADD CONSTRAINT proposal_versions_pkey PRIMARY KEY (id);


--
-- Name: quote_requests quote_requests_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.quote_requests
    ADD CONSTRAINT quote_requests_pkey PRIMARY KEY (id);


--
-- Name: reports reports_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.reports
    ADD CONSTRAINT reports_pkey PRIMARY KEY (id);


--
-- Name: saved_searches saved_searches_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.saved_searches
    ADD CONSTRAINT saved_searches_pkey PRIMARY KEY (id);


--
-- Name: submission_checklist submission_checklist_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.submission_checklist
    ADD CONSTRAINT submission_checklist_pkey PRIMARY KEY (id);


--
-- Name: subscriptions subscriptions_company_id_unique; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.subscriptions
    ADD CONSTRAINT subscriptions_company_id_unique UNIQUE (company_id);


--
-- Name: subscriptions subscriptions_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.subscriptions
    ADD CONSTRAINT subscriptions_pkey PRIMARY KEY (id);


--
-- Name: team_assignments team_assignments_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.team_assignments
    ADD CONSTRAINT team_assignments_pkey PRIMARY KEY (id);


--
-- Name: tender_documents tender_documents_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.tender_documents
    ADD CONSTRAINT tender_documents_pkey PRIMARY KEY (id);


--
-- Name: tender_fdds tender_fdds_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.tender_fdds
    ADD CONSTRAINT tender_fdds_pkey PRIMARY KEY (id);


--
-- Name: tender_fdds tender_fdds_tender_id_key; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.tender_fdds
    ADD CONSTRAINT tender_fdds_tender_id_key UNIQUE (tender_id);


--
-- Name: tender_notes tender_notes_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.tender_notes
    ADD CONSTRAINT tender_notes_pkey PRIMARY KEY (id);


--
-- Name: tenders tenders_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.tenders
    ADD CONSTRAINT tenders_pkey PRIMARY KEY (id);


--
-- Name: vendor_reviews uq_review_per_quote; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.vendor_reviews
    ADD CONSTRAINT uq_review_per_quote UNIQUE (quote_request_id);


--
-- Name: users users_clerk_id_unique; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.users
    ADD CONSTRAINT users_clerk_id_unique UNIQUE (clerk_id);


--
-- Name: users users_email_unique; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.users
    ADD CONSTRAINT users_email_unique UNIQUE (email);


--
-- Name: users users_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.users
    ADD CONSTRAINT users_pkey PRIMARY KEY (id);


--
-- Name: vendor_products vendor_products_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.vendor_products
    ADD CONSTRAINT vendor_products_pkey PRIMARY KEY (id);


--
-- Name: vendor_reviews vendor_reviews_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.vendor_reviews
    ADD CONSTRAINT vendor_reviews_pkey PRIMARY KEY (id);


--
-- Name: vendors vendors_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.vendors
    ADD CONSTRAINT vendors_pkey PRIMARY KEY (id);


--
-- PostgreSQL database dump complete
--

\unrestrict G8F1Pe4vN8QqnQiJm2czcuO6LIvB9rXeTo7OwqWZsCEFWJAU8kaFti0FkhBqxK6

