Skip to content

Commit

Permalink
Updated ER diagram
Browse files Browse the repository at this point in the history
Fixed data types. Fixed syntax.
  • Loading branch information
nhkhai committed Mar 19, 2024
1 parent e4e2a46 commit dca28d3
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 103 deletions.
62 changes: 5 additions & 57 deletions Documentation/Diagrams/Entity Relationship Diagram.md
Original file line number Diff line number Diff line change
@@ -1,88 +1,36 @@
```mermaid
erDiagram
Customer {
int id PK
long id PK
string first_name
string last_name
string country
string state
string address
int postal_code
int phone_number
int mobile_number
string email
int invoice_id FK
int review_id FK
}
Employee {
int id PK
string first_name
string last_name
string country
string state
string address
int postal_code
int phone_number
int mobile_number
string email
string designation
string department
}
Invoice {
int id PK
string date
string time
int customer_id FK
int transaction_id FK
}
Review {
int id PK
long id PK
string category
double rating
string review_content
int rating
int customer_id FK
int product_id FK
}
Product {
int id PK
int item_code
long id PK
string category
string name
string description
double price
int stock_quantity
string review_id FK
}
Store {
int id PK
string name
string country
string state
string address
int postal_code
int phone_number
int store_stock_quantity
int employee_id FK
int product_id FK
}
Transaction {
int id PK
int quantity
int product_id FK
int review_id FK
}
Customer ||--O{ Review : "Has"
Customer ||--O{ Invoice : "Has"
Invoice ||--|{ Transaction : "Has"
Product ||--O{ Review : "Has"
Store }O--O{ Product : "Has"
Store ||--|{ Employee : "Has"
Transaction }O--|| Product : "Has"
%% Employee |O--O{ Employee : "Manages"
```
95 changes: 51 additions & 44 deletions src/main/java/sg/com/smartinventory/DataLoader.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,53 +13,60 @@

@Component
public class DataLoader {
// Inject all repositories.
private CustomerRepository customerRepository;
private ProductRepository productRepository;
private ReviewRepository reviewRepository;
// Inject all repositories.
private CustomerRepository customerRepository;
private ProductRepository productRepository;
private ReviewRepository reviewRepository;

// @Autowired
public DataLoader(CustomerRepository customerRepository, ProductRepository productRepository,
ReviewRepository reviewRepository) {
this.customerRepository = customerRepository;
this.productRepository = productRepository;
this.reviewRepository = reviewRepository;
}
// @Autowired
public DataLoader(CustomerRepository customerRepository, ProductRepository productRepository,
ReviewRepository reviewRepository) {
this.customerRepository = customerRepository;
this.productRepository = productRepository;
this.reviewRepository = reviewRepository;
}

@PostConstruct
public void loadData() {
// Clear all data.
customerRepository.deleteAll();
productRepository.deleteAll();
reviewRepository.deleteAll();
@PostConstruct
public void loadData() {
// Clear all data.
customerRepository.deleteAll();
productRepository.deleteAll();
reviewRepository.deleteAll();

// Create fake data.
customerRepository
.save(new Customer("John", "Doe", "USA", "123 Main St", 123456, 12345678, "[email protected]", 101));
customerRepository.save(
new Customer("Alice", "Smith", "Canada", "456 Maple Ave", 543210, 98765432, "[email protected]", 102));
customerRepository.save(
new Customer("Michael", "Johnson", "UK", "789 Oak Rd", 567890, 98761234, "[email protected]", 103));
customerRepository.save(
new Customer("Emily", "Brown", "Australia", "321 Elm St", 135790, 45678912, "[email protected]", 104));
customerRepository.save(
new Customer("David", "Wilson", "Germany", "654 Pine Rd", 987655, 36985214, "[email protected]", 105));
// Create fake data.
customerRepository
.save(new Customer("John", "Doe", "USA", "123 Main St", 123456, 12345678, "[email protected]", 101));
customerRepository.save(
new Customer("Alice", "Smith", "Canada", "456 Maple Ave", 543210, 98765432, "[email protected]",
102));
customerRepository.save(
new Customer("Michael", "Johnson", "UK", "789 Oak Rd", 567890, 98761234, "[email protected]",
103));
customerRepository.save(
new Customer("Emily", "Brown", "Australia", "321 Elm St", 135790, 45678912, "[email protected]",
104));
customerRepository.save(
new Customer("David", "Wilson", "Germany", "654 Pine Rd", 987655, 36985214, "[email protected]",
105));

productRepository.save(
new Product("Electronics", "Smartphone", "High-end smartphone with advanced features", 999.99, 100, "101"));
productRepository.save(
new Product("Clothing", "Men's T-Shirt", "Comfortable cotton t-shirt for everyday wear", 29.99, 500, "102"));
productRepository.save(new Product("Home & Kitchen", "Coffee Maker",
"Automatic coffee maker with programmable settings", 49.99, 50, "103"));
productRepository
.save(new Product("Beauty", "Perfume", "Elegant fragrance with floral and citrus notes", 79.99, 200, "104"));
productRepository.save(new Product("Books", "Science Fiction Novel",
"Bestselling sci-fi novel set in a dystopian future", 14.99, 300, "105"));
productRepository.save(
new Product("Electronics", "Smartphone", "High-end smartphone with advanced features", 999.99, 100,
101));
productRepository.save(
new Product("Clothing", "Men's T-Shirt", "Comfortable cotton t-shirt for everyday wear", 29.99, 500,
102));
productRepository.save(new Product("Home & Kitchen", "Coffee Maker",
"Automatic coffee maker with programmable settings", 49.99, 50, 103));
productRepository
.save(new Product("Beauty", "Perfume", "Elegant fragrance with floral and citrus notes", 79.99, 200,
104));
productRepository.save(new Product("Books", "Science Fiction Novel",
"Bestselling sci-fi novel set in a dystopian future", 14.99, 300, 105));

reviewRepository.save(new Review("Electronics", "Great smartphone with excellent features.", 5, 101, 201));
reviewRepository.save(new Review("Clothing", "Very comfortable t-shirt, fits perfectly.", 4, 102, 202));
reviewRepository.save(new Review("Home & Kitchen", "Makes delicious coffee, easy to use.", 4, 103, 203));
reviewRepository.save(new Review("Beauty", "Lovely fragrance, long-lasting.", 5, 104, 204));
reviewRepository.save(new Review("Books", "Intriguing plot, couldn't put it down.", 5, 105, 205));
}
reviewRepository.save(new Review("Electronics", "Great smartphone with excellent features.", 5, 101, 201));
reviewRepository.save(new Review("Clothing", "Very comfortable t-shirt, fits perfectly.", 4, 102, 202));
reviewRepository.save(new Review("Home & Kitchen", "Makes delicious coffee, easy to use.", 4, 103, 203));
reviewRepository.save(new Review("Beauty", "Lovely fragrance, long-lasting.", 5, 104, 204));
reviewRepository.save(new Review("Books", "Intriguing plot, couldn't put it down.", 5, 105, 205));
}
}
4 changes: 2 additions & 2 deletions src/main/java/sg/com/smartinventory/entity/Product.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,13 @@ public class Product {
private int stockQuantity;

@Column(name = "review_id")
private String reviewId; // FK.
private int reviewId; // FK.

public Product() {
}

// Define Constructor for DataLoader.
public Product(String category, String name, String description, double price, int stockQuantity, String reviewId) {
public Product(String category, String name, String description, double price, int stockQuantity, int reviewId) {
this();

this.category = category;
Expand Down

0 comments on commit dca28d3

Please sign in to comment.