Fix db relations, add sample data, show categories in frontend menu
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
import { Table, Column, Model, HasMany } from 'sequelize-typescript';
|
||||
import { Orders } from './orders.model';
|
||||
import { Order } from './order.model';
|
||||
|
||||
@Table
|
||||
export class Users extends Model {
|
||||
export class Account extends Model {
|
||||
@Column
|
||||
username: string
|
||||
|
||||
@@ -19,6 +19,6 @@ export class Users extends Model {
|
||||
lastName: string
|
||||
|
||||
// Relations
|
||||
@HasMany(() => Orders)
|
||||
orders: Orders[]
|
||||
@HasMany(() => Order)
|
||||
orders: Order[]
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
import { Table, Column, Model, BelongsTo, ForeignKey } from 'sequelize-typescript';
|
||||
import { Products } from './products.model';
|
||||
|
||||
@Table
|
||||
export class Categories extends Model {
|
||||
@Column
|
||||
name: string
|
||||
|
||||
@ForeignKey(() => Products)
|
||||
productId: number
|
||||
|
||||
@BelongsTo(() => Products)
|
||||
product: Products
|
||||
}
|
||||
14
software/backend/models/category.model.ts
Normal file
14
software/backend/models/category.model.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
import { Table, Column, Model, BelongsTo, ForeignKey, HasMany } from 'sequelize-typescript';
|
||||
import { Product } from './product.model';
|
||||
|
||||
@Table
|
||||
export class Category extends Model {
|
||||
@Column
|
||||
name: string
|
||||
|
||||
@Column
|
||||
icon: string
|
||||
|
||||
@HasMany(() => Product)
|
||||
product: Product
|
||||
}
|
||||
21
software/backend/models/order.model.ts
Normal file
21
software/backend/models/order.model.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
import { Table, Column, Model, BelongsTo, ForeignKey, HasMany, BelongsToMany } from 'sequelize-typescript';
|
||||
import { Account } from './account.model';
|
||||
import { OrderedItem } from './orderedItem.model';
|
||||
import { Product } from './product.model';
|
||||
|
||||
@Table
|
||||
export class Order extends Model {
|
||||
@Column
|
||||
@ForeignKey(() => Account)
|
||||
accountId: number
|
||||
|
||||
@Column
|
||||
totalPrice: number
|
||||
|
||||
// Relations
|
||||
@BelongsTo(() => Account)
|
||||
user: Account
|
||||
|
||||
@BelongsToMany(() => Product, () => OrderedItem)
|
||||
orderedItems: OrderedItem
|
||||
}
|
||||
@@ -1,15 +1,15 @@
|
||||
import { Table, Column, Model, BelongsTo, ForeignKey, HasMany } from 'sequelize-typescript';
|
||||
import { Orders } from './orders.model';
|
||||
import { Products } from './products.model';
|
||||
import { Order } from './order.model';
|
||||
import { Product } from './product.model';
|
||||
|
||||
@Table
|
||||
export class OrderedItem extends Model {
|
||||
@Column
|
||||
@ForeignKey(() => Orders)
|
||||
@ForeignKey(() => Order)
|
||||
orderId: number
|
||||
|
||||
@Column
|
||||
@ForeignKey(() => Products)
|
||||
@ForeignKey(() => Product)
|
||||
productId: number
|
||||
|
||||
@Column
|
||||
@@ -17,11 +17,4 @@ export class OrderedItem extends Model {
|
||||
|
||||
@Column
|
||||
totalPrice: number
|
||||
|
||||
// Relations
|
||||
@BelongsTo(() => Orders)
|
||||
order: Orders
|
||||
|
||||
@HasMany(() => Products)
|
||||
products: Products[]
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
import { Table, Column, Model, BelongsTo, ForeignKey, HasMany } from 'sequelize-typescript';
|
||||
import { Users } from './users.model';
|
||||
import { OrderedItem } from './orderedItem.model';
|
||||
|
||||
@Table
|
||||
export class Orders extends Model {
|
||||
@Column
|
||||
@ForeignKey(() => Users)
|
||||
userNameId: number
|
||||
|
||||
@Column
|
||||
totalPrice: number
|
||||
|
||||
// Relations
|
||||
@BelongsTo(() => Users)
|
||||
user: Users
|
||||
|
||||
@HasMany(() => OrderedItem)
|
||||
orderedItems: OrderedItem
|
||||
}
|
||||
30
software/backend/models/product.model.ts
Normal file
30
software/backend/models/product.model.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
import { Table, Column, Model, ForeignKey, BelongsTo, BelongsToMany } from 'sequelize-typescript';
|
||||
import { Category } from './category.model';
|
||||
import { OrderedItem } from './orderedItem.model';
|
||||
import { Order } from './order.model';
|
||||
|
||||
@Table
|
||||
export class Product extends Model {
|
||||
@Column
|
||||
brand: string
|
||||
|
||||
@Column
|
||||
name: string
|
||||
|
||||
@Column
|
||||
@ForeignKey(() => Category)
|
||||
categoryId: number
|
||||
|
||||
@Column
|
||||
price: number
|
||||
|
||||
@Column
|
||||
discount: number
|
||||
|
||||
// Relations
|
||||
@BelongsTo(() => Category)
|
||||
category: Category
|
||||
|
||||
@BelongsToMany(() => Order,() => OrderedItem)
|
||||
orderedItem: OrderedItem
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
import { Table, Column, Model, ForeignKey, BelongsTo, HasOne } from 'sequelize-typescript';
|
||||
import { Categories } from './categories.model';
|
||||
import { OrderedItem } from './orderedItem.model';
|
||||
|
||||
@Table
|
||||
export class Products extends Model {
|
||||
@Column
|
||||
name: string
|
||||
|
||||
@Column
|
||||
@ForeignKey(() => Categories)
|
||||
categoryId: number
|
||||
|
||||
@Column
|
||||
@ForeignKey(() => OrderedItem)
|
||||
orderedItemId: number
|
||||
|
||||
@Column
|
||||
price: number
|
||||
|
||||
@Column
|
||||
discount: number
|
||||
|
||||
// Relations
|
||||
@BelongsTo(() => OrderedItem)
|
||||
orderedItem: OrderedItem
|
||||
|
||||
@HasOne(() => Categories)
|
||||
category: Categories
|
||||
}
|
||||
Reference in New Issue
Block a user