Fix db relations, add sample data, show categories in frontend menu

This commit is contained in:
2024-09-05 16:19:23 +02:00
parent 7ca15a66b3
commit 6464521b04
23 changed files with 502 additions and 129 deletions

View File

@@ -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[]
}

View File

@@ -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
}

View 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
}

View 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
}

View File

@@ -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[]
}

View File

@@ -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
}

View 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
}

View File

@@ -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
}