1+ -- V1_0_0__primary_tables.sql
2+ -- Creates the main tables for the database
3+
4+ -- ROLLBACK: DROP TABLE IF EXISTS name;
5+ CREATE TABLE account (
6+ id INT PRIMARY KEY AUTO_INCREMENT,
7+ first_name VARCHAR (128 ) NOT NULL ,
8+ last_name VARCHAR (128 ) NOT NULL ,
9+ email VARCHAR (255 ) UNIQUE NOT NULL ,
10+ phone VARCHAR (32 ) UNIQUE,
11+ password VARCHAR (255 ) NOT NULL ,
12+ date_creation DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
13+ );
14+
15+ CREATE TABLE role (
16+ id INT PRIMARY KEY AUTO_INCREMENT,
17+ name VARCHAR (64 ) NOT NULL
18+ );
19+
20+ CREATE TABLE payment (
21+ id INT PRIMARY KEY AUTO_INCREMENT,
22+ date DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
23+ );
24+
25+ CREATE TABLE payment_mode (
26+ id INT PRIMARY KEY AUTO_INCREMENT,
27+ name VARCHAR (64 ) NOT NULL UNIQUE
28+ );
29+
30+ CREATE TABLE payment_status (
31+ id INT PRIMARY KEY AUTO_INCREMENT,
32+ name VARCHAR (64 ) NOT NULL UNIQUE
33+ );
34+
35+ CREATE TABLE invoice (
36+ id INT PRIMARY KEY AUTO_INCREMENT,
37+ date DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
38+ total DECIMAL (12 , 2 ) NOT NULL
39+ );
40+
41+ CREATE TABLE invoice_status (
42+ id INT PRIMARY KEY AUTO_INCREMENT,
43+ name VARCHAR (64 ) NOT NULL UNIQUE
44+ );
45+
46+ CREATE TABLE invoice_line (
47+ id INT PRIMARY KEY AUTO_INCREMENT,
48+ unit_price DECIMAL (10 , 2 ) NOT NULL ,
49+ quantity INT NOT NULL DEFAULT 1
50+ );
51+
52+ CREATE TABLE product (
53+ id INT PRIMARY KEY AUTO_INCREMENT,
54+ name VARCHAR (128 ) NOT NULL ,
55+ description VARCHAR (255 ),
56+ price DECIMAL (10 , 2 ) NOT NULL
57+ );
58+
59+ CREATE TABLE supplier (
60+ id INT PRIMARY KEY AUTO_INCREMENT,
61+ name VARCHAR (128 ) NOT NULL ,
62+ email VARCHAR (255 ),
63+ phone VARCHAR (32 )
64+ );
65+
66+ CREATE TABLE product_category (
67+ id INT PRIMARY KEY AUTO_INCREMENT,
68+ name VARCHAR (128 ) NOT NULL UNIQUE
69+ );
70+
71+ CREATE TABLE stock (
72+ id INT PRIMARY KEY AUTO_INCREMENT,
73+ quantity_available INT NOT NULL DEFAULT 0 ,
74+ quantity_reserved INT NOT NULL DEFAULT 0 ,
75+ reorder_threshold INT NOT NULL DEFAULT 0 ,
76+ last_update DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
77+ );
78+
79+ CREATE TABLE menu (
80+ id INT PRIMARY KEY AUTO_INCREMENT,
81+ name VARCHAR (128 ) NOT NULL ,
82+ description VARCHAR (255 ),
83+ price_rate DECIMAL (6 , 4 ) NOT NULL DEFAULT 1 .0000
84+ );
0 commit comments