Add all database tables with relations

This commit is contained in:
2024-09-04 17:06:41 +02:00
parent 7338bb216a
commit cfd1d29302
6 changed files with 114 additions and 2 deletions

View File

@@ -2,6 +2,10 @@ import { Sequelize } from "sequelize-typescript"
// Models // Models
import { Categories } from "./models/categories.model" import { Categories } from "./models/categories.model"
import { OrderedItem } from "./models/orderedItem.model"
import { Orders } from "./models/orders.model"
import { Products } from "./models/products.model"
import { Users } from "./models/users.model"
const dbName = "database" const dbName = "database"
const dbUser = "root" const dbUser = "root"
@@ -14,7 +18,7 @@ export const sequelize = new Sequelize({
username: dbUser, username: dbUser,
password: dbPassword, password: dbPassword,
storage: "database.sqlite", storage: "database.sqlite",
models: [ Categories ] models: [ Categories, OrderedItem, Orders, Products, Users ]
}) })
export function startDatabase() { export function startDatabase() {

View File

@@ -1,7 +1,14 @@
import { Table, Column, Model, PrimaryKey, AutoIncrement } from 'sequelize-typescript'; import { Table, Column, Model, BelongsTo, ForeignKey } from 'sequelize-typescript';
import { Products } from './products.model';
@Table @Table
export class Categories extends Model { export class Categories extends Model {
@Column @Column
name: string name: string
@ForeignKey(() => Products)
productId: number
@BelongsTo(() => Products)
product: Products
} }

View File

@@ -0,0 +1,27 @@
import { Table, Column, Model, BelongsTo, ForeignKey, HasMany } from 'sequelize-typescript';
import { Orders } from './orders.model';
import { Products } from './products.model';
@Table
export class OrderedItem extends Model {
@Column
@ForeignKey(() => Orders)
orderId: number
@Column
@ForeignKey(() => Products)
productId: number
@Column
quantity: number
@Column
totalPrice: number
// Relations
@BelongsTo(() => Orders)
order: Orders
@HasMany(() => Products)
products: Products[]
}

View File

@@ -0,0 +1,20 @@
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, 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
}

View File

@@ -0,0 +1,24 @@
import { Table, Column, Model, HasMany } from 'sequelize-typescript';
import { Orders } from './orders.model';
@Table
export class Users extends Model {
@Column
username: string
@Column
password: string
@Column
address: string
@Column
firstName: string
@Column
lastName: string
// Relations
@HasMany(() => Orders)
orders: Orders[]
}