Files
dolthub--doltgresql/testing/dumps/sql/MostafaProgramming_100719549.sql
2026-07-13 12:32:25 +08:00

2196 lines
63 KiB
PL/PgSQL

-- Downloaded from: https://github.com/MostafaProgramming/100719549/blob/dde5242880a860cda0275c4ccfcf5b33a9fa4e40/db_backup.sql
--
-- PostgreSQL database dump
--
-- Dumped from database version 17.0
-- Dumped by pg_dump version 17.0
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET transaction_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: decrease_stock_level(); Type: FUNCTION; Schema: public; Owner: postgres
--
CREATE FUNCTION public.decrease_stock_level() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
-- Ensure stock level does not go below zero
IF (SELECT stock_level FROM product WHERE product_id = NEW.product_id) < NEW.quantity_sold THEN
RAISE EXCEPTION 'Insufficient stock for product_id %', NEW.product_id;
END IF;
-- Decrease the stock level for the product
UPDATE product
SET stock_level = stock_level - NEW.quantity_sold
WHERE product_id = NEW.product_id;
RETURN NEW;
END;
$$;
ALTER FUNCTION public.decrease_stock_level() OWNER TO postgres;
--
-- Name: update_delivery_date(); Type: FUNCTION; Schema: public; Owner: postgres
--
CREATE FUNCTION public.update_delivery_date() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
-- If status is changed to 'Completed', set delivery_date to current date
IF NEW.order_status = 'Completed' THEN
NEW.delivery_date = CURRENT_DATE;
-- If status is not 'Completed', set delivery_date to NULL
ELSE
NEW.delivery_date = NULL;
END IF;
RETURN NEW;
END;
$$;
ALTER FUNCTION public.update_delivery_date() OWNER TO postgres;
--
-- Name: update_inventory_on_purchase_order(); Type: FUNCTION; Schema: public; Owner: postgres
--
CREATE FUNCTION public.update_inventory_on_purchase_order() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
-- Check if the status is being changed to 'Completed'
IF NEW.order_status = 'Completed' AND OLD.order_status != 'Completed' THEN
-- Update the inventory table for the respective location and product
UPDATE inventory
SET quantity = quantity + NEW.quantity,
last_updated = NOW()
WHERE product_id = NEW.product_id AND location_id = NEW.location_id;
END IF;
RETURN NEW;
END;
$$;
ALTER FUNCTION public.update_inventory_on_purchase_order() OWNER TO postgres;
--
-- Name: update_inventory_on_sale(); Type: FUNCTION; Schema: public; Owner: postgres
--
CREATE FUNCTION public.update_inventory_on_sale() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
-- Check if the product exists in the inventory for the given store
IF EXISTS (
SELECT 1
FROM inventory
WHERE product_id = NEW.product_id AND location_id = NEW.store_id
) THEN
-- Update the inventory quantity for the product at the store
UPDATE inventory
SET quantity = quantity - NEW.quantity_sold,
last_updated = NOW()
WHERE product_id = NEW.product_id AND location_id = NEW.store_id;
ELSE
-- If the inventory record doesn't exist for the store, raise an error
RAISE EXCEPTION 'Product % not found in inventory for store %', NEW.product_id, NEW.store_id;
END IF;
RETURN NEW;
END;
$$;
ALTER FUNCTION public.update_inventory_on_sale() OWNER TO postgres;
--
-- Name: update_inventory_on_transfer(); Type: FUNCTION; Schema: public; Owner: postgres
--
CREATE FUNCTION public.update_inventory_on_transfer() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
-- Reduce stock at the source location
UPDATE inventory
SET quantity = quantity - NEW.quantity,
last_updated = NOW()
WHERE product_id = NEW.product_id AND location_id = NEW.source_location_id;
-- Check if the product exists in the inventory at the destination location
IF EXISTS (
SELECT 1
FROM inventory
WHERE product_id = NEW.product_id AND location_id = NEW.destination_location_id
) THEN
-- Increase stock at the destination location
UPDATE inventory
SET quantity = quantity + NEW.quantity,
last_updated = NOW()
WHERE product_id = NEW.product_id AND location_id = NEW.destination_location_id;
ELSE
-- If the product does not exist in the destination, create a new record
INSERT INTO inventory (product_id, location_id, quantity, last_updated)
VALUES (NEW.product_id, NEW.destination_location_id, NEW.quantity, NOW());
END IF;
RETURN NEW;
END;
$$;
ALTER FUNCTION public.update_inventory_on_transfer() OWNER TO postgres;
SET default_tablespace = '';
SET default_table_access_method = heap;
--
-- Name: attendance; Type: TABLE; Schema: public; Owner: postgres
--
CREATE TABLE public.attendance (
attendance_id integer NOT NULL,
person_id integer,
date date,
status character varying(25)
);
ALTER TABLE public.attendance OWNER TO postgres;
--
-- Name: attendance_attendance_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--
CREATE SEQUENCE public.attendance_attendance_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.attendance_attendance_id_seq OWNER TO postgres;
--
-- Name: attendance_attendance_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--
ALTER SEQUENCE public.attendance_attendance_id_seq OWNED BY public.attendance.attendance_id;
--
-- Name: budget; Type: TABLE; Schema: public; Owner: postgres
--
CREATE TABLE public.budget (
budget_id integer NOT NULL,
department_id integer,
allocated_amount numeric(10,2),
start_date date DEFAULT CURRENT_DATE,
end_date date,
description character varying(256),
category character varying(256)
);
ALTER TABLE public.budget OWNER TO postgres;
--
-- Name: budget_budget_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--
CREATE SEQUENCE public.budget_budget_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.budget_budget_id_seq OWNER TO postgres;
--
-- Name: budget_budget_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--
ALTER SEQUENCE public.budget_budget_id_seq OWNED BY public.budget.budget_id;
--
-- Name: department; Type: TABLE; Schema: public; Owner: postgres
--
CREATE TABLE public.department (
department_id integer NOT NULL,
department_name character varying(50),
budget numeric(10,2),
manager_id integer
);
ALTER TABLE public.department OWNER TO postgres;
--
-- Name: department_department_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--
CREATE SEQUENCE public.department_department_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.department_department_id_seq OWNER TO postgres;
--
-- Name: department_department_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--
ALTER SEQUENCE public.department_department_id_seq OWNED BY public.department.department_id;
--
-- Name: employee; Type: TABLE; Schema: public; Owner: postgres
--
CREATE TABLE public.employee (
employee_id integer NOT NULL,
person_id integer,
absences integer
);
ALTER TABLE public.employee OWNER TO postgres;
--
-- Name: employee_employee_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--
CREATE SEQUENCE public.employee_employee_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.employee_employee_id_seq OWNER TO postgres;
--
-- Name: employee_employee_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--
ALTER SEQUENCE public.employee_employee_id_seq OWNED BY public.employee.employee_id;
--
-- Name: executive; Type: TABLE; Schema: public; Owner: postgres
--
CREATE TABLE public.executive (
executive_id integer NOT NULL,
person_id integer
);
ALTER TABLE public.executive OWNER TO postgres;
--
-- Name: executive_executive_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--
CREATE SEQUENCE public.executive_executive_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.executive_executive_id_seq OWNER TO postgres;
--
-- Name: executive_executive_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--
ALTER SEQUENCE public.executive_executive_id_seq OWNED BY public.executive.executive_id;
--
-- Name: expenses; Type: TABLE; Schema: public; Owner: postgres
--
CREATE TABLE public.expenses (
expense_id integer NOT NULL,
amount numeric(10,2),
department_id integer,
budget_id integer,
category character varying(50),
date_of_expense date,
description character varying(100),
person_id integer
);
ALTER TABLE public.expenses OWNER TO postgres;
--
-- Name: expenses_expense_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--
CREATE SEQUENCE public.expenses_expense_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.expenses_expense_id_seq OWNER TO postgres;
--
-- Name: expenses_expense_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--
ALTER SEQUENCE public.expenses_expense_id_seq OWNED BY public.expenses.expense_id;
--
-- Name: financial_report; Type: TABLE; Schema: public; Owner: postgres
--
CREATE TABLE public.financial_report (
report_id integer NOT NULL,
department_id integer,
store_id integer,
report_type character varying(25),
generated_date date,
period_start date,
period_end date,
total_expenses numeric(10,2),
total_revenue numeric(10,2),
net_profit numeric(10,2)
);
ALTER TABLE public.financial_report OWNER TO postgres;
--
-- Name: financialreport_report_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--
CREATE SEQUENCE public.financialreport_report_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.financialreport_report_id_seq OWNER TO postgres;
--
-- Name: financialreport_report_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--
ALTER SEQUENCE public.financialreport_report_id_seq OWNED BY public.financial_report.report_id;
--
-- Name: inventory; Type: TABLE; Schema: public; Owner: postgres
--
CREATE TABLE public.inventory (
inventory_id integer NOT NULL,
product_id integer,
location_id integer,
quantity integer,
last_updated date
);
ALTER TABLE public.inventory OWNER TO postgres;
--
-- Name: inventory_inventory_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--
CREATE SEQUENCE public.inventory_inventory_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.inventory_inventory_id_seq OWNER TO postgres;
--
-- Name: inventory_inventory_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--
ALTER SEQUENCE public.inventory_inventory_id_seq OWNED BY public.inventory.inventory_id;
--
-- Name: location; Type: TABLE; Schema: public; Owner: postgres
--
CREATE TABLE public.location (
location_id integer NOT NULL,
location_name character varying(25),
location character varying(100),
manager_id integer,
contact_number character varying(15)
);
ALTER TABLE public.location OWNER TO postgres;
--
-- Name: location_location_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--
CREATE SEQUENCE public.location_location_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.location_location_id_seq OWNER TO postgres;
--
-- Name: location_location_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--
ALTER SEQUENCE public.location_location_id_seq OWNED BY public.location.location_id;
--
-- Name: manager; Type: TABLE; Schema: public; Owner: postgres
--
CREATE TABLE public.manager (
manager_id integer NOT NULL,
person_id integer,
absences integer
);
ALTER TABLE public.manager OWNER TO postgres;
--
-- Name: manager_manager_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--
CREATE SEQUENCE public.manager_manager_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.manager_manager_id_seq OWNER TO postgres;
--
-- Name: manager_manager_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--
ALTER SEQUENCE public.manager_manager_id_seq OWNED BY public.manager.manager_id;
--
-- Name: payroll; Type: TABLE; Schema: public; Owner: postgres
--
CREATE TABLE public.payroll (
payroll_id integer NOT NULL,
person_id integer,
department_id integer,
budget_id integer,
salary numeric(10,2),
bonuses numeric(10,2),
deductions numeric(10,2),
net_salary numeric(10,2),
pay_date date
);
ALTER TABLE public.payroll OWNER TO postgres;
--
-- Name: payroll_payroll_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--
CREATE SEQUENCE public.payroll_payroll_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.payroll_payroll_id_seq OWNER TO postgres;
--
-- Name: payroll_payroll_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--
ALTER SEQUENCE public.payroll_payroll_id_seq OWNED BY public.payroll.payroll_id;
--
-- Name: person; Type: TABLE; Schema: public; Owner: postgres
--
CREATE TABLE public.person (
person_id integer NOT NULL,
name character varying(100),
email character varying(100),
role character varying(50),
salary numeric(10,2),
department_id integer,
location_id integer,
hire_date date,
location character varying(100)
);
ALTER TABLE public.person OWNER TO postgres;
--
-- Name: person_person_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--
CREATE SEQUENCE public.person_person_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.person_person_id_seq OWNER TO postgres;
--
-- Name: person_person_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--
ALTER SEQUENCE public.person_person_id_seq OWNED BY public.person.person_id;
--
-- Name: product; Type: TABLE; Schema: public; Owner: postgres
--
CREATE TABLE public.product (
product_id integer NOT NULL,
product_name character varying(100),
category character varying(50),
price numeric(10,2),
stock_level integer,
reorder_level integer,
last_purchase_date date,
supplier_id integer,
cost numeric(10,2)
);
ALTER TABLE public.product OWNER TO postgres;
--
-- Name: product_product_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--
CREATE SEQUENCE public.product_product_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.product_product_id_seq OWNER TO postgres;
--
-- Name: product_product_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--
ALTER SEQUENCE public.product_product_id_seq OWNED BY public.product.product_id;
--
-- Name: purchase_order; Type: TABLE; Schema: public; Owner: postgres
--
CREATE TABLE public.purchase_order (
purchase_order_id integer NOT NULL,
supplier_id integer,
product_id integer,
order_date date,
delivery_date date,
total_amount numeric(10,2),
order_status character varying(25),
quantity integer DEFAULT 1 NOT NULL,
location_id integer,
CONSTRAINT purchase_order_status_check CHECK (((order_status)::text = ANY ((ARRAY['Pending'::character varying, 'Completed'::character varying, 'Cancelled'::character varying, 'Awaiting Approval'::character varying, 'Late'::character varying])::text[])))
);
ALTER TABLE public.purchase_order OWNER TO postgres;
--
-- Name: purchaseorder_purchase_order_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--
CREATE SEQUENCE public.purchaseorder_purchase_order_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.purchaseorder_purchase_order_id_seq OWNER TO postgres;
--
-- Name: purchaseorder_purchase_order_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--
ALTER SEQUENCE public.purchaseorder_purchase_order_id_seq OWNED BY public.purchase_order.purchase_order_id;
--
-- Name: sales_forecast; Type: TABLE; Schema: public; Owner: postgres
--
CREATE TABLE public.sales_forecast (
forecast_id integer NOT NULL,
store_id integer,
product_id integer,
start_date date,
end_date date,
predicted_sales integer,
created_date date
);
ALTER TABLE public.sales_forecast OWNER TO postgres;
--
-- Name: sales_record; Type: TABLE; Schema: public; Owner: postgres
--
CREATE TABLE public.sales_record (
sales_id integer NOT NULL,
store_id integer,
manager_id integer,
product_id integer,
quantity_sold integer,
date_of_sale date,
total_amount numeric(10,2),
payment_method character varying(25)
);
ALTER TABLE public.sales_record OWNER TO postgres;
--
-- Name: salesforecast_forecast_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--
CREATE SEQUENCE public.salesforecast_forecast_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.salesforecast_forecast_id_seq OWNER TO postgres;
--
-- Name: salesforecast_forecast_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--
ALTER SEQUENCE public.salesforecast_forecast_id_seq OWNED BY public.sales_forecast.forecast_id;
--
-- Name: salesrecord_sales_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--
CREATE SEQUENCE public.salesrecord_sales_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.salesrecord_sales_id_seq OWNER TO postgres;
--
-- Name: salesrecord_sales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--
ALTER SEQUENCE public.salesrecord_sales_id_seq OWNED BY public.sales_record.sales_id;
--
-- Name: stock_transfer; Type: TABLE; Schema: public; Owner: postgres
--
CREATE TABLE public.stock_transfer (
transfer_id integer NOT NULL,
source_location_id integer,
destination_location_id integer,
product_id integer,
quantity integer,
transfer_date date,
status character varying(25)
);
ALTER TABLE public.stock_transfer OWNER TO postgres;
--
-- Name: stocktransfer_transfer_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--
CREATE SEQUENCE public.stocktransfer_transfer_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.stocktransfer_transfer_id_seq OWNER TO postgres;
--
-- Name: stocktransfer_transfer_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--
ALTER SEQUENCE public.stocktransfer_transfer_id_seq OWNED BY public.stock_transfer.transfer_id;
--
-- Name: store; Type: TABLE; Schema: public; Owner: postgres
--
CREATE TABLE public.store (
store_id integer NOT NULL,
location_id integer,
operating_hours character varying(50)
);
ALTER TABLE public.store OWNER TO postgres;
--
-- Name: store_store_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--
CREATE SEQUENCE public.store_store_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.store_store_id_seq OWNER TO postgres;
--
-- Name: store_store_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--
ALTER SEQUENCE public.store_store_id_seq OWNED BY public.store.store_id;
--
-- Name: supplier; Type: TABLE; Schema: public; Owner: postgres
--
CREATE TABLE public.supplier (
supplier_id integer NOT NULL,
supplier_name character varying(50),
contact_details character varying(25),
location character varying(25),
contract_terms character varying(250)
);
ALTER TABLE public.supplier OWNER TO postgres;
--
-- Name: supplier_supplier_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--
CREATE SEQUENCE public.supplier_supplier_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.supplier_supplier_id_seq OWNER TO postgres;
--
-- Name: supplier_supplier_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--
ALTER SEQUENCE public.supplier_supplier_id_seq OWNED BY public.supplier.supplier_id;
--
-- Name: users; Type: TABLE; Schema: public; Owner: postgres
--
CREATE TABLE public.users (
user_id integer NOT NULL,
person_id integer,
email character varying(50),
password character varying(255),
role character varying(25),
location_id integer
);
ALTER TABLE public.users OWNER TO postgres;
--
-- Name: users_user_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--
CREATE SEQUENCE public.users_user_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.users_user_id_seq OWNER TO postgres;
--
-- Name: users_user_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--
ALTER SEQUENCE public.users_user_id_seq OWNED BY public.users.user_id;
--
-- Name: warehouse; Type: TABLE; Schema: public; Owner: postgres
--
CREATE TABLE public.warehouse (
warehouse_id integer NOT NULL,
location_id integer,
capacity integer
);
ALTER TABLE public.warehouse OWNER TO postgres;
--
-- Name: warehouse_warehouse_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--
CREATE SEQUENCE public.warehouse_warehouse_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.warehouse_warehouse_id_seq OWNER TO postgres;
--
-- Name: warehouse_warehouse_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--
ALTER SEQUENCE public.warehouse_warehouse_id_seq OWNED BY public.warehouse.warehouse_id;
--
-- Name: attendance attendance_id; Type: DEFAULT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.attendance ALTER COLUMN attendance_id SET DEFAULT nextval('public.attendance_attendance_id_seq'::regclass);
--
-- Name: budget budget_id; Type: DEFAULT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.budget ALTER COLUMN budget_id SET DEFAULT nextval('public.budget_budget_id_seq'::regclass);
--
-- Name: department department_id; Type: DEFAULT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.department ALTER COLUMN department_id SET DEFAULT nextval('public.department_department_id_seq'::regclass);
--
-- Name: employee employee_id; Type: DEFAULT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.employee ALTER COLUMN employee_id SET DEFAULT nextval('public.employee_employee_id_seq'::regclass);
--
-- Name: executive executive_id; Type: DEFAULT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.executive ALTER COLUMN executive_id SET DEFAULT nextval('public.executive_executive_id_seq'::regclass);
--
-- Name: expenses expense_id; Type: DEFAULT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.expenses ALTER COLUMN expense_id SET DEFAULT nextval('public.expenses_expense_id_seq'::regclass);
--
-- Name: financial_report report_id; Type: DEFAULT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.financial_report ALTER COLUMN report_id SET DEFAULT nextval('public.financialreport_report_id_seq'::regclass);
--
-- Name: inventory inventory_id; Type: DEFAULT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.inventory ALTER COLUMN inventory_id SET DEFAULT nextval('public.inventory_inventory_id_seq'::regclass);
--
-- Name: location location_id; Type: DEFAULT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.location ALTER COLUMN location_id SET DEFAULT nextval('public.location_location_id_seq'::regclass);
--
-- Name: manager manager_id; Type: DEFAULT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.manager ALTER COLUMN manager_id SET DEFAULT nextval('public.manager_manager_id_seq'::regclass);
--
-- Name: payroll payroll_id; Type: DEFAULT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.payroll ALTER COLUMN payroll_id SET DEFAULT nextval('public.payroll_payroll_id_seq'::regclass);
--
-- Name: person person_id; Type: DEFAULT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.person ALTER COLUMN person_id SET DEFAULT nextval('public.person_person_id_seq'::regclass);
--
-- Name: product product_id; Type: DEFAULT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.product ALTER COLUMN product_id SET DEFAULT nextval('public.product_product_id_seq'::regclass);
--
-- Name: purchase_order purchase_order_id; Type: DEFAULT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.purchase_order ALTER COLUMN purchase_order_id SET DEFAULT nextval('public.purchaseorder_purchase_order_id_seq'::regclass);
--
-- Name: sales_forecast forecast_id; Type: DEFAULT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.sales_forecast ALTER COLUMN forecast_id SET DEFAULT nextval('public.salesforecast_forecast_id_seq'::regclass);
--
-- Name: sales_record sales_id; Type: DEFAULT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.sales_record ALTER COLUMN sales_id SET DEFAULT nextval('public.salesrecord_sales_id_seq'::regclass);
--
-- Name: stock_transfer transfer_id; Type: DEFAULT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.stock_transfer ALTER COLUMN transfer_id SET DEFAULT nextval('public.stocktransfer_transfer_id_seq'::regclass);
--
-- Name: store store_id; Type: DEFAULT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.store ALTER COLUMN store_id SET DEFAULT nextval('public.store_store_id_seq'::regclass);
--
-- Name: supplier supplier_id; Type: DEFAULT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.supplier ALTER COLUMN supplier_id SET DEFAULT nextval('public.supplier_supplier_id_seq'::regclass);
--
-- Name: users user_id; Type: DEFAULT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.users ALTER COLUMN user_id SET DEFAULT nextval('public.users_user_id_seq'::regclass);
--
-- Name: warehouse warehouse_id; Type: DEFAULT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.warehouse ALTER COLUMN warehouse_id SET DEFAULT nextval('public.warehouse_warehouse_id_seq'::regclass);
--
-- Data for Name: attendance; Type: TABLE DATA; Schema: public; Owner: postgres
--
COPY public.attendance (attendance_id, person_id, date, status) FROM stdin;
1 3 2025-01-02 Present
2 3 2025-01-01 Absent
3 3 2024-12-31 Absent
4 3 2025-01-03 Present
5 2 2025-01-02 Present
6 3 2025-01-02 Absent
7 4 2025-01-01 Present
8 4 2025-01-02 Present
\.
--
-- Data for Name: budget; Type: TABLE DATA; Schema: public; Owner: postgres
--
COPY public.budget (budget_id, department_id, allocated_amount, start_date, end_date, description, category) FROM stdin;
104 2 15000.00 2025-01-01 2025-12-31 Budget for job postings, recruitment drives, and onboarding Recruitment
105 2 20000.00 2025-01-01 2025-12-31 Budget for employee upskilling and training programs Employee Training
106 2 10000.00 2025-01-01 2025-12-31 Budget for team-building activities and welfare programs Employee Welfare
110 4 25000.00 2025-01-01 2025-12-31 Budget for vendor-related activities and agreements Vendor Management
111 4 50000.00 2025-01-01 2025-12-31 Budget for warehouse and stock handling costs Inventory Management
112 4 15000.00 2025-01-01 2025-12-31 Budget for office and operational supplies Supplies
113 5 20000.00 2025-01-01 2025-12-31 Budget for electricity, water, and other utilities Utilities
114 5 30000.00 2025-01-01 2025-12-31 Budget for transportation and delivery costs Logistics
115 5 20000.00 2025-01-01 2025-12-31 Budget for equipment and infrastructure maintenance Maintenance
107 1 30000.00 2025-01-01 2025-12-31 Travel budget for sales personnel Travel
108 1 40000.00 2025-01-01 2025-12-31 Budget for promotional campaigns and marketing materials Promotions
109 1 15000.00 2025-01-01 2025-12-31 Budget for client dinners and meetings Client Entertainment
101 3 50000.00 2025-01-01 2025-12-31 Annual budget for financial research Financial Research
102 3 30000.00 2025-01-01 2025-12-31 Budget for getting projected forecasts Forecasting Methods
103 3 20000.00 2025-01-01 2025-12-31 Budget for Outsourcing Outsourcing Finance
\.
--
-- Data for Name: department; Type: TABLE DATA; Schema: public; Owner: postgres
--
COPY public.department (department_id, department_name, budget, manager_id) FROM stdin;
5 Operations 700000.00 \N
1 Sales 500000.00 6
2 HR 350000.00 7
3 Finance 600000.00 8
4 Procurement 600000.00 9
\.
--
-- Data for Name: employee; Type: TABLE DATA; Schema: public; Owner: postgres
--
COPY public.employee (employee_id, person_id, absences) FROM stdin;
4 6 0
6 17 0
7 18 0
8 19 0
9 20 0
10 21 0
11 22 0
12 23 0
13 24 0
14 25 0
15 26 0
16 27 0
17 28 0
18 29 0
19 30 0
20 31 0
1 1 0
2 2 0
3 3 0
5 10 0
\.
--
-- Data for Name: executive; Type: TABLE DATA; Schema: public; Owner: postgres
--
COPY public.executive (executive_id, person_id) FROM stdin;
1 7
2 8
\.
--
-- Data for Name: expenses; Type: TABLE DATA; Schema: public; Owner: postgres
--
COPY public.expenses (expense_id, amount, department_id, budget_id, category, date_of_expense, description, person_id) FROM stdin;
26 5000.00 3 101 Financial Research 2025-01-15 Consultation with financial analysts 15
27 3000.00 3 102 Forecasting Methods 2025-02-01 Workshop on forecasting techniques 19
28 5000.00 3 103 Outsourcing Finance 2025-03-10 Payment to outsourced accounting firm 15
29 4000.00 2 104 Recruitment 2025-01-20 Job advertisement costs for new hires 14
30 3000.00 2 105 Employee Training 2025-02-15 Workshop for upskilling employees 14
31 2000.00 2 106 Employee Welfare 2025-03-10 Snacks and refreshments for team-building events 17
32 5000.00 1 107 Travel 2025-01-25 Travel costs for client meetings 22
33 10000.00 1 108 Promotions 2025-02-20 Social media and online campaigns 24
34 3000.00 1 109 Client Entertainment 2025-03-05 Client dinner at a corporate event 13
35 8000.00 5 110 Vendor Management 2025-01-12 Annual vendor contract renewal fees 4
36 12000.00 5 111 Inventory Management 2025-02-01 Restocking of warehouse supplies 12
37 1500.00 5 112 Supplies 2025-02-18 Office supplies for operations 5
38 2000.00 5 113 Utilities 2025-03-10 Electricity bill for March 9
39 4000.00 5 114 Logistics 2025-03-15 Transportation costs for product deliveries 11
40 5000.00 5 115 Maintenance 2025-03-25 Equipment servicing and repair 9
\.
--
-- Data for Name: financial_report; Type: TABLE DATA; Schema: public; Owner: postgres
--
COPY public.financial_report (report_id, department_id, store_id, report_type, generated_date, period_start, period_end, total_expenses, total_revenue, net_profit) FROM stdin;
\.
--
-- Data for Name: inventory; Type: TABLE DATA; Schema: public; Owner: postgres
--
COPY public.inventory (inventory_id, product_id, location_id, quantity, last_updated) FROM stdin;
1 1001 1 120 2025-01-01
2 1001 2 100 2025-01-01
3 1001 3 80 2025-01-01
4 1001 4 80 2025-01-01
5 1001 5 88 2025-01-01
6 1002 1 30 2025-01-01
7 1002 2 25 2025-01-01
8 1002 3 20 2025-01-01
10 1002 5 29 2025-01-01
12 1003 2 50 2025-01-01
13 1003 3 40 2025-01-01
15 1003 5 50 2025-01-01
16 1005 1 50 2025-01-01
17 1005 2 40 2025-01-01
18 1005 3 40 2025-01-01
19 1005 4 50 2025-01-01
21 1007 1 15 2025-01-01
22 1007 2 15 2025-01-01
23 1007 3 10 2025-01-01
24 1007 4 20 2025-01-01
25 1007 5 19 2025-01-01
26 1009 1 40 2025-01-01
27 1009 2 35 2025-01-01
28 1009 3 30 2025-01-01
29 1009 4 40 2025-01-01
30 1009 5 39 2025-01-01
31 1010 1 70 2025-01-01
32 1010 2 60 2025-01-01
33 1010 3 60 2025-01-01
34 1010 4 70 2025-01-01
35 1010 5 68 2025-01-01
36 1004 1 130 2025-01-01
37 1004 2 120 2025-01-01
38 1004 3 120 2025-01-01
39 1004 4 130 2025-01-01
41 1008 1 80 2025-01-01
42 1008 2 75 2025-01-01
43 1008 3 70 2025-01-01
44 1008 4 75 2025-01-01
45 1008 5 76 2025-01-01
47 1006 2 8 2025-01-01
48 1006 3 6 2025-01-01
49 1006 4 8 2025-01-01
50 1006 5 10 2025-01-01
46 1006 1 5 2025-01-05
11 1003 1 60 2025-01-05
14 1003 4 60 2025-01-05
9 1002 4 49 2025-01-05
40 1004 5 148 2025-01-05
20 1005 5 57 2025-01-05
\.
--
-- Data for Name: location; Type: TABLE DATA; Schema: public; Owner: postgres
--
COPY public.location (location_id, location_name, location, manager_id, contact_number) FROM stdin;
1 Las Vegas Store Las Vegas, NV 1 702-555-0100
2 Sydney Store Sydney, Australia 2 61-2-5550-1234
5 New York Warehouse New York, NY 3 212-555-0200
3 New York Store New York, NY 4 212-555-0200
4 Washington Warehouse Washington 5 212-555-0200
\.
--
-- Data for Name: manager; Type: TABLE DATA; Schema: public; Owner: postgres
--
COPY public.manager (manager_id, person_id, absences) FROM stdin;
1 4 1
2 5 0
3 9 2
4 11 0
5 12 0
6 13 0
7 14 0
8 15 0
9 16 0
\.
--
-- Data for Name: payroll; Type: TABLE DATA; Schema: public; Owner: postgres
--
COPY public.payroll (payroll_id, person_id, department_id, budget_id, salary, bonuses, deductions, net_salary, pay_date) FROM stdin;
6 6 2 108 76000.00 4500.00 2000.00 78500.00 2025-01-31
7 7 5 113 58000.00 2000.00 500.00 59500.00 2025-01-31
8 8 5 113 60000.00 1000.00 800.00 60200.00 2025-01-31
9 9 5 113 55000.00 1500.00 700.00 55800.00 2025-01-31
10 10 4 106 80000.00 5000.00 3000.00 82000.00 2025-01-31
11 1 3 101 90000.00 3000.00 2000.00 91000.00 2024-12-31
12 2 3 101 95000.00 3500.00 2500.00 96000.00 2024-12-31
13 3 1 102 78000.00 3000.00 2000.00 79000.00 2024-11-30
14 4 2 105 77000.00 2500.00 3000.00 76500.00 2024-11-30
15 5 4 106 74000.00 2000.00 1000.00 75000.00 2024-10-31
16 6 2 108 76000.00 3500.00 1500.00 78000.00 2024-09-30
17 7 5 113 58000.00 1000.00 500.00 58500.00 2024-12-31
18 8 5 113 60000.00 1200.00 800.00 60400.00 2024-11-30
19 9 5 113 55000.00 1000.00 600.00 55400.00 2024-10-31
20 10 4 106 80000.00 4000.00 2500.00 81500.00 2024-08-31
21 11 1 102 85000.00 2500.00 1500.00 86000.00 2025-01-31
22 12 2 108 50000.00 2000.00 800.00 51200.00 2024-12-31
23 13 3 101 47000.00 3000.00 1000.00 49000.00 2024-12-31
24 14 5 113 75000.00 4000.00 3000.00 76000.00 2024-12-31
25 15 4 106 72000.00 3000.00 2500.00 72500.00 2024-11-30
26 16 5 113 42000.00 2000.00 500.00 43500.00 2024-10-31
27 17 4 106 75000.00 4500.00 2000.00 77500.00 2024-09-30
28 18 1 102 56000.00 2000.00 500.00 57500.00 2025-01-31
29 19 1 102 60000.00 3000.00 1500.00 61500.00 2025-01-31
30 20 5 113 43000.00 1000.00 700.00 42300.00 2024-12-31
1 1 5 101 90000.00 5000.00 2000.00 93000.00 2025-01-31
2 2 5 101 95000.00 4000.00 3000.00 96000.00 2025-01-31
3 3 5 102 78000.00 3000.00 2500.00 78500.00 2025-01-31
4 4 5 105 77000.00 4000.00 3000.00 78000.00 2025-01-31
5 5 5 106 74000.00 2000.00 1000.00 75000.00 2025-01-31
\.
--
-- Data for Name: person; Type: TABLE DATA; Schema: public; Owner: postgres
--
COPY public.person (person_id, name, email, role, salary, department_id, location_id, hire_date, location) FROM stdin;
7 Valentina Shevchenko valentina.shevchenko@example.com Executive 90000.00 \N \N 2017-05-30 London
8 Francis Ngannou francis.ngannou@example.com Executive 95000.00 \N \N 2016-04-12 London
13 Deontay Wilder deontay.wilder@example.com Sales Manager 78000.00 1 \N 2019-09-10 London
14 Anthony Joshua anthony.joshua@example.com HR Manager 77000.00 2 \N 2021-03-22 London
15 Vasiliy Lomachenko vasiliy.lomachenko@example.com Finance Manager 76000.00 3 \N 2017-12-05 London
16 Gervonta Davis gervonta.davis@example.com Procurement Manager 74000.00 4 \N 2022-01-20 London
17 Lionel Messi lionel.messi@example.com HR Employee 55000.00 2 \N 2021-02-10 London
18 Cristiano Ronaldo cristiano.ronaldo@example.com HR Employee 56000.00 2 \N 2020-11-25 London
19 Neymar Jr neymar.jr@example.com Finance Employee 54000.00 3 \N 2022-07-18 London
20 Kylian Mbappe kylian.mbappe@example.com Procurement Employee 58000.00 4 \N 2019-01-12 London
21 Robert Lewandowski robert.lewandowski@example.com Procurement Employee 57000.00 4 \N 2020-08-05 London
22 Kevin De Bruyne kevin.debruyne@example.com Sales Employee 55000.00 1 \N 2021-06-15 London
23 Virgil Van Dijk virgil.vandijk@example.com Sales Employee 60000.00 1 \N 2018-10-23 London
24 Mohamed Salah mohamed.salah@example.com Sales Employee 58000.00 1 \N 2022-02-18 London
1 Conor McGregor conor.mcgregor@example.com Store Employee 85000.00 5 1 2021-01-15 Las Vegas
2 Israel Adesanya israel.adesanya@example.com Store Employee 42000.00 5 1 2020-11-12 Las Vegas
3 Kamaru Usman kamaru.usman@example.com Store Employee 47000.00 5 2 2022-03-01 Sydney
4 Amanda Nunes amanda.nunes@example.com Store Manager 75000.00 5 1 2019-06-01 Las Vegas
5 Alexander Volkanovski alexander.volkanovski@example.com Store Manager 72000.00 5 2 2018-10-20 Sydney
6 Jon Jones jon.jones@example.com Store Employee 43000.00 5 2 2021-12-10 Sydney
9 Sean OMalley sean.omalley@example.com Warehouse Manager 76000.00 5 5 2020-09-15 New York
10 Dustin Poirier dustin.poirier@example.com Warehouse Employee 40000.00 5 5 2022-07-08 New York
11 Canelo Alvarez canelo.alvarez@example.com Store Manager 75000.00 5 3 2020-04-01 New York
12 Tyson Fury tyson.fury@example.com Warehouse Manager 80000.00 5 4 2018-06-15 Washington
25 Harry Kane harry.kane@example.com Store Employee 59000.00 5 3 2020-03-15 New York
26 Erling Haaland erling.haaland@example.com Store Employee 56000.00 5 3 2021-09-01 New York
27 Luka Modric luka.modric@example.com Store Employee 57000.00 5 3 2022-01-30 New York
28 Karim Benzema karim.benzema@example.com Store Employee 58000.00 5 3 2019-04-25 New York
29 Sadio Mane sadio.mane@example.com Warehouse Employee 54000.00 5 4 2021-07-20 Washington
30 Bruno Fernandes bruno.fernandes@example.com Warehouse Employee 55000.00 5 4 2020-11-10 Washington
31 Marcus Rashford marcus.rashford@example.com Warehouse Employee 60000.00 5 4 2022-05-18 Washington
\.
--
-- Data for Name: product; Type: TABLE DATA; Schema: public; Owner: postgres
--
COPY public.product (product_id, product_name, category, price, stock_level, reorder_level, last_purchase_date, supplier_id, cost) FROM stdin;
1001 High-Pressure Turbine Blade Engine Component 2500.00 468 100 2024-01-10 1 900.00
1002 Combustion Chamber Engine Component 12000.00 134 50 2024-01-15 2 4000.00
1003 Fan Blade Engine Component 1800.00 260 75 2024-01-20 3 1200.00
1005 Compressor Disk Engine Component 5000.00 231 75 2024-02-01 5 3200.00
1007 Ignition System Engine Component 4500.00 79 25 2024-02-10 1 2700.00
1009 Bearing Housing Engine Component 3500.00 184 50 2024-02-20 3 2800.00
1010 Thermal Insulation Blanket Engine Component 1500.00 328 90 2024-02-25 4 950.00
1004 Fuel Nozzle Engine Component 800.00 640 200 2024-01-25 4 550.00
1008 Oil Pump Engine Component 1200.00 376 100 2024-02-15 2 700.00
1006 Thrust Reverser Engine Component 15000.00 37 20 2024-02-05 6 12500.00
\.
--
-- Data for Name: purchase_order; Type: TABLE DATA; Schema: public; Owner: postgres
--
COPY public.purchase_order (purchase_order_id, supplier_id, product_id, order_date, delivery_date, total_amount, order_status, quantity, location_id) FROM stdin;
8 2 1002 2024-01-15 2024-02-05 3000.00 Completed 15 4
10 4 1004 2024-01-25 2024-02-15 4000.00 Completed 8 5
12 6 1006 2024-02-05 \N 6000.00 Pending 12 5
9 3 1003 2024-01-20 \N 7500.00 Cancelled 25 4
7 1 1002 2024-01-10 \N 5000.00 Awaiting Approval 19 4
11 5 1005 2024-02-01 2025-01-05 2000.00 Completed 6 5
13 2 1002 2025-01-08 \N 24000.00 Awaiting Approval 2 5
14 3 1003 2025-01-08 \N 3600.00 Awaiting Approval 2 5
15 1 1001 2025-01-08 \N 32500.00 Awaiting Approval 13 5
\.
--
-- Data for Name: sales_forecast; Type: TABLE DATA; Schema: public; Owner: postgres
--
COPY public.sales_forecast (forecast_id, store_id, product_id, start_date, end_date, predicted_sales, created_date) FROM stdin;
\.
--
-- Data for Name: sales_record; Type: TABLE DATA; Schema: public; Owner: postgres
--
COPY public.sales_record (sales_id, store_id, manager_id, product_id, quantity_sold, date_of_sale, total_amount, payment_method) FROM stdin;
1 1 1 1001 5 2025-01-05 12500.00 Credit Card
2 1 1 1003 10 2025-01-06 18000.00 Cash
3 1 1 1007 3 2025-01-07 13500.00 Debit Card
4 2 2 1002 2 2025-01-05 24000.00 Cash
5 2 2 1005 4 2025-01-06 20000.00 Credit Card
6 2 2 1008 6 2025-01-07 21000.00 Debit Card
7 3 4 1004 7 2025-01-05 5600.00 Cash
8 3 4 1006 1 2025-01-06 15000.00 Credit Card
9 3 4 1010 3 2025-01-07 4500.00 Debit Card
10 1 1 1001 10 2025-01-01 25000.00 Credit Card
11 1 1 1002 5 2025-01-02 60000.00 Cash
12 1 1 1003 8 2025-01-05 14400.00 Debit Card
13 1 1 1004 20 2025-01-10 16000.00 Credit Card
14 1 1 1005 3 2025-02-01 15000.00 Cash
15 1 1 1006 2 2025-02-15 30000.00 Credit Card
16 1 1 1007 5 2025-02-20 22500.00 Cash
17 1 1 1008 10 2025-03-01 35000.00 Credit Card
18 1 1 1009 4 2025-03-15 14000.00 Debit Card
19 1 1 1010 6 2025-03-20 9000.00 Cash
20 2 2 1001 12 2025-01-01 30000.00 Cash
21 2 2 1003 15 2025-01-12 27000.00 Debit Card
22 2 2 1004 25 2025-02-05 20000.00 Credit Card
23 2 2 1005 10 2025-02-14 50000.00 Cash
24 2 2 1006 4 2025-02-28 60000.00 Debit Card
25 2 2 1007 7 2025-03-10 31500.00 Cash
26 2 2 1008 6 2025-03-15 21000.00 Credit Card
27 2 2 1009 8 2025-03-20 28000.00 Cash
28 2 2 1010 10 2025-03-25 15000.00 Debit Card
29 2 2 1002 6 2025-03-30 72000.00 Credit Card
30 3 4 1001 5 2025-01-03 12500.00 Debit Card
31 3 4 1002 3 2025-01-15 36000.00 Cash
32 3 4 1003 7 2025-02-05 12600.00 Credit Card
33 3 4 1005 2 2025-02-12 10000.00 Cash
34 3 4 1007 6 2025-02-20 27000.00 Debit Card
35 3 4 1009 4 2025-02-25 14000.00 Credit Card
36 3 4 1010 3 2025-03-05 4500.00 Cash
37 3 4 1004 8 2025-03-10 6400.00 Debit Card
38 3 4 1008 2 2025-03-15 7000.00 Credit Card
39 3 4 1006 1 2025-03-20 15000.00 Cash
40 1 1 1006 5 2025-04-13 12500.00 Credit Card
\.
--
-- Data for Name: stock_transfer; Type: TABLE DATA; Schema: public; Owner: postgres
--
COPY public.stock_transfer (transfer_id, source_location_id, destination_location_id, product_id, quantity, transfer_date, status) FROM stdin;
1 1 4 1003 10 2025-01-05 Completed
\.
--
-- Data for Name: store; Type: TABLE DATA; Schema: public; Owner: postgres
--
COPY public.store (store_id, location_id, operating_hours) FROM stdin;
2 2 09:00-17:00
3 3 09:00-17:00
1 1 09:00-15:00
\.
--
-- Data for Name: supplier; Type: TABLE DATA; Schema: public; Owner: postgres
--
COPY public.supplier (supplier_id, supplier_name, contact_details, location, contract_terms) FROM stdin;
1 Jet Engine Components Co. 123-456-7890 Las Vegas, USA Supply jet engine components for 3 years
2 Precision Engineering Ltd. 987-654-3210 New York, USA Exclusive supplier of precision-machined parts
3 High-Tech Materials Inc. 555-666-7777 Washington, USA Provide high-strength alloys and composites
4 Aerospace Electronics PLC 222-333-4444 Sydney, Australia Electronics and sensors for Rolls-Royce engines
5 Advanced Manufacturing Solutions 444-555-6666 Coventry, UK Support with additive manufacturing technologies
6 Global Aviation Supplies 777-888-9999 Istanbul, Turkey Provide consumables and tools for aviation operations
\.
--
-- Data for Name: users; Type: TABLE DATA; Schema: public; Owner: postgres
--
COPY public.users (user_id, person_id, email, password, role, location_id) FROM stdin;
1 4 store1@example.com $2b$10$YFogi0fPHcFT1iM/IMzE5ePCbHIKEkkwnjZhkKycUeQn6ivDt73XS Store Manager \N
3 11 store3@example.com $2b$10$aCzTVMWeLeZd1nknHMuVTe.jB5bpR2TewJC84/4vn7eg5Re5GTNQa Store Manager \N
4 9 warehouse1@example.com $2b$10$cwiQEcv7yngU9oiUgEzCPersfMaWUwqpDQvMxerDOiLgw6SXm1zT2 Warehouse Manager \N
5 12 warehouse2@example.com $2b$10$9TbMLjz6seUrR7uY.wnthen3pK8Iu272lznYUzNRhrueOEWRVQfJu Warehouse Manager \N
6 13 sales@example.com $2b$10$BW76tOwtn4kiuNC7S4/XpeGn8RJMmscIE2OlVmjXr6C3eaH.Iulhy Sales Manager \N
7 14 hr@example.com $2b$10$2t8yE0Q.vLVGr91L1QK7Aut5rapNE6iIZcUfi/l/XH1BHau9979C. HR Manager \N
8 15 finance@example.com $2b$10$JrDox9vWSXlIiH6vI4HvMuJyQhCqJcbg/NmByHCB8yaY4vLP3Occy Finance Manager \N
9 16 procurement@example.com $2b$10$Zv.kP.kipkm9aFAxYOBbMOwa4iRkLp3MVQHm.kIDfDA21DFY.NQBq Procurement Manager \N
2 5 store2@example.com $2b$10$BWQJHwNs4N88rmebcI0r4eD5oMguGhk1RnGew/RmKyM0QpMhzJ58e Store Manager \N
\.
--
-- Data for Name: warehouse; Type: TABLE DATA; Schema: public; Owner: postgres
--
COPY public.warehouse (warehouse_id, location_id, capacity) FROM stdin;
\.
--
-- Name: attendance_attendance_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--
SELECT pg_catalog.setval('public.attendance_attendance_id_seq', 8, true);
--
-- Name: budget_budget_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--
SELECT pg_catalog.setval('public.budget_budget_id_seq', 1, false);
--
-- Name: department_department_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--
SELECT pg_catalog.setval('public.department_department_id_seq', 5, true);
--
-- Name: employee_employee_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--
SELECT pg_catalog.setval('public.employee_employee_id_seq', 20, true);
--
-- Name: executive_executive_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--
SELECT pg_catalog.setval('public.executive_executive_id_seq', 2, true);
--
-- Name: expenses_expense_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--
SELECT pg_catalog.setval('public.expenses_expense_id_seq', 40, true);
--
-- Name: financialreport_report_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--
SELECT pg_catalog.setval('public.financialreport_report_id_seq', 1, false);
--
-- Name: inventory_inventory_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--
SELECT pg_catalog.setval('public.inventory_inventory_id_seq', 50, true);
--
-- Name: location_location_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--
SELECT pg_catalog.setval('public.location_location_id_seq', 10, true);
--
-- Name: manager_manager_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--
SELECT pg_catalog.setval('public.manager_manager_id_seq', 15, true);
--
-- Name: payroll_payroll_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--
SELECT pg_catalog.setval('public.payroll_payroll_id_seq', 30, true);
--
-- Name: person_person_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--
SELECT pg_catalog.setval('public.person_person_id_seq', 52, true);
--
-- Name: product_product_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--
SELECT pg_catalog.setval('public.product_product_id_seq', 10, true);
--
-- Name: purchaseorder_purchase_order_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--
SELECT pg_catalog.setval('public.purchaseorder_purchase_order_id_seq', 15, true);
--
-- Name: salesforecast_forecast_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--
SELECT pg_catalog.setval('public.salesforecast_forecast_id_seq', 1, false);
--
-- Name: salesrecord_sales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--
SELECT pg_catalog.setval('public.salesrecord_sales_id_seq', 40, true);
--
-- Name: stocktransfer_transfer_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--
SELECT pg_catalog.setval('public.stocktransfer_transfer_id_seq', 1, true);
--
-- Name: store_store_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--
SELECT pg_catalog.setval('public.store_store_id_seq', 3, true);
--
-- Name: supplier_supplier_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--
SELECT pg_catalog.setval('public.supplier_supplier_id_seq', 6, true);
--
-- Name: users_user_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--
SELECT pg_catalog.setval('public.users_user_id_seq', 9, true);
--
-- Name: warehouse_warehouse_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--
SELECT pg_catalog.setval('public.warehouse_warehouse_id_seq', 1, false);
--
-- Name: attendance attendance_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.attendance
ADD CONSTRAINT attendance_pkey PRIMARY KEY (attendance_id);
--
-- Name: budget budget_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.budget
ADD CONSTRAINT budget_pkey PRIMARY KEY (budget_id);
--
-- Name: department department_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.department
ADD CONSTRAINT department_pkey PRIMARY KEY (department_id);
--
-- Name: employee employee_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.employee
ADD CONSTRAINT employee_pkey PRIMARY KEY (employee_id);
--
-- Name: executive executive_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.executive
ADD CONSTRAINT executive_pkey PRIMARY KEY (executive_id);
--
-- Name: expenses expenses_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.expenses
ADD CONSTRAINT expenses_pkey PRIMARY KEY (expense_id);
--
-- Name: financial_report financialreport_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.financial_report
ADD CONSTRAINT financialreport_pkey PRIMARY KEY (report_id);
--
-- Name: inventory inventory_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.inventory
ADD CONSTRAINT inventory_pkey PRIMARY KEY (inventory_id);
--
-- Name: location location_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.location
ADD CONSTRAINT location_pkey PRIMARY KEY (location_id);
--
-- Name: manager manager_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.manager
ADD CONSTRAINT manager_pkey PRIMARY KEY (manager_id);
--
-- Name: payroll payroll_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.payroll
ADD CONSTRAINT payroll_pkey PRIMARY KEY (payroll_id);
--
-- Name: person person_email_key; Type: CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.person
ADD CONSTRAINT person_email_key UNIQUE (email);
--
-- Name: person person_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.person
ADD CONSTRAINT person_pkey PRIMARY KEY (person_id);
--
-- Name: product product_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.product
ADD CONSTRAINT product_pkey PRIMARY KEY (product_id);
--
-- Name: purchase_order purchaseorder_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.purchase_order
ADD CONSTRAINT purchaseorder_pkey PRIMARY KEY (purchase_order_id);
--
-- Name: sales_forecast salesforecast_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.sales_forecast
ADD CONSTRAINT salesforecast_pkey PRIMARY KEY (forecast_id);
--
-- Name: sales_record salesrecord_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.sales_record
ADD CONSTRAINT salesrecord_pkey PRIMARY KEY (sales_id);
--
-- Name: stock_transfer stocktransfer_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.stock_transfer
ADD CONSTRAINT stocktransfer_pkey PRIMARY KEY (transfer_id);
--
-- Name: store store_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.store
ADD CONSTRAINT store_pkey PRIMARY KEY (store_id);
--
-- Name: supplier supplier_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.supplier
ADD CONSTRAINT supplier_pkey PRIMARY KEY (supplier_id);
--
-- Name: users users_email_key; Type: CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.users
ADD CONSTRAINT users_email_key UNIQUE (email);
--
-- Name: users users_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.users
ADD CONSTRAINT users_pkey PRIMARY KEY (user_id);
--
-- Name: warehouse warehouse_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.warehouse
ADD CONSTRAINT warehouse_pkey PRIMARY KEY (warehouse_id);
--
-- Name: purchase_order set_delivery_date; Type: TRIGGER; Schema: public; Owner: postgres
--
CREATE TRIGGER set_delivery_date BEFORE UPDATE ON public.purchase_order FOR EACH ROW WHEN (((old.order_status)::text IS DISTINCT FROM (new.order_status)::text)) EXECUTE FUNCTION public.update_delivery_date();
--
-- Name: sales_record trigger_decrease_stock; Type: TRIGGER; Schema: public; Owner: postgres
--
CREATE TRIGGER trigger_decrease_stock AFTER INSERT ON public.sales_record FOR EACH ROW EXECUTE FUNCTION public.decrease_stock_level();
--
-- Name: purchase_order trigger_update_inventory_on_purchase; Type: TRIGGER; Schema: public; Owner: postgres
--
CREATE TRIGGER trigger_update_inventory_on_purchase AFTER UPDATE ON public.purchase_order FOR EACH ROW WHEN (((old.order_status)::text IS DISTINCT FROM (new.order_status)::text)) EXECUTE FUNCTION public.update_inventory_on_purchase_order();
--
-- Name: sales_record trigger_update_inventory_on_sale; Type: TRIGGER; Schema: public; Owner: postgres
--
CREATE TRIGGER trigger_update_inventory_on_sale AFTER INSERT ON public.sales_record FOR EACH ROW EXECUTE FUNCTION public.update_inventory_on_sale();
--
-- Name: stock_transfer trigger_update_inventory_on_transfer; Type: TRIGGER; Schema: public; Owner: postgres
--
CREATE TRIGGER trigger_update_inventory_on_transfer AFTER INSERT ON public.stock_transfer FOR EACH ROW EXECUTE FUNCTION public.update_inventory_on_transfer();
--
-- Name: attendance attendance_person_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.attendance
ADD CONSTRAINT attendance_person_id_fkey FOREIGN KEY (person_id) REFERENCES public.person(person_id);
--
-- Name: budget budget_department_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.budget
ADD CONSTRAINT budget_department_id_fkey FOREIGN KEY (department_id) REFERENCES public.department(department_id) ON UPDATE CASCADE ON DELETE CASCADE;
--
-- Name: employee employee_person_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.employee
ADD CONSTRAINT employee_person_id_fkey FOREIGN KEY (person_id) REFERENCES public.person(person_id) ON UPDATE CASCADE ON DELETE CASCADE;
--
-- Name: executive executive_person_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.executive
ADD CONSTRAINT executive_person_id_fkey FOREIGN KEY (person_id) REFERENCES public.person(person_id) ON UPDATE CASCADE ON DELETE CASCADE;
--
-- Name: expenses expenses_budget_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.expenses
ADD CONSTRAINT expenses_budget_id_fkey FOREIGN KEY (budget_id) REFERENCES public.budget(budget_id) ON UPDATE CASCADE ON DELETE CASCADE;
--
-- Name: expenses expenses_department_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.expenses
ADD CONSTRAINT expenses_department_id_fkey FOREIGN KEY (department_id) REFERENCES public.department(department_id) ON UPDATE CASCADE ON DELETE CASCADE;
--
-- Name: expenses expenses_person_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.expenses
ADD CONSTRAINT expenses_person_id_fkey FOREIGN KEY (person_id) REFERENCES public.person(person_id) ON UPDATE CASCADE ON DELETE CASCADE;
--
-- Name: financial_report financialreport_department_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.financial_report
ADD CONSTRAINT financialreport_department_id_fkey FOREIGN KEY (department_id) REFERENCES public.department(department_id) ON UPDATE CASCADE ON DELETE CASCADE;
--
-- Name: financial_report financialreport_store_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.financial_report
ADD CONSTRAINT financialreport_store_id_fkey FOREIGN KEY (store_id) REFERENCES public.store(store_id) ON UPDATE CASCADE ON DELETE CASCADE;
--
-- Name: department fk_department_manager; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.department
ADD CONSTRAINT fk_department_manager FOREIGN KEY (manager_id) REFERENCES public.manager(manager_id) ON UPDATE CASCADE ON DELETE SET NULL;
--
-- Name: location fk_location_manager; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.location
ADD CONSTRAINT fk_location_manager FOREIGN KEY (manager_id) REFERENCES public.manager(manager_id) ON UPDATE CASCADE ON DELETE SET NULL;
--
-- Name: inventory inventory_location_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.inventory
ADD CONSTRAINT inventory_location_id_fkey FOREIGN KEY (location_id) REFERENCES public.location(location_id) ON UPDATE CASCADE ON DELETE CASCADE;
--
-- Name: inventory inventory_product_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.inventory
ADD CONSTRAINT inventory_product_id_fkey FOREIGN KEY (product_id) REFERENCES public.product(product_id) ON UPDATE CASCADE ON DELETE CASCADE;
--
-- Name: manager manager_person_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.manager
ADD CONSTRAINT manager_person_id_fkey FOREIGN KEY (person_id) REFERENCES public.person(person_id) ON UPDATE CASCADE ON DELETE CASCADE;
--
-- Name: payroll payroll_budget_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.payroll
ADD CONSTRAINT payroll_budget_id_fkey FOREIGN KEY (budget_id) REFERENCES public.budget(budget_id) ON UPDATE CASCADE ON DELETE CASCADE;
--
-- Name: payroll payroll_department_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.payroll
ADD CONSTRAINT payroll_department_id_fkey FOREIGN KEY (department_id) REFERENCES public.department(department_id) ON UPDATE CASCADE ON DELETE SET NULL;
--
-- Name: payroll payroll_person_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.payroll
ADD CONSTRAINT payroll_person_id_fkey FOREIGN KEY (person_id) REFERENCES public.person(person_id) ON DELETE CASCADE;
--
-- Name: person person_department_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.person
ADD CONSTRAINT person_department_id_fkey FOREIGN KEY (department_id) REFERENCES public.department(department_id) ON UPDATE CASCADE ON DELETE SET NULL;
--
-- Name: person person_location_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.person
ADD CONSTRAINT person_location_id_fkey FOREIGN KEY (location_id) REFERENCES public.location(location_id) ON UPDATE CASCADE ON DELETE SET NULL;
--
-- Name: product product_supplier_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.product
ADD CONSTRAINT product_supplier_id_fkey FOREIGN KEY (supplier_id) REFERENCES public.supplier(supplier_id) ON UPDATE CASCADE ON DELETE SET NULL;
--
-- Name: purchase_order purchase_order_location_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.purchase_order
ADD CONSTRAINT purchase_order_location_id_fkey FOREIGN KEY (location_id) REFERENCES public.location(location_id) ON UPDATE CASCADE ON DELETE SET NULL;
--
-- Name: purchase_order purchaseorder_product_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.purchase_order
ADD CONSTRAINT purchaseorder_product_id_fkey FOREIGN KEY (product_id) REFERENCES public.product(product_id) ON UPDATE CASCADE ON DELETE CASCADE;
--
-- Name: purchase_order purchaseorder_supplier_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.purchase_order
ADD CONSTRAINT purchaseorder_supplier_id_fkey FOREIGN KEY (supplier_id) REFERENCES public.supplier(supplier_id) ON UPDATE CASCADE ON DELETE SET NULL;
--
-- Name: sales_forecast salesforecast_product_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.sales_forecast
ADD CONSTRAINT salesforecast_product_id_fkey FOREIGN KEY (product_id) REFERENCES public.product(product_id) ON UPDATE CASCADE ON DELETE CASCADE;
--
-- Name: sales_forecast salesforecast_store_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.sales_forecast
ADD CONSTRAINT salesforecast_store_id_fkey FOREIGN KEY (store_id) REFERENCES public.store(store_id) ON UPDATE CASCADE ON DELETE CASCADE;
--
-- Name: sales_record salesrecord_manager_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.sales_record
ADD CONSTRAINT salesrecord_manager_id_fkey FOREIGN KEY (manager_id) REFERENCES public.manager(manager_id) ON UPDATE CASCADE ON DELETE SET NULL;
--
-- Name: sales_record salesrecord_product_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.sales_record
ADD CONSTRAINT salesrecord_product_id_fkey FOREIGN KEY (product_id) REFERENCES public.product(product_id) ON UPDATE CASCADE ON DELETE CASCADE;
--
-- Name: sales_record salesrecord_store_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.sales_record
ADD CONSTRAINT salesrecord_store_id_fkey FOREIGN KEY (store_id) REFERENCES public.store(store_id) ON UPDATE CASCADE ON DELETE CASCADE;
--
-- Name: stock_transfer stocktransfer_destination_location_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.stock_transfer
ADD CONSTRAINT stocktransfer_destination_location_id_fkey FOREIGN KEY (destination_location_id) REFERENCES public.location(location_id) ON UPDATE CASCADE ON DELETE CASCADE;
--
-- Name: stock_transfer stocktransfer_product_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.stock_transfer
ADD CONSTRAINT stocktransfer_product_id_fkey FOREIGN KEY (product_id) REFERENCES public.product(product_id) ON UPDATE CASCADE ON DELETE CASCADE;
--
-- Name: stock_transfer stocktransfer_source_location_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.stock_transfer
ADD CONSTRAINT stocktransfer_source_location_id_fkey FOREIGN KEY (source_location_id) REFERENCES public.location(location_id) ON UPDATE CASCADE ON DELETE CASCADE;
--
-- Name: store store_location_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.store
ADD CONSTRAINT store_location_id_fkey FOREIGN KEY (location_id) REFERENCES public.location(location_id) ON UPDATE CASCADE ON DELETE CASCADE;
--
-- Name: users users_location_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.users
ADD CONSTRAINT users_location_id_fkey FOREIGN KEY (location_id) REFERENCES public.location(location_id) ON UPDATE CASCADE ON DELETE SET NULL;
--
-- Name: users users_person_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.users
ADD CONSTRAINT users_person_id_fkey FOREIGN KEY (person_id) REFERENCES public.person(person_id) ON UPDATE CASCADE ON DELETE CASCADE;
--
-- Name: warehouse warehouse_location_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--
ALTER TABLE ONLY public.warehouse
ADD CONSTRAINT warehouse_location_id_fkey FOREIGN KEY (location_id) REFERENCES public.location(location_id) ON UPDATE CASCADE ON DELETE CASCADE;
--
-- PostgreSQL database dump complete
--