mirror of
https://github.com/cheveguerra/whaticket-community.git
synced 2026-04-19 04:09:26 +00:00
feat: added user association to queues
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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[];
|
||||
}
|
||||
|
||||
@@ -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> => {
|
||||
|
||||
29
backend/src/models/UserQueue.ts
Normal file
29
backend/src/models/UserQueue.ts
Normal 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;
|
||||
Reference in New Issue
Block a user