feat: added user association to queues

This commit is contained in:
canove
2021-01-08 20:18:11 -03:00
parent 9f99245dc4
commit 3c6d0660d1
15 changed files with 145 additions and 41 deletions

View File

@@ -10,6 +10,8 @@ import {
Unique,
BelongsToMany
} from "sequelize-typescript";
import User from "./User";
import UserQueue from "./UserQueue";
import Whatsapp from "./Whatsapp";
import WhatsappQueue from "./WhatsappQueue";
@@ -39,6 +41,9 @@ class Queue extends Model<Queue> {
@BelongsToMany(() => Whatsapp, () => WhatsappQueue)
whatsapps: Array<Whatsapp & { WhatsappQueue: WhatsappQueue }>;
@BelongsToMany(() => User, () => UserQueue)
users: Array<User & { UserQueue: UserQueue }>;
}
export default Queue;

View File

@@ -14,6 +14,7 @@ import {
import Contact from "./Contact";
import Message from "./Message";
import Queue from "./Queue";
import User from "./User";
import Whatsapp from "./Whatsapp";
@@ -64,6 +65,13 @@ class Ticket extends Model<Ticket> {
@BelongsTo(() => Whatsapp)
whatsapp: Whatsapp;
@ForeignKey(() => Queue)
@Column
queueId: number;
@BelongsTo(() => Queue)
queue: Queue;
@HasMany(() => Message)
messages: Message[];
}

View File

@@ -10,10 +10,13 @@ import {
PrimaryKey,
AutoIncrement,
Default,
HasMany
HasMany,
BelongsToMany
} from "sequelize-typescript";
import { hash, compare } from "bcryptjs";
import Ticket from "./Ticket";
import Queue from "./Queue";
import UserQueue from "./UserQueue";
@Table
class User extends Model<User> {
@@ -51,6 +54,9 @@ class User extends Model<User> {
@HasMany(() => Ticket)
tickets: Ticket[];
@BelongsToMany(() => Queue, () => UserQueue)
queues: Queue[];
@BeforeUpdate
@BeforeCreate
static hashPassword = async (instance: User): Promise<void> => {

View File

@@ -0,0 +1,29 @@
import {
Table,
Column,
CreatedAt,
UpdatedAt,
Model,
ForeignKey
} from "sequelize-typescript";
import Queue from "./Queue";
import User from "./User";
@Table
class UserQueue extends Model<UserQueue> {
@ForeignKey(() => User)
@Column
userId: number;
@ForeignKey(() => Queue)
@Column
queueId: number;
@CreatedAt
createdAt: Date;
@UpdatedAt
updatedAt: Date;
}
export default UserQueue;