--
-- PostgreSQL database dump
--

\restrict 4dN5EkyP51nXYSaHvg9fpBeFrHhReyXgjXt5iQsofUfyxKVpSQsZToaojZEee5u

-- 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;

--
-- Name: invoice_log_action; Type: TYPE; Schema: public; Owner: techcandle_gs
--

CREATE TYPE public.invoice_log_action AS ENUM (
    'created',
    'updated',
    'deleted'
);


ALTER TYPE public.invoice_log_action OWNER TO techcandle_gs;

--
-- Name: order_status; Type: TYPE; Schema: public; Owner: techcandle_gs
--

CREATE TYPE public.order_status AS ENUM (
    'pending',
    'completed',
    'cancelled',
    'hold',
    'moktob_amal'
);


ALTER TYPE public.order_status OWNER TO techcandle_gs;

--
-- Name: payment_method_enum; Type: TYPE; Schema: public; Owner: techcandle_gs
--

CREATE TYPE public.payment_method_enum AS ENUM (
    'cash_sr',
    'al_rajhi',
    'snb',
    'stc',
    'cash_tk',
    'bank_bmt',
    'ibbl_bmt',
    'bkash_bmt'
);


ALTER TYPE public.payment_method_enum OWNER TO techcandle_gs;

--
-- Name: transaction_type; Type: TYPE; Schema: public; Owner: techcandle_gs
--

CREATE TYPE public.transaction_type AS ENUM (
    'agent_commission',
    'customer_payment',
    'due_collection',
    'refund',
    'service_charge_deduction'
);


ALTER TYPE public.transaction_type OWNER TO techcandle_gs;

--
-- Name: user_role; Type: TYPE; Schema: public; Owner: techcandle_gs
--

CREATE TYPE public.user_role AS ENUM (
    'super_admin',
    'co_admin',
    'branch_admin',
    'staff',
    'auditor'
);


ALTER TYPE public.user_role OWNER TO techcandle_gs;

--
-- Name: voucher_type; Type: TYPE; Schema: public; Owner: techcandle_gs
--

CREATE TYPE public.voucher_type AS ENUM (
    'debit',
    'credit'
);


ALTER TYPE public.voucher_type OWNER TO techcandle_gs;

SET default_tablespace = '';

SET default_table_access_method = heap;

--
-- Name: agents; Type: TABLE; Schema: public; Owner: techcandle_gs
--

CREATE TABLE public.agents (
    id integer NOT NULL,
    name text NOT NULL,
    mobile_no text NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone
);


ALTER TABLE public.agents OWNER TO techcandle_gs;

--
-- Name: agents_id_seq; Type: SEQUENCE; Schema: public; Owner: techcandle_gs
--

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


ALTER SEQUENCE public.agents_id_seq OWNER TO techcandle_gs;

--
-- Name: agents_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: techcandle_gs
--

ALTER SEQUENCE public.agents_id_seq OWNED BY public.agents.id;


--
-- Name: branches; Type: TABLE; Schema: public; Owner: techcandle_gs
--

CREATE TABLE public.branches (
    id integer NOT NULL,
    name text NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone,
    phone text,
    address text
);


ALTER TABLE public.branches OWNER TO techcandle_gs;

--
-- Name: branches_id_seq; Type: SEQUENCE; Schema: public; Owner: techcandle_gs
--

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


ALTER SEQUENCE public.branches_id_seq OWNER TO techcandle_gs;

--
-- Name: branches_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: techcandle_gs
--

ALTER SEQUENCE public.branches_id_seq OWNED BY public.branches.id;


--
-- Name: cache; Type: TABLE; Schema: public; Owner: techcandle_gs
--

CREATE TABLE public.cache (
    key character varying(255) NOT NULL,
    value text NOT NULL,
    expiration integer NOT NULL
);


ALTER TABLE public.cache OWNER TO techcandle_gs;

--
-- Name: cache_locks; Type: TABLE; Schema: public; Owner: techcandle_gs
--

CREATE TABLE public.cache_locks (
    key character varying(255) NOT NULL,
    owner character varying(255) NOT NULL,
    expiration integer NOT NULL
);


ALTER TABLE public.cache_locks OWNER TO techcandle_gs;

--
-- Name: currency_rates; Type: TABLE; Schema: public; Owner: techcandle_gs
--

CREATE TABLE public.currency_rates (
    id bigint NOT NULL,
    rate numeric(10,2) NOT NULL,
    effective_from timestamp(0) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    changed_by_user_id bigint,
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone
);


ALTER TABLE public.currency_rates OWNER TO techcandle_gs;

--
-- Name: currency_rates_id_seq; Type: SEQUENCE; Schema: public; Owner: techcandle_gs
--

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


ALTER SEQUENCE public.currency_rates_id_seq OWNER TO techcandle_gs;

--
-- Name: currency_rates_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: techcandle_gs
--

ALTER SEQUENCE public.currency_rates_id_seq OWNED BY public.currency_rates.id;


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

CREATE TABLE public.customers (
    id integer NOT NULL,
    name text NOT NULL,
    mobile_no text NOT NULL,
    identity_no text NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone
);


ALTER TABLE public.customers OWNER TO techcandle_gs;

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

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


ALTER SEQUENCE public.customers_id_seq OWNER TO techcandle_gs;

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

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


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

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


ALTER TABLE public.failed_jobs OWNER TO techcandle_gs;

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

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


ALTER SEQUENCE public.failed_jobs_id_seq OWNER TO techcandle_gs;

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

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


--
-- Name: invoice_logs; Type: TABLE; Schema: public; Owner: techcandle_gs
--

CREATE TABLE public.invoice_logs (
    id integer NOT NULL,
    invoice_id text NOT NULL,
    user_id bigint NOT NULL,
    branch_id bigint NOT NULL,
    action public.invoice_log_action NOT NULL,
    details text,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone
);


ALTER TABLE public.invoice_logs OWNER TO techcandle_gs;

--
-- Name: invoice_logs_id_seq; Type: SEQUENCE; Schema: public; Owner: techcandle_gs
--

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


ALTER SEQUENCE public.invoice_logs_id_seq OWNER TO techcandle_gs;

--
-- Name: invoice_logs_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: techcandle_gs
--

ALTER SEQUENCE public.invoice_logs_id_seq OWNED BY public.invoice_logs.id;


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

CREATE TABLE public.invoices (
    invoice_id text NOT NULL,
    customer_id bigint NOT NULL,
    branch_id bigint NOT NULL,
    user_id bigint NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone
);


ALTER TABLE public.invoices OWNER TO techcandle_gs;

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

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


ALTER TABLE public.job_batches OWNER TO techcandle_gs;

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

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


ALTER TABLE public.jobs OWNER TO techcandle_gs;

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

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


ALTER SEQUENCE public.jobs_id_seq OWNER TO techcandle_gs;

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

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


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

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


ALTER TABLE public.migrations OWNER TO techcandle_gs;

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

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


ALTER SEQUENCE public.migrations_id_seq OWNER TO techcandle_gs;

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

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


--
-- Name: password_reset_tokens; Type: TABLE; Schema: public; Owner: techcandle_gs
--

CREATE TABLE public.password_reset_tokens (
    email character varying(255) NOT NULL,
    token character varying(255) NOT NULL,
    created_at timestamp(0) without time zone
);


ALTER TABLE public.password_reset_tokens OWNER TO techcandle_gs;

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

CREATE TABLE public.payments (
    id integer NOT NULL,
    invoice_id text,
    branch_id bigint NOT NULL,
    amount numeric NOT NULL,
    payment_method public.payment_method_enum NOT NULL,
    trx_id text,
    payment_date timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    user_id bigint NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone,
    agent_id bigint,
    bdt_amount numeric(10,2),
    currency_rate_id bigint
);


ALTER TABLE public.payments OWNER TO techcandle_gs;

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

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


ALTER SEQUENCE public.payments_id_seq OWNER TO techcandle_gs;

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

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


--
-- Name: service_orders; Type: TABLE; Schema: public; Owner: techcandle_gs
--

CREATE TABLE public.service_orders (
    id integer NOT NULL,
    service_id bigint NOT NULL,
    customer_id bigint NOT NULL,
    agent_id bigint,
    branch_id bigint NOT NULL,
    invoice_id text NOT NULL,
    deadline timestamp with time zone,
    total_cost numeric NOT NULL,
    agent_commission numeric DEFAULT '0'::numeric NOT NULL,
    agent_commission_paid numeric DEFAULT 0,
    status public.order_status DEFAULT 'pending'::public.order_status,
    user_id bigint NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone,
    is_cancel boolean,
    remarks text,
    remarks_updated_by bigint,
    completed_at timestamp(0) without time zone
);


ALTER TABLE public.service_orders OWNER TO techcandle_gs;

--
-- Name: service_orders_id_seq; Type: SEQUENCE; Schema: public; Owner: techcandle_gs
--

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


ALTER SEQUENCE public.service_orders_id_seq OWNER TO techcandle_gs;

--
-- Name: service_orders_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: techcandle_gs
--

ALTER SEQUENCE public.service_orders_id_seq OWNED BY public.service_orders.id;


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

CREATE TABLE public.services (
    id integer NOT NULL,
    name text NOT NULL,
    description text,
    need_days integer NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone,
    cost numrange NOT NULL
);


ALTER TABLE public.services OWNER TO techcandle_gs;

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

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


ALTER SEQUENCE public.services_id_seq OWNER TO techcandle_gs;

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

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


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

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


ALTER TABLE public.sessions OWNER TO techcandle_gs;

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

CREATE TABLE public.users (
    id integer NOT NULL,
    name text NOT NULL,
    email text NOT NULL,
    password text NOT NULL,
    role public.user_role NOT NULL,
    branch_id bigint,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone,
    email_verified_at timestamp without time zone,
    remember_token character varying(100),
    status character varying(255) DEFAULT 'active'::character varying NOT NULL,
    CONSTRAINT users_role_check CHECK ((role = ANY (ARRAY['super_admin'::public.user_role, 'co_admin'::public.user_role, 'branch_admin'::public.user_role, 'staff'::public.user_role, 'auditor'::public.user_role]))),
    CONSTRAINT users_status_check CHECK (((status)::text = ANY ((ARRAY['active'::character varying, 'inactive'::character varying])::text[])))
);


ALTER TABLE public.users OWNER TO techcandle_gs;

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

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


ALTER SEQUENCE public.users_id_seq OWNER TO techcandle_gs;

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

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


--
-- Name: vouchers; Type: TABLE; Schema: public; Owner: techcandle_gs
--

CREATE TABLE public.vouchers (
    id integer NOT NULL,
    voucher_id text NOT NULL,
    transaction_type public.transaction_type NOT NULL,
    type public.voucher_type NOT NULL,
    invoice_id text,
    payment_id bigint,
    amount numeric NOT NULL,
    branch_id bigint NOT NULL,
    payment_method public.payment_method_enum,
    trx_id text,
    user_id bigint NOT NULL,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,
    updated_at timestamp with time zone,
    bdt_amount numeric(10,2),
    currency_rate_id bigint
);


ALTER TABLE public.vouchers OWNER TO techcandle_gs;

--
-- Name: vouchers_id_seq; Type: SEQUENCE; Schema: public; Owner: techcandle_gs
--

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


ALTER SEQUENCE public.vouchers_id_seq OWNER TO techcandle_gs;

--
-- Name: vouchers_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: techcandle_gs
--

ALTER SEQUENCE public.vouchers_id_seq OWNED BY public.vouchers.id;


--
-- Name: agents id; Type: DEFAULT; Schema: public; Owner: techcandle_gs
--

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


--
-- Name: branches id; Type: DEFAULT; Schema: public; Owner: techcandle_gs
--

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


--
-- Name: currency_rates id; Type: DEFAULT; Schema: public; Owner: techcandle_gs
--

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


--
-- Name: customers id; Type: DEFAULT; Schema: public; Owner: techcandle_gs
--

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


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

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


--
-- Name: invoice_logs id; Type: DEFAULT; Schema: public; Owner: techcandle_gs
--

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


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

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


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

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


--
-- Name: payments id; Type: DEFAULT; Schema: public; Owner: techcandle_gs
--

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


--
-- Name: service_orders id; Type: DEFAULT; Schema: public; Owner: techcandle_gs
--

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


--
-- Name: services id; Type: DEFAULT; Schema: public; Owner: techcandle_gs
--

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


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

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


--
-- Name: vouchers id; Type: DEFAULT; Schema: public; Owner: techcandle_gs
--

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


--
-- Name: agents agents_pkey; Type: CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.agents
    ADD CONSTRAINT agents_pkey PRIMARY KEY (id);


--
-- Name: branches branches_pkey; Type: CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.branches
    ADD CONSTRAINT branches_pkey PRIMARY KEY (id);


--
-- Name: cache_locks cache_locks_pkey; Type: CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.cache_locks
    ADD CONSTRAINT cache_locks_pkey PRIMARY KEY (key);


--
-- Name: cache cache_pkey; Type: CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.cache
    ADD CONSTRAINT cache_pkey PRIMARY KEY (key);


--
-- Name: currency_rates currency_rates_pkey; Type: CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.currency_rates
    ADD CONSTRAINT currency_rates_pkey PRIMARY KEY (id);


--
-- Name: customers customers_pkey; Type: CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.customers
    ADD CONSTRAINT customers_pkey PRIMARY KEY (id);


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

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


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

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


--
-- Name: invoice_logs invoice_logs_pkey; Type: CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.invoice_logs
    ADD CONSTRAINT invoice_logs_pkey PRIMARY KEY (id);


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

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


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

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


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

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


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

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


--
-- Name: password_reset_tokens password_reset_tokens_pkey; Type: CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.password_reset_tokens
    ADD CONSTRAINT password_reset_tokens_pkey PRIMARY KEY (email);


--
-- Name: payments payments_pkey; Type: CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.payments
    ADD CONSTRAINT payments_pkey PRIMARY KEY (id);


--
-- Name: service_orders service_orders_invoice_id_key; Type: CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.service_orders
    ADD CONSTRAINT service_orders_invoice_id_key UNIQUE (invoice_id);


--
-- Name: service_orders service_orders_pkey; Type: CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.service_orders
    ADD CONSTRAINT service_orders_pkey PRIMARY KEY (id);


--
-- Name: services services_pkey; Type: CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.services
    ADD CONSTRAINT services_pkey PRIMARY KEY (id);


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

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


--
-- Name: users users_email_key; Type: CONSTRAINT; Schema: public; Owner: techcandle_gs
--

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


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

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


--
-- Name: vouchers vouchers_pkey; Type: CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.vouchers
    ADD CONSTRAINT vouchers_pkey PRIMARY KEY (id);


--
-- Name: vouchers vouchers_voucher_id_key; Type: CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.vouchers
    ADD CONSTRAINT vouchers_voucher_id_key UNIQUE (voucher_id);


--
-- Name: currency_rates currency_rates_changed_by_user_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.currency_rates
    ADD CONSTRAINT currency_rates_changed_by_user_id_foreign FOREIGN KEY (changed_by_user_id) REFERENCES public.users(id) ON DELETE SET NULL;


--
-- Name: invoice_logs invoice_logs_branch_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.invoice_logs
    ADD CONSTRAINT invoice_logs_branch_id_fkey FOREIGN KEY (branch_id) REFERENCES public.branches(id);


--
-- Name: invoice_logs invoice_logs_invoice_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.invoice_logs
    ADD CONSTRAINT invoice_logs_invoice_id_fkey FOREIGN KEY (invoice_id) REFERENCES public.invoices(invoice_id);


--
-- Name: invoice_logs invoice_logs_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.invoice_logs
    ADD CONSTRAINT invoice_logs_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id);


--
-- Name: invoices invoices_branch_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.invoices
    ADD CONSTRAINT invoices_branch_id_fkey FOREIGN KEY (branch_id) REFERENCES public.branches(id);


--
-- Name: invoices invoices_customer_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.invoices
    ADD CONSTRAINT invoices_customer_id_fkey FOREIGN KEY (customer_id) REFERENCES public.customers(id);


--
-- Name: invoices invoices_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.invoices
    ADD CONSTRAINT invoices_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id);


--
-- Name: payments payments_agent_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.payments
    ADD CONSTRAINT payments_agent_id_fkey FOREIGN KEY (agent_id) REFERENCES public.agents(id);


--
-- Name: payments payments_branch_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.payments
    ADD CONSTRAINT payments_branch_id_fkey FOREIGN KEY (branch_id) REFERENCES public.branches(id);


--
-- Name: payments payments_currency_rate_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.payments
    ADD CONSTRAINT payments_currency_rate_id_foreign FOREIGN KEY (currency_rate_id) REFERENCES public.currency_rates(id) ON DELETE SET NULL;


--
-- Name: payments payments_invoice_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.payments
    ADD CONSTRAINT payments_invoice_id_fkey FOREIGN KEY (invoice_id) REFERENCES public.invoices(invoice_id);


--
-- Name: payments payments_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.payments
    ADD CONSTRAINT payments_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id);


--
-- Name: service_orders service_orders_agent_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.service_orders
    ADD CONSTRAINT service_orders_agent_id_fkey FOREIGN KEY (agent_id) REFERENCES public.agents(id);


--
-- Name: service_orders service_orders_branch_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.service_orders
    ADD CONSTRAINT service_orders_branch_id_fkey FOREIGN KEY (branch_id) REFERENCES public.branches(id);


--
-- Name: service_orders service_orders_customer_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.service_orders
    ADD CONSTRAINT service_orders_customer_id_fkey FOREIGN KEY (customer_id) REFERENCES public.customers(id);


--
-- Name: service_orders service_orders_invoice_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.service_orders
    ADD CONSTRAINT service_orders_invoice_id_fkey FOREIGN KEY (invoice_id) REFERENCES public.invoices(invoice_id);


--
-- Name: service_orders service_orders_remarks_updated_by_foreign; Type: FK CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.service_orders
    ADD CONSTRAINT service_orders_remarks_updated_by_foreign FOREIGN KEY (remarks_updated_by) REFERENCES public.users(id) ON DELETE SET NULL;


--
-- Name: service_orders service_orders_service_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.service_orders
    ADD CONSTRAINT service_orders_service_id_fkey FOREIGN KEY (service_id) REFERENCES public.services(id);


--
-- Name: service_orders service_orders_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.service_orders
    ADD CONSTRAINT service_orders_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id);


--
-- Name: users users_branch_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.users
    ADD CONSTRAINT users_branch_id_fkey FOREIGN KEY (branch_id) REFERENCES public.branches(id);


--
-- Name: vouchers vouchers_branch_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.vouchers
    ADD CONSTRAINT vouchers_branch_id_fkey FOREIGN KEY (branch_id) REFERENCES public.branches(id);


--
-- Name: vouchers vouchers_currency_rate_id_foreign; Type: FK CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.vouchers
    ADD CONSTRAINT vouchers_currency_rate_id_foreign FOREIGN KEY (currency_rate_id) REFERENCES public.currency_rates(id) ON DELETE SET NULL;


--
-- Name: vouchers vouchers_invoice_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.vouchers
    ADD CONSTRAINT vouchers_invoice_id_fkey FOREIGN KEY (invoice_id) REFERENCES public.invoices(invoice_id);


--
-- Name: vouchers vouchers_payment_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.vouchers
    ADD CONSTRAINT vouchers_payment_id_fkey FOREIGN KEY (payment_id) REFERENCES public.payments(id) ON DELETE SET NULL;


--
-- Name: vouchers vouchers_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: techcandle_gs
--

ALTER TABLE ONLY public.vouchers
    ADD CONSTRAINT vouchers_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id);


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

GRANT ALL ON SCHEMA public TO techcandle_gs;


--
-- PostgreSQL database dump complete
--

\unrestrict 4dN5EkyP51nXYSaHvg9fpBeFrHhReyXgjXt5iQsofUfyxKVpSQsZToaojZEee5u

