-- Downloaded from: https://github.com/erlitx/sql_final/blob/f86f8e20939272b6a2da92409f522d399ac5eae3/backup.sql -- -- PostgreSQL database dump -- -- Dumped from database version 16.6 (Ubuntu 16.6-0ubuntu0.24.04.1) -- Dumped by pg_dump version 16.6 (Ubuntu 16.6-0ubuntu0.24.04.1) 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: calculate_total_sales(integer); Type: FUNCTION; Schema: public; Owner: postgres -- CREATE FUNCTION public.calculate_total_sales(product_id_input integer) RETURNS integer LANGUAGE plpgsql AS $$ DECLARE total_sales INT; BEGIN SELECT COALESCE(SUM(qty), 0) INTO total_sales FROM sale_order_line WHERE product_id = product_id_input; RETURN total_sales; END; $$; ALTER FUNCTION public.calculate_total_sales(product_id_input integer) OWNER TO postgres; -- -- Name: get_subordinates(integer); Type: FUNCTION; Schema: public; Owner: postgres -- CREATE FUNCTION public.get_subordinates(employee_id integer) RETURNS TABLE(subordinate_id integer, subordinate_name character varying) LANGUAGE plpgsql AS $$ BEGIN RETURN QUERY SELECT id, user_name FROM company_user WHERE report_to = employee_id; END; $$; ALTER FUNCTION public.get_subordinates(employee_id integer) OWNER TO postgres; -- -- Name: update_order_status(); Type: FUNCTION; Schema: public; Owner: postgres -- CREATE FUNCTION public.update_order_status() RETURNS trigger LANGUAGE plpgsql AS $$ BEGIN -- Проверяем, отгружены ли все позиции заказа IF ( SELECT COUNT(*) FROM sale_order_line sol WHERE sol.sale_order_id = ( SELECT sm.sale_order_id FROM stock_move sm WHERE sm.id = NEW.stock_move_id ) AND NOT EXISTS ( SELECT 1 FROM stock_move_line sml WHERE sml.stock_move_id = NEW.stock_move_id AND sml.product_id = sol.product_id AND sml.qty >= sol.qty ) ) = 0 THEN -- Если все позиции отгружены, обновляем статус заказа UPDATE sale_order SET status = 'Завершен' WHERE id = ( SELECT sm.sale_order_id FROM stock_move sm WHERE sm.id = NEW.stock_move_id ); END IF; RETURN NEW; END; $$; ALTER FUNCTION public.update_order_status() OWNER TO postgres; -- -- Name: validate_partner_data(); Type: FUNCTION; Schema: public; Owner: postgres -- CREATE FUNCTION public.validate_partner_data() RETURNS trigger LANGUAGE plpgsql AS $_$ BEGIN -- Проверяем формат email IF NEW.email IS NOT NULL AND NOT NEW.email ~* '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$' THEN RAISE EXCEPTION 'Некорректный email адрес: %', NEW.email; END IF; -- Проверяем формат телефона IF NEW.phone IS NOT NULL AND NOT NEW.phone ~ '^\+\d{1,3}-\d{3}-\d{3}-\d{4}$' THEN RAISE EXCEPTION 'Некорректный номер телефона: %', NEW.phone; END IF; RETURN NEW; END; $_$; ALTER FUNCTION public.validate_partner_data() OWNER TO postgres; SET default_tablespace = ''; SET default_table_access_method = heap; -- -- Name: company_user; Type: TABLE; Schema: public; Owner: postgres -- CREATE TABLE public.company_user ( id integer NOT NULL, user_name character varying(255) NOT NULL, report_to integer ); ALTER TABLE public.company_user OWNER TO postgres; -- -- Name: TABLE company_user; Type: COMMENT; Schema: public; Owner: postgres -- COMMENT ON TABLE public.company_user IS 'Сотрудники компании'; -- -- Name: company_user_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres -- CREATE SEQUENCE public.company_user_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.company_user_id_seq OWNER TO postgres; -- -- Name: company_user_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres -- ALTER SEQUENCE public.company_user_id_seq OWNED BY public.company_user.id; -- -- Name: location; Type: TABLE; Schema: public; Owner: postgres -- CREATE TABLE public.location ( id integer NOT NULL, name character varying(100) NOT NULL, type character varying(100), CONSTRAINT location_type_check CHECK (((type)::text = ANY ((ARRAY['Внутренни'::character varying, 'Покупатель'::character varying, 'Поставщик'::character varying])::text[]))) ); ALTER TABLE public.location OWNER TO postgres; -- -- Name: TABLE location; Type: COMMENT; Schema: public; Owner: postgres -- COMMENT ON TABLE public.location IS 'Склады, '; -- -- Name: location_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres -- CREATE SEQUENCE public.location_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.location_id_seq OWNER TO postgres; -- -- Name: location_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres -- ALTER SEQUENCE public.location_id_seq OWNED BY public.location.id; -- -- Name: partner; Type: TABLE; Schema: public; Owner: postgres -- CREATE TABLE public.partner ( id integer NOT NULL, partner_name character varying(255) NOT NULL, email character varying(255), phone character varying(50), type character varying(20), CONSTRAINT partner_type_check CHECK (((type)::text = ANY ((ARRAY['физлицо'::character varying, 'юрлицо'::character varying])::text[]))) ); ALTER TABLE public.partner OWNER TO postgres; -- -- Name: TABLE partner; Type: COMMENT; Schema: public; Owner: postgres -- COMMENT ON TABLE public.partner IS 'Партнеры компании - покупатели'; -- -- Name: partner_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres -- CREATE SEQUENCE public.partner_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.partner_id_seq OWNER TO postgres; -- -- Name: partner_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres -- ALTER SEQUENCE public.partner_id_seq OWNED BY public.partner.id; -- -- Name: product; Type: TABLE; Schema: public; Owner: postgres -- CREATE TABLE public.product ( id integer NOT NULL, article character varying(50) NOT NULL, product_name character varying(255) NOT NULL, category_id integer, created_date timestamp without time zone DEFAULT CURRENT_TIMESTAMP ); ALTER TABLE public.product OWNER TO postgres; -- -- Name: TABLE product; Type: COMMENT; Schema: public; Owner: postgres -- COMMENT ON TABLE public.product IS 'Содержит информацию о товарах'; -- -- Name: product_category; Type: TABLE; Schema: public; Owner: postgres -- CREATE TABLE public.product_category ( id integer NOT NULL, name character varying(255) NOT NULL ); ALTER TABLE public.product_category OWNER TO postgres; -- -- Name: TABLE product_category; Type: COMMENT; Schema: public; Owner: postgres -- COMMENT ON TABLE public.product_category IS 'Категории товаров'; -- -- Name: product_category_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres -- CREATE SEQUENCE public.product_category_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.product_category_id_seq OWNER TO postgres; -- -- Name: product_category_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres -- ALTER SEQUENCE public.product_category_id_seq OWNED BY public.product_category.id; -- -- Name: product_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres -- CREATE SEQUENCE public.product_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.product_id_seq OWNER TO postgres; -- -- Name: product_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres -- ALTER SEQUENCE public.product_id_seq OWNED BY public.product.id; -- -- Name: sale_channel; Type: TABLE; Schema: public; Owner: postgres -- CREATE TABLE public.sale_channel ( id integer NOT NULL, name character varying(255) NOT NULL ); ALTER TABLE public.sale_channel OWNER TO postgres; -- -- Name: TABLE sale_channel; Type: COMMENT; Schema: public; Owner: postgres -- COMMENT ON TABLE public.sale_channel IS 'Каналы продаж'; -- -- Name: sale_channel_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres -- CREATE SEQUENCE public.sale_channel_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.sale_channel_id_seq OWNER TO postgres; -- -- Name: sale_channel_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres -- ALTER SEQUENCE public.sale_channel_id_seq OWNED BY public.sale_channel.id; -- -- Name: sale_order; Type: TABLE; Schema: public; Owner: postgres -- CREATE TABLE public.sale_order ( id integer NOT NULL, partner_id integer, user_id integer, sale_channel_id integer, amount numeric(10,2) NOT NULL, status character varying(50), created_date timestamp without time zone DEFAULT CURRENT_TIMESTAMP ); ALTER TABLE public.sale_order OWNER TO postgres; -- -- Name: TABLE sale_order; Type: COMMENT; Schema: public; Owner: postgres -- COMMENT ON TABLE public.sale_order IS 'Заказы продаж'; -- -- Name: sale_order_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres -- CREATE SEQUENCE public.sale_order_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.sale_order_id_seq OWNER TO postgres; -- -- Name: sale_order_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres -- ALTER SEQUENCE public.sale_order_id_seq OWNED BY public.sale_order.id; -- -- Name: sale_order_line; Type: TABLE; Schema: public; Owner: postgres -- CREATE TABLE public.sale_order_line ( id integer NOT NULL, sale_order_id integer, product_id integer, qty integer NOT NULL, unit_price numeric(10,2) NOT NULL ); ALTER TABLE public.sale_order_line OWNER TO postgres; -- -- Name: TABLE sale_order_line; Type: COMMENT; Schema: public; Owner: postgres -- COMMENT ON TABLE public.sale_order_line IS 'Товары в заказе'; -- -- Name: sale_order_line_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres -- CREATE SEQUENCE public.sale_order_line_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.sale_order_line_id_seq OWNER TO postgres; -- -- Name: sale_order_line_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres -- ALTER SEQUENCE public.sale_order_line_id_seq OWNED BY public.sale_order_line.id; -- -- Name: stock_move; Type: TABLE; Schema: public; Owner: postgres -- CREATE TABLE public.stock_move ( id integer NOT NULL, sale_order_id integer, "timestamp" timestamp without time zone DEFAULT CURRENT_TIMESTAMP, user_id integer, from_location integer, to_location integer ); ALTER TABLE public.stock_move OWNER TO postgres; -- -- Name: TABLE stock_move; Type: COMMENT; Schema: public; Owner: postgres -- COMMENT ON TABLE public.stock_move IS 'Отгрузки товаров'; -- -- Name: stock_move_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres -- CREATE SEQUENCE public.stock_move_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.stock_move_id_seq OWNER TO postgres; -- -- Name: stock_move_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres -- ALTER SEQUENCE public.stock_move_id_seq OWNED BY public.stock_move.id; -- -- Name: stock_move_line; Type: TABLE; Schema: public; Owner: postgres -- CREATE TABLE public.stock_move_line ( id integer NOT NULL, stock_move_id integer, product_id integer, qty integer NOT NULL ); ALTER TABLE public.stock_move_line OWNER TO postgres; -- -- Name: TABLE stock_move_line; Type: COMMENT; Schema: public; Owner: postgres -- COMMENT ON TABLE public.stock_move_line IS 'Товарные позиции в перемещениях'; -- -- Name: stock_move_line_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres -- CREATE SEQUENCE public.stock_move_line_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.stock_move_line_id_seq OWNER TO postgres; -- -- Name: stock_move_line_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres -- ALTER SEQUENCE public.stock_move_line_id_seq OWNED BY public.stock_move_line.id; -- -- Name: company_user id; Type: DEFAULT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.company_user ALTER COLUMN id SET DEFAULT nextval('public.company_user_id_seq'::regclass); -- -- Name: location id; Type: DEFAULT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.location ALTER COLUMN id SET DEFAULT nextval('public.location_id_seq'::regclass); -- -- Name: partner id; Type: DEFAULT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.partner ALTER COLUMN id SET DEFAULT nextval('public.partner_id_seq'::regclass); -- -- Name: product id; Type: DEFAULT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.product ALTER COLUMN id SET DEFAULT nextval('public.product_id_seq'::regclass); -- -- Name: product_category id; Type: DEFAULT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.product_category ALTER COLUMN id SET DEFAULT nextval('public.product_category_id_seq'::regclass); -- -- Name: sale_channel id; Type: DEFAULT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.sale_channel ALTER COLUMN id SET DEFAULT nextval('public.sale_channel_id_seq'::regclass); -- -- Name: sale_order id; Type: DEFAULT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.sale_order ALTER COLUMN id SET DEFAULT nextval('public.sale_order_id_seq'::regclass); -- -- Name: sale_order_line id; Type: DEFAULT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.sale_order_line ALTER COLUMN id SET DEFAULT nextval('public.sale_order_line_id_seq'::regclass); -- -- Name: stock_move id; Type: DEFAULT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.stock_move ALTER COLUMN id SET DEFAULT nextval('public.stock_move_id_seq'::regclass); -- -- Name: stock_move_line id; Type: DEFAULT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.stock_move_line ALTER COLUMN id SET DEFAULT nextval('public.stock_move_line_id_seq'::regclass); -- -- Data for Name: company_user; Type: TABLE DATA; Schema: public; Owner: postgres -- COPY public.company_user (id, user_name, report_to) FROM stdin; 1 Иван Иванов \N 2 Пётр Петров 1 3 Александр Сидоров 1 4 Мария Смирнова 2 5 Екатерина Орлова 2 6 Дмитрий Кузнецов 3 7 Ольга Ковалева 3 8 Сергей Васильев 4 9 Наталья Фёдорова 4 10 Анна Семёнова 5 \. -- -- Data for Name: location; Type: TABLE DATA; Schema: public; Owner: postgres -- COPY public.location (id, name, type) FROM stdin; 1 Склад Москва Внутренни 2 Склад Спб Внутренни 3 Склад Покупателя А Покупатель 4 Склад Поставщика Б Поставщик \. -- -- Data for Name: partner; Type: TABLE DATA; Schema: public; Owner: postgres -- COPY public.partner (id, partner_name, email, phone, type) FROM stdin; 1 ООО Альфа info@alfa.com +7-900-123-4567 юрлицо 2 ИП Петров petrov@business.ru +7-901-234-5678 физлицо 3 ЗАО Бета contact@beta.org +7-902-345-6789 юрлицо 4 Иван Иванов ivanov@mail.ru +7-903-456-7890 физлицо 5 Мария Смирнова m.smirnova@mail.ru +7-904-567-8901 физлицо 6 ООО Гамма sales@gamma.com +7-905-678-9012 юрлицо 7 ИП Сидоров sidrov@shop.biz +7-906-789-0123 физлицо 8 ЗАО Дельта info@delta.com +7-907-890-1234 юрлицо 9 ООО Эпсилон contact@epsilon.ru +7-908-901-2345 юрлицо 10 ИП Орлова orlova@mail.com +7-909-012-3456 физлицо \. -- -- Data for Name: product; Type: TABLE DATA; Schema: public; Owner: postgres -- COPY public.product (id, article, product_name, category_id, created_date) FROM stdin; 1 A001 Смартфон X 1 2024-12-23 08:07:30.430187 2 A002 Ноутбук Y 1 2024-12-23 08:07:30.430187 3 B001 Холодильник Z 2 2024-12-23 08:07:30.430187 4 C001 Куртка зимняя 3 2024-12-23 08:07:30.430187 5 C002 Футболка летняя 3 2024-12-23 08:07:30.430187 6 D001 Кроссовки спортивные 4 2024-12-23 08:07:30.430187 7 E001 Шкаф деревянный 5 2024-12-23 08:07:30.430187 8 F001 Машинка для детей 6 2024-12-23 08:07:30.430187 9 G001 Велосипед горный 7 2024-12-23 08:07:30.430187 10 H001 Тетрадь А4 8 2024-12-23 08:07:30.430187 \. -- -- Data for Name: product_category; Type: TABLE DATA; Schema: public; Owner: postgres -- COPY public.product_category (id, name) FROM stdin; 1 Электроника 2 Бытовая техника 3 Одежда 4 Обувь 5 Мебель 6 Игрушки 7 Спорттовары 8 Канцелярия 9 Продукты питания 10 Косметика \. -- -- Data for Name: sale_channel; Type: TABLE DATA; Schema: public; Owner: postgres -- COPY public.sale_channel (id, name) FROM stdin; 1 онлайн-магазин 2 WB 3 OZON 4 оффлайн-магазин \. -- -- Data for Name: sale_order; Type: TABLE DATA; Schema: public; Owner: postgres -- COPY public.sale_order (id, partner_id, user_id, sale_channel_id, amount, status, created_date) FROM stdin; 1 1 2 1 50000.00 Открыт 2024-01-01 10:00:00 2 2 3 2 12000.00 Завершен 2024-01-02 11:30:00 3 3 4 3 34000.00 Ожидает оплаты 2024-01-03 12:45:00 4 4 5 4 2700.00 Отменен 2024-01-04 14:15:00 5 5 6 1 8000.00 Завершен 2024-01-05 09:00:00 6 6 7 2 9500.00 Открыт 2024-01-06 16:20:00 7 7 8 3 5600.00 Завершен 2024-01-07 13:40:00 8 8 9 4 12300.00 Открыт 2024-01-08 17:00:00 9 9 10 1 7800.00 Ожидает отгрузки 2024-01-09 10:30:00 10 10 1 2 43000.00 Завершен 2024-01-10 15:45:00 \. -- -- Data for Name: sale_order_line; Type: TABLE DATA; Schema: public; Owner: postgres -- COPY public.sale_order_line (id, sale_order_id, product_id, qty, unit_price) FROM stdin; 1 1 1 2 25000.00 2 2 2 1 12000.00 3 3 3 1 34000.00 4 4 4 1 2700.00 5 5 5 4 2000.00 6 6 6 2 4750.00 7 7 7 1 5600.00 8 8 8 2 6150.00 9 9 9 3 2600.00 10 10 10 10 4300.00 \. -- -- Data for Name: stock_move; Type: TABLE DATA; Schema: public; Owner: postgres -- COPY public.stock_move (id, sale_order_id, "timestamp", user_id, from_location, to_location) FROM stdin; 1 1 2024-01-01 15:00:00 2 4 1 2 2 2024-01-02 16:00:00 3 4 1 3 3 2024-01-03 17:00:00 4 4 1 4 4 2024-01-04 18:00:00 5 4 1 5 5 2024-01-05 19:00:00 6 4 1 6 6 2024-01-06 20:00:00 7 4 1 7 7 2024-01-07 21:00:00 8 4 1 8 8 2024-01-08 22:00:00 9 4 1 9 9 2024-01-09 23:00:00 10 4 1 10 10 2024-01-10 08:00:00 1 4 1 11 \N 2024-01-11 08:00:00 1 1 3 \. -- -- Data for Name: stock_move_line; Type: TABLE DATA; Schema: public; Owner: postgres -- COPY public.stock_move_line (id, stock_move_id, product_id, qty) FROM stdin; 1 1 1 2 2 2 2 1 3 3 3 1 4 4 4 1 5 5 5 4 6 6 6 2 7 7 7 1 8 8 8 2 9 9 9 3 10 10 10 10 11 11 10 3 \. -- -- Name: company_user_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres -- SELECT pg_catalog.setval('public.company_user_id_seq', 1, false); -- -- Name: location_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres -- SELECT pg_catalog.setval('public.location_id_seq', 4, true); -- -- Name: partner_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres -- SELECT pg_catalog.setval('public.partner_id_seq', 10, true); -- -- Name: product_category_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres -- SELECT pg_catalog.setval('public.product_category_id_seq', 10, true); -- -- Name: product_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres -- SELECT pg_catalog.setval('public.product_id_seq', 10, true); -- -- Name: sale_channel_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres -- SELECT pg_catalog.setval('public.sale_channel_id_seq', 4, true); -- -- Name: sale_order_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres -- SELECT pg_catalog.setval('public.sale_order_id_seq', 10, true); -- -- Name: sale_order_line_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres -- SELECT pg_catalog.setval('public.sale_order_line_id_seq', 10, true); -- -- Name: stock_move_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres -- SELECT pg_catalog.setval('public.stock_move_id_seq', 11, true); -- -- Name: stock_move_line_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres -- SELECT pg_catalog.setval('public.stock_move_line_id_seq', 11, true); -- -- Name: company_user company_user_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.company_user ADD CONSTRAINT company_user_pkey PRIMARY KEY (id); -- -- Name: location location_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.location ADD CONSTRAINT location_pkey PRIMARY KEY (id); -- -- Name: partner partner_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.partner ADD CONSTRAINT partner_pkey PRIMARY KEY (id); -- -- Name: product product_article_key; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.product ADD CONSTRAINT product_article_key UNIQUE (article); -- -- Name: product_category product_category_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.product_category ADD CONSTRAINT product_category_pkey PRIMARY KEY (id); -- -- Name: product product_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.product ADD CONSTRAINT product_pkey PRIMARY KEY (id); -- -- Name: sale_channel sale_channel_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.sale_channel ADD CONSTRAINT sale_channel_pkey PRIMARY KEY (id); -- -- Name: sale_order_line sale_order_line_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.sale_order_line ADD CONSTRAINT sale_order_line_pkey PRIMARY KEY (id); -- -- Name: sale_order sale_order_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.sale_order ADD CONSTRAINT sale_order_pkey PRIMARY KEY (id); -- -- Name: stock_move_line stock_move_line_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.stock_move_line ADD CONSTRAINT stock_move_line_pkey PRIMARY KEY (id); -- -- Name: stock_move stock_move_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.stock_move ADD CONSTRAINT stock_move_pkey PRIMARY KEY (id); -- -- Name: stock_move_line after_stock_move_line_insert; Type: TRIGGER; Schema: public; Owner: postgres -- CREATE TRIGGER after_stock_move_line_insert AFTER INSERT ON public.stock_move_line FOR EACH ROW EXECUTE FUNCTION public.update_order_status(); -- -- Name: partner trigger_validate_partner_data; Type: TRIGGER; Schema: public; Owner: postgres -- CREATE TRIGGER trigger_validate_partner_data BEFORE INSERT OR UPDATE ON public.partner FOR EACH ROW EXECUTE FUNCTION public.validate_partner_data(); -- -- Name: company_user company_user_report_to_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.company_user ADD CONSTRAINT company_user_report_to_fkey FOREIGN KEY (report_to) REFERENCES public.company_user(id); -- -- Name: product product_category_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.product ADD CONSTRAINT product_category_id_fkey FOREIGN KEY (category_id) REFERENCES public.product_category(id); -- -- Name: sale_order_line sale_order_line_product_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.sale_order_line ADD CONSTRAINT sale_order_line_product_id_fkey FOREIGN KEY (product_id) REFERENCES public.product(id); -- -- Name: sale_order_line sale_order_line_sale_order_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.sale_order_line ADD CONSTRAINT sale_order_line_sale_order_id_fkey FOREIGN KEY (sale_order_id) REFERENCES public.sale_order(id); -- -- Name: sale_order sale_order_partner_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.sale_order ADD CONSTRAINT sale_order_partner_id_fkey FOREIGN KEY (partner_id) REFERENCES public.partner(id); -- -- Name: sale_order sale_order_sale_channel_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.sale_order ADD CONSTRAINT sale_order_sale_channel_id_fkey FOREIGN KEY (sale_channel_id) REFERENCES public.sale_channel(id); -- -- Name: sale_order sale_order_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.sale_order ADD CONSTRAINT sale_order_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.company_user(id); -- -- Name: stock_move stock_move_from_location_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.stock_move ADD CONSTRAINT stock_move_from_location_fkey FOREIGN KEY (from_location) REFERENCES public.location(id); -- -- Name: stock_move_line stock_move_line_product_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.stock_move_line ADD CONSTRAINT stock_move_line_product_id_fkey FOREIGN KEY (product_id) REFERENCES public.product(id); -- -- Name: stock_move_line stock_move_line_stock_move_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.stock_move_line ADD CONSTRAINT stock_move_line_stock_move_id_fkey FOREIGN KEY (stock_move_id) REFERENCES public.stock_move(id); -- -- Name: stock_move stock_move_sale_order_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.stock_move ADD CONSTRAINT stock_move_sale_order_id_fkey FOREIGN KEY (sale_order_id) REFERENCES public.sale_order(id); -- -- Name: stock_move stock_move_to_location_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.stock_move ADD CONSTRAINT stock_move_to_location_fkey FOREIGN KEY (to_location) REFERENCES public.location(id); -- -- Name: stock_move stock_move_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.stock_move ADD CONSTRAINT stock_move_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.company_user(id); -- -- PostgreSQL database dump complete --