From 01ae9124a749bd2041e4c19c1c924ea67d5ac534 Mon Sep 17 00:00:00 2001
From: Shrey Patel <118093331+shreyp2305@users.noreply.github.com>
Date: Fri, 20 Oct 2023 20:56:20 -0400
Subject: [PATCH] added phase one files

---
 main.py     | 28 ++++++++++++++++++
 phase 1.sql | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 112 insertions(+)
 create mode 100644 main.py
 create mode 100644 phase 1.sql

diff --git a/main.py b/main.py
new file mode 100644
index 0000000..09c65d1
--- /dev/null
+++ b/main.py
@@ -0,0 +1,28 @@
+import mysql.connector
+from mysql.connector import Error
+
+try:
+    connection = mysql.connector.connect(host='localhost',
+                                         database='inventory',
+                                         user='root',
+                                         password='ENTER PASSWORD')
+    if connection.is_connected():
+        db_Info = connection.get_server_info()
+        print("Connected to MySQL Server version ", db_Info)
+        cursor = connection.cursor()
+        cursor.execute("select database();")
+        record = cursor.fetchone()
+        print("You're connected to database: ", record)
+        cursor.execute('show tables;')
+        tables = cursor.fetchall()
+        print(tables)
+        for i in tables:
+            print(i)
+
+except Error as e:
+    print("Error while connecting to MySQL", e)
+finally:
+    if connection.is_connected():
+        cursor.close()
+        connection.close()
+        print("MySQL connection is closed")
\ No newline at end of file
diff --git a/phase 1.sql b/phase 1.sql
new file mode 100644
index 0000000..e974e8e
--- /dev/null
+++ b/phase 1.sql	
@@ -0,0 +1,84 @@
+DROP DATABASE IF EXISTS inventory;
+CREATE DATABASE IF NOT EXISTS inventory;
+
+CREATE TABLE IF NOT EXISTS USER (
+	pid INT AUTO_INCREMENT,
+    lname VARCHAR(64) NOT NULL,
+    fname VARCHAR(64) NOT NULL,
+    password VARCHAR(32) NOT NULL,
+    phoneNumber INT,
+    email VARCHAR(128) NOT NULL,
+    PRIMARY KEY (pid)
+);
+
+CREATE TABLE IF NOT EXISTS ORGANIZATION (
+    organizationId INT AUTO_INCREMENT,
+    name VARCHAR(256) NOT NULL,
+    email VARCHAR(128) NOT NULL,
+    description VARCHAR(1024),
+    ownerPid INT NOT NULL,
+    PRIMARY KEY (organizationId),
+    CONSTRAINT fk_user_organization FOREIGN KEY (ownerPid) REFERENCES USER (pid)
+);
+
+CREATE TABLE IF NOT EXISTS MANAGER (
+    userPid INT NOT NULL,
+    organizationId INT NOT NULL,
+    PRIMARY KEY (userPid, organizationId),
+    CONSTRAINT fk_user_manager FOREIGN KEY (userPid) REFERENCES USER (pid),
+    CONSTRAINT fk_organization_manager FOREIGN KEY (organizationId) REFERENCES ORGANIZATION (organizationId)
+);
+
+CREATE TABLE IF NOT EXISTS REQUEST (
+	requestId INT NOT NULL,
+    userPid INT NOT NULL,
+    organizationId INT NOT NULL,
+    status ENUM('PENDING', 'ACCEPTED', 'DECLINED') NOT NULL,
+    description VARCHAR(256),
+    type ENUM('JOIN', 'ITEM') NOT NULL,
+    PRIMARY KEY (requestId),
+    CONSTRAINT fk_user_request FOREIGN KEY (userPid) REFERENCES USER (pid),
+    CONSTRAINT fk_organization_request FOREIGN KEY (organizationId) REFERENCES ORGANIZATION (organizationId)
+);
+
+CREATE TABLE IF NOT EXISTS LOCATION (
+	locationId INT AUTO_INCREMENT,
+    location VARCHAR(256),
+    organizationId INT NOT NULL,
+    PRIMARY KEY (locationId),
+    CONSTRAINT fk_organization_location FOREIGN KEY (organizationId) REFERENCES ORGANIZATION (organizationId)
+);
+
+CREATE TABLE IF NOT EXISTS ITEM (
+    itemId INT AUTO_INCREMENT,
+    name VARCHAR(128) NOT NULL,
+    description VARCHAR(256),
+    ownerPid INT,
+    quantity INT NOT NULL,
+    category VARCHAR(128),
+    status ENUM('AVAILABLE', 'BORROWED', 'LISTED', 'SOLD') NOT NULL,
+    locationId INT NOT NULL,
+    organizationId INT NOT NULL,
+    PRIMARY KEY (itemId),
+    CONSTRAINT fk_location_item FOREIGN KEY (locationId) REFERENCES LOCATION (locationId),
+    CONSTRAINT fk_organiztion_item FOREIGN KEY (organizationId) REFERENCES ORGANIZATION (organizationId)
+);
+
+CREATE TABLE IF NOT EXISTS LISTING (
+    listingId INT AUTO_INCREMENT,
+    itemId INT NOT NULL,
+    price DECIMAL(6,2) NOT NULL,
+    status ENUM('AVAILABLE', 'SOLD') NOT NULL,
+    dateListed TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, 
+    PRIMARY KEY (listingId),
+    CONSTRAINT fk_item_listing FOREIGN KEY (itemId) REFERENCES ITEM (itemId)
+);
+
+CREATE TABLE IF NOT EXISTS FAVORITE (
+    userPid INT NOT NULL,
+    listingId INT NOT NULL,
+    PRIMARY KEY (userPid, listingId),
+    CONSTRAINT fk_user_favorite FOREIGN KEY (userPid) REFERENCES USER (pid),
+    CONSTRAINT fk_listing_favorite FOREIGN KEY (listingId) REFERENCES LISTING (listingId)
+);
+
-- 
GitLab