diff --git a/00-backend/datasource/database.sqlite b/00-backend/datasource/database.sqlite index 267538e..ca48475 100644 Binary files a/00-backend/datasource/database.sqlite and b/00-backend/datasource/database.sqlite differ diff --git a/00-backend/src/main/java/de/htwsaar/webshop/model/ArticleModel.java b/00-backend/src/main/java/de/htwsaar/webshop/model/ArticleModel.java index f32e269..57fb700 100644 --- a/00-backend/src/main/java/de/htwsaar/webshop/model/ArticleModel.java +++ b/00-backend/src/main/java/de/htwsaar/webshop/model/ArticleModel.java @@ -20,6 +20,7 @@ public class ArticleModel { private int price100; private int discount100; private int stock; + private int stockExpected; private String category; private double rating; } diff --git a/00-backend/src/main/java/de/htwsaar/webshop/repository/entities/Article.java b/00-backend/src/main/java/de/htwsaar/webshop/repository/entities/Article.java index b056edf..84c9c76 100644 --- a/00-backend/src/main/java/de/htwsaar/webshop/repository/entities/Article.java +++ b/00-backend/src/main/java/de/htwsaar/webshop/repository/entities/Article.java @@ -29,6 +29,10 @@ public class Article { @Column(name = "stock", nullable = false) private Integer stock; + @Min(0) + @Column(name = "stockExpected", nullable = false) + private Integer stockExpected; + @Column(name = "name", nullable = false) private String name; diff --git a/00-backend/src/main/java/de/htwsaar/webshop/service/impl/ArticleServiceImpl.java b/00-backend/src/main/java/de/htwsaar/webshop/service/impl/ArticleServiceImpl.java index d8fe19c..4bce015 100644 --- a/00-backend/src/main/java/de/htwsaar/webshop/service/impl/ArticleServiceImpl.java +++ b/00-backend/src/main/java/de/htwsaar/webshop/service/impl/ArticleServiceImpl.java @@ -90,6 +90,7 @@ public class ArticleServiceImpl implements ArticleService { article.getPrice100(), article.getDiscount100(), article.getStock(), + article.getStockExpected(), article.getCategory(), calculateAverageRating(article.getReviews()) ); diff --git a/00-backend/src/main/resources/db/initdb.sql b/00-backend/src/main/resources/db/initdb.sql index b3f66ba..371c95c 100644 --- a/00-backend/src/main/resources/db/initdb.sql +++ b/00-backend/src/main/resources/db/initdb.sql @@ -4,13 +4,16 @@ CREATE TABLE IF NOT EXISTS Articles id INTEGER PRIMARY KEY NOT NULL, uuid TEXT UNIQUE NOT NULL, -- UUID stock INTEGER NOT NULL DEFAULT 0, + stockExpected INTEGER NOT NULL DEFAULT 100, name TEXT NOT NULL, description TEXT NULL, --in html price100 INTEGER NOT NULL, -- in cents discount100 INTEGER NULL, -- in percent category TEXT NULL, - CONSTRAINT c_stock CHECK ( stock >= 0 ) + CONSTRAINT c_stock CHECK ( stock >= 0 ), + CONSTRAINT c_stockExpected CHECK ( stockExpected >= 0 ), --inactive in current version + CONSTRAINT c_discount100 CHECK ( discount100 IS NULL OR 0 <= discount100 AND discount100 <= 100 ) --inactive in current version ); -- article images @@ -43,16 +46,6 @@ CREATE TABLE IF NOT EXISTS Customers zip TEXT NOT NULL ); -CREATE TABLE IF NOT EXISTS Orders -( - id INTEGER PRIMARY KEY NOT NULL, - customer_id INTEGER NOT NULL, - time INTEGER NOT NULL, --unix millis or epoch, TBD - FOREIGN KEY (customer_id) REFERENCES Customers (id) - ON DELETE CASCADE - ON UPDATE CASCADE -); - CREATE TABLE IF NOT EXISTS Accounts ( id INTEGER PRIMARY KEY NOT NULL, @@ -66,6 +59,17 @@ CREATE TABLE IF NOT EXISTS Accounts ON UPDATE CASCADE ); +CREATE TABLE IF NOT EXISTS Orders +( + id INTEGER PRIMARY KEY NOT NULL, + customer_id INTEGER NOT NULL, + time INTEGER NOT NULL, --unix millis or epoch, TBD + status INTEGER NOT NULL, --enum, see java or JS + FOREIGN KEY (customer_id) REFERENCES Customers (id) + ON DELETE CASCADE + ON UPDATE CASCADE +); + CREATE TABLE IF NOT EXISTS OrderItems ( id INTEGER NOT NULL PRIMARY KEY,