Add all database tables with relations
This commit is contained in:
@@ -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() {
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
27
software/backend/models/orderedItem.model.ts
Normal file
27
software/backend/models/orderedItem.model.ts
Normal 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[]
|
||||||
|
}
|
||||||
20
software/backend/models/orders.model.ts
Normal file
20
software/backend/models/orders.model.ts
Normal 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
|
||||||
|
}
|
||||||
30
software/backend/models/products.model.ts
Normal file
30
software/backend/models/products.model.ts
Normal 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
|
||||||
|
}
|
||||||
24
software/backend/models/users.model.ts
Normal file
24
software/backend/models/users.model.ts
Normal 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[]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user