first commit

This commit is contained in:
2026-07-16 20:48:43 -03:00
commit 5696cee264
1111 changed files with 322270 additions and 0 deletions
@@ -0,0 +1,143 @@
import { IPayload } from "../SysAdminPayload/SysAdminPayload.interface";
import { IWapServerDocument } from "./WapServer.Adapter.Mongoose";
export type FindWapServerParams = {
id?: string;
name?: string;
description?: string;
countBots?: number;
maxBots?: number;
active?: boolean;
countBotsFrom?: number;
countBotsTo?: number;
};
export type AssingAvailableServerParams = {
companyId: string;
sessionUser: string;
};
export type BotEventParams = AssingAvailableServerParams & {};
export type BotRunningStatus =
| "created"
| "running"
| "paused"
| "restarting"
| "removing"
| "exited"
| "dead";
export type BotEventError = {
error: string;
code: number;
};
export enum SERVER_STATE {
"RUNNING" = "running",
"NOT_WORKING" = "not_working",
"NOT_ASSIGNED" = "not_assigned",
}
export enum BOT_STATE {
"EXISTS" = "exists",
"NOT_EXISTS" = "not_exists",
}
export enum BOT_SESSION_STATUS {
"LOGED" = "ok",
"UNLOGED" = "fail",
}
export type BotCheckStatus = {
state: BOT_STATE;
status: BotRunningStatus;
serverState: SERVER_STATE;
};
export type BotCheckSession = {
session: BOT_SESSION_STATUS;
};
export type SendBotMessageParams = {
companyId: string;
number: string;
message: string;
sessionUser: string;
};
export enum VALIDATE_BOT_ENVENT_ERRORS {
"INVALID_USER" = "invalid_user",
"INVALID_ORG" = "invalid_org",
"NO_PERMISSION" = "no_permission",
"NO_BOT_ALLOWED" = "no_bot_allowed",
"NO_SUBSCRIPTION_ACTIVE" = "no_subscription_active",
"NO_SERVER_ASSIGNED" = "no_server_assigned",
}
export interface ValidateBotEventStatus {
status: boolean;
error: string;
serverUrl?: string;
code?: VALIDATE_BOT_ENVENT_ERRORS;
}
export interface BotView {
exists: boolean;
runningState: BotRunningStatus;
serverId?: string;
serverName?: string;
serverDescription?: string;
serverState?: SERVER_STATE;
botSession?: BOT_SESSION_STATUS;
automaticNotifications: boolean;
}
export interface IWapServer {
id?: string;
name?: string;
description?: string;
ipv4: string;
ipv6: string;
countBots: number;
maxBots: number;
active: boolean;
}
export type PaginateWapServerParams = FindWapServerParams & {
page: number;
limit: number;
};
export type PaginateWapServerResults = {
data: IWapServer[];
page: number;
pages: number;
};
export type SysAdminGetWapServerParams = PaginateWapServerParams & {
payload: IPayload;
};
export interface IWapServerAdapter {
find(data: FindWapServerParams): Promise<IWapServer[]>;
findOne(data: FindWapServerParams): Promise<IWapServerDocument | null>;
paginate(filters: PaginateWapServerParams): Promise<PaginateWapServerResults>;
}
export interface IWapServerManager {
servers: IWapServerAdapter;
findServers(): Promise<IWapServer[]>;
getAvailableServer(): Promise<IWapServer>;
assignAvailableServer(data: AssingAvailableServerParams): Promise<IWapServer>;
quitServer(data: AssingAvailableServerParams): Promise<void>;
createBot(data: BotEventParams): Promise<void>;
startBot(data: BotEventParams): Promise<void>;
stopBot(data: BotEventParams): Promise<void>;
deleteBot(data: BotEventParams): Promise<void>;
checkBot(data: BotEventParams): Promise<BotCheckStatus>;
checkSession(data: BotEventParams): Promise<BotCheckSession>;
botView(data: BotEventParams): Promise<BotView>;
getQr(data: BotEventParams): Promise<string>;
sendMessage(data: SendBotMessageParams): Promise<void>;
sysAdminGetWapServers(data: PaginateWapServerParams): Promise<PaginateWapServerResults>;
}