vat_wms/init_config_db.sql

223 lines
9.9 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

create table stock_handling
(
id int not null auto_increment primary key,
physical_item_id int not null,
field_updated varchar(64) not null,
value_prev text not null,
value_new text not null,
created_at DATETIME DEFAULT now(),
updated_at DATETIME DEFAULT NULL ON UPDATE now()
);
-- 1) Room: the toplevel container
CREATE TABLE stock_room (
room_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
room_symbol VARCHAR(15) NOT NULL,
room_name VARCHAR(32) DEFAULT NULL,
created_at DATETIME NOT NULL DEFAULT NOW(),
updated_at DATETIME NULL ON UPDATE NOW()
);
-- 2) Line: belongs to a room
CREATE TABLE stock_line (
line_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
line_symbol VARCHAR(5) NOT NULL,
line_name VARCHAR(32) DEFAULT NULL,
room_id INT NOT NULL,
created_at DATETIME NOT NULL DEFAULT NOW(),
updated_at DATETIME NULL ON UPDATE NOW(),
FOREIGN KEY (room_id) REFERENCES stock_room(room_id)
);
-- 3) Rack: belongs to a line
CREATE TABLE stock_rack (
rack_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
rack_symbol VARCHAR(5) NOT NULL,
rack_name VARCHAR(32) DEFAULT NULL,
line_id INT NOT NULL,
created_at DATETIME NOT NULL DEFAULT NOW(),
updated_at DATETIME NULL ON UPDATE NOW(),
FOREIGN KEY (line_id) REFERENCES stock_line(line_id)
);
-- 4) Shelf: belongs to a rack
CREATE TABLE stock_shelf (
shelf_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
shelf_symbol VARCHAR(5) NOT NULL,
shelf_name VARCHAR(32) DEFAULT NULL,
rack_id INT NOT NULL,
created_at DATETIME NOT NULL DEFAULT NOW(),
updated_at DATETIME NULL ON UPDATE NOW(),
FOREIGN KEY (rack_id) REFERENCES stock_rack(rack_id)
);
CREATE TABLE stock_position (
position_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
position_symbol VARCHAR(5) NOT NULL,
position_name VARCHAR(32) DEFAULT NULL,
shelf_id INT NOT NULL,
capacity int default 0,
temporary bool default false,
created_at DATETIME NOT NULL DEFAULT NOW(),
updated_at DATETIME NULL ON UPDATE NOW(),
FOREIGN KEY (shelf_id) REFERENCES stock_shelf(shelf_id)
);
CREATE TABLE stock_section (
section_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
section_symbol VARCHAR(5) NOT NULL,
section_name VARCHAR(32) DEFAULT NULL,
position_id INT NOT NULL,
capacity int not null,
retrievable bool default true,
created_at DATETIME NOT NULL DEFAULT NOW(),
updated_at DATETIME NULL ON UPDATE NOW(),
FOREIGN KEY (position_id) REFERENCES stock_position(position_id)
);
create table stock_entries2section(
entry_id int not null,
section_id int not null,
count int not null,
created_at DATETIME DEFAULT now(),
updated_at DATETIME DEFAULT NULL ON UPDATE now(),
PRIMARY KEY (entry_id, section_id)
);
create table stock_batch
(
id int primary key auto_increment,
user_id bigint(20) unsigned not null,
supplier_id int default null,
tracking_number varchar(256) default null,
arrival_date DATETIME DEFAULT null,
default_batch bool default false,
created_at DATETIME DEFAULT now(),
updated_at DATETIME DEFAULT NULL ON UPDATE now(),
FOREIGN KEY (user_id) REFERENCES users (id)
);
create table stock_entries
(
id int not null auto_increment primary key,
physical_item_id int not null,
supplier_id int unsigned not null,
count int default 0 not null, #needitovatelny ve formulari / jen odpis, inventura
original_count int default 0 not null,
original_count_invoice int default 0 not null,
price double null,
bought date default null,
description text null,
note text null,
country_of_origin_id int unsigned not null,
on_the_way bool not null default false,
stock_batch_id int default null,
created_at timestamp default current_timestamp() not null,
created_by tinyint unsigned default 1 not null,
updated_at timestamp default current_timestamp() not null on update current_timestamp(),
updated_by tinyint unsigned null,
FOREIGN KEY (stock_batch_id) REFERENCES stock_batch (id)
);
# barvy, apod, original bez loga, v krabicce s potiskem, repliky v krabici bez potisku
create table stock_attributes
(
id int primary key auto_increment,
name varchar(64) not null,
created_at DATETIME DEFAULT now(),
updated_at DATETIME DEFAULT NULL ON UPDATE now()
);
create table stock_attributes_translation
(
stock_attributes_id int not null,
language_id int not null,
translated_name varchar(128) not null,
created_at DATETIME DEFAULT now(),
updated_at DATETIME DEFAULT NULL ON UPDATE now(),
FOREIGN KEY (stock_attributes_id) REFERENCES stock_attributes (id),
PRIMARY KEY (stock_attributes_id, language_id)
);
create table stock_attribute_values
(
id int primary key auto_increment,
stock_attribute_id int not null,
name varchar(64) not null,
language_id int not null,
created_at DATETIME DEFAULT now(),
updated_at DATETIME DEFAULT NULL ON UPDATE now(),
FOREIGN KEY (stock_attribute_id) REFERENCES stock_attributes (id)
);
create table stock_entry2attributes
(
stock_attributes_id int not null,
stock_attribute_value_id int not null,
created_at DATETIME DEFAULT now(),
updated_at DATETIME DEFAULT NULL ON UPDATE now(),
FOREIGN KEY (stock_attributes_id) REFERENCES stock_attributes (id),
FOREIGN KEY (stock_attribute_value_id) REFERENCES stock_attribute_values (id),
PRIMARY KEY (stock_attributes_id, stock_attribute_value_id)
);
create table stock_batch_files
(
id int primary key auto_increment,
filename text not null,
file_data longblob not null, # object storage
file_type enum ('invoice', 'label', 'other'),
stock_batch_id int not null,
share_location text default null, # direct nahrat sem
user_id bigint(20) unsigned not null,
created_at DATETIME DEFAULT now(),
updated_at DATETIME DEFAULT NULL ON UPDATE now(),
FOREIGN KEY (stock_batch_id) REFERENCES stock_batch (id),
FOREIGN KEY (user_id) REFERENCES users (id)
);
create table stock_entries_status
(
id int primary key auto_increment,
name varchar(64) not null, #naskladneno, spocitano, presunuto na XY, poskozeno, chybi, nadbyva
description varchar(256) default null,
created_at DATETIME DEFAULT now(),
updated_at DATETIME DEFAULT NULL ON UPDATE now()
);
create table stock_entries_status_history
(
id int primary key auto_increment,
stock_entries_id int not null,
section_id int default null,
stock_entries_status_id int not null,
status_note text default null,
created_at DATETIME DEFAULT now(),
updated_at DATETIME DEFAULT NULL ON UPDATE now(),
FOREIGN KEY (stock_entries_id) REFERENCES stock_entries (id) on delete cascade,
FOREIGN KEY (section_id) REFERENCES stock_section (section_id),
FOREIGN KEY (stock_entries_status_id) REFERENCES stock_entries_status (id)
);
CREATE TABLE floor_layouts (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
layout_name VARCHAR(100) NOT NULL,
room_id int NOT NULL,
layout_bg_file LONGBLOB NULL, -- raw image data
data JSON NOT NULL, -- your rooms/racks array
user_id BIGINT UNSIGNED NOT NULL,
created_at TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY floor_layouts_layout_name_unique (layout_name)
);