import joi from 'joi'; import { messages } from './messages'; import type { ILastTicketCalledTodayByChannel, IRemainingTodayTickets } from '../modules/tickets/tickets/interfaces'; import type { IGetUserData } from '../modules/integration/googleSheets/interfaces'; import type { IDocumentTypeUserType } from '../modules/supply/documentType/interfaces'; import type { IScheduleType } from '../modules/supply/schedule/interface'; import type { IWarningType } from '../modules/supply/documentHeader/interfaces'; import type { IChat, IEmail, IEncomenda, IMultimedia, IMultimediaSummary, IPostgresBackup, IPrint, IProjectInfo, IProposta, IServiceLogs, IServiceStatus, IStock, ITask } from '../modules/view/adminPanel/interfaces'; import type * as ErrorLog from '../modules/view/errorLog/interfaces'; import type { File } from './entities/stock'; import type { ProjectInfo } from './entities/integration'; import type { IAttachment } from '../modules/supply/externalDocumentHeader/interface'; import type { Persona } from './entities/user'; import type { ITranslateRequest } from '../modules/stock/chat/interfaces'; export { messages }; type CreatedAt = 'created_at'; type UpdatedAt = 'updated_at'; export interface WithCreatedAt { created_at: Date; } export interface WithUpdatedAt { updated_at: Date; } export interface WithOriginId { origin_id: string; } export type WithTimestamps = WithCreatedAt & WithUpdatedAt; export type WithTimestampsOriginID = (WithCreatedAt & WithUpdatedAt) | WithOriginId; export type WithoutTimestamps = Omit; type CreatedBy = 'created_by'; type UpdatedBy = 'updated_by'; export interface WithCreatedBy { created_by?: string | null; } export interface WithUpdatedBy { updated_by?: string | null; } export type WithUserstamps = WithCreatedBy & WithUpdatedBy; export type WithoutUserstamps = Omit; export interface IUserToken { id: string; location_id: string; } export type IEntityWithUserToken = { [K in keyof T]: T[K] extends (...params: infer U) => any ? (...params: [...U, IUserToken]) => ReturnType : T[K]; }; export type WithStamps = WithTimestamps & WithUserstamps; export type WithStampsResponse = T & WithStamps; export type WithoutStamps = Omit; export interface IPaginationRequest { per_page?: number; current_page?: number; } export interface IPaginationResponse { per_page: number; current_page: number; total: number; data: T[]; } export interface IFindByIdRequest extends Record { id: string; } export interface IFindByIdNumberRequest { id: number; } export interface IFindMinifiedRequest { owner_id?: string; search_value?: string | null; } export interface IFindMinifiedResponse { id: string; name: string; group?: string; multimedia_id?: string; } export interface IFindByOwnerIdRequest { owner_id: string; } export interface IFindOptionalByOwnerIdRequest { owner_id?: string; } export interface IUpdateManyResponse { count: number; } export interface ILogGoogleApiRequest { type: string; method: string; info: string; error?: string; } export declare const IDataTypeEnum: { date: 'date'; datetime: 'datetime'; text: 'text'; decimal: 'decimal'; integer: 'integer'; select: 'select'; select_multi: 'select_multi'; select_custom: 'select_custom'; boolean: 'boolean'; url: 'url'; email: 'email'; tel: 'tel'; file: 'file'; password: 'password'; multiline: 'multiline'; json: 'json'; userstamp: 'userstamp'; }; export type IDatatype = (typeof IDataTypeEnum)[keyof typeof IDataTypeEnum]; export declare const dataTypes: string[]; export type IRouteRequest = Record, joi.AnySchema>; export type IRouteRequestWithStamps = Record; export type IRouteResponseWithStamp = Record, joi.AnySchema>; export type IRouteResponseWithoutStamps = Record, joi.AnySchema>; export type IRouteResponsePagination = Record, joi.AnySchema>; export declare const findMinifiedQuery: joi.ObjectSchema; export declare const findByOptionalOwnerIdQuery: joi.ObjectSchema; export declare const findByOwnerIdQueryKeys: IRouteRequest; export declare const findByOwnerIdQuery: joi.ObjectSchema; export declare const idParam: joi.ObjectSchema; export declare const idNumberParam: joi.ObjectSchema; export declare const findMinifiedReponse: joi.ArraySchema<{ id: unknown; name: unknown; multimedia_id: unknown; group: unknown; }[]>; export declare const joiValidateStamps: IRouteResponseWithoutStamps; export declare const IUserSendEmailDocumentTemplateEnum: { generic: 'generic'; provider_payment_order: 'provider_payment_order'; }; export type IUserSendEmailDocumentTemplate = (typeof IUserSendEmailDocumentTemplateEnum)[keyof typeof IUserSendEmailDocumentTemplateEnum]; export declare const IUserSendEmailDocumentTemplateTypes: string[]; export declare enum IBrokerTopic { tickets_change = "tickets_change", user_send_email_password = "user_send_email_password", grant_access = "grant_access", remove_access = "remove_access", google_sheet_set_permissions = "google_sheet_set_permissions", google_sheet_update = "google_sheet_update", google_sheet_import = "google_sheet_import", import_master_artigos = "import_master_artigos", user_send_email_document = "user_send_email_document", undo_provider_order_schedule_email = "undo_provider_order_schedule_email", provider_order_schedule_email = "provider_order_schedule_email", client_notice_schedule_email = "client_notice_schedule_email", retry_errored_emails = "retry_errored_emails", send_errored_emails_summary = "send_errored_emails_summary", warning_email = "warning_email", espera_devolver_catalogo_email = "espera_devolver_catalogo_email", verification_email = "verification_email", dispatch_chat_message = "dispatch_chat_message", persona_lang_change = "persona_lang_change", translate_chat_message = "translate_chat_message", perform_task = "perform_task", create_site_proposal = "create_site_proposal", push_notification = "push_notification", error_log = "error_log", kafka_log = "kafka_log", express_log = "express_log", cron_log = "cron_log", moloni_log = "moloni_log", server_service_log = "server_service_log", server_backup_log = "server_backup_log", server_docker_log = "server_docker_log", server_certificate_log = "server_certificate_log", server_filesystem_log = "server_filesystem_log", service_print_log = "service_print_log", service_project_info_log = "service_project_info_log", service_multimedia_log = "service_multimedia_log", service_multimedia_summary_log = "service_multimedia_summary_log", service_email_log = "service_email_log", service_chat_log = "service_chat_log", googlesheet_proposta_log = "googlesheet_proposta_log", googlesheet_task_log = "googlesheet_task_log", googlesheet_stock_log = "googlesheet_stock_log", googlesheet_encomenda_log = "googlesheet_encomenda_log", log_google_api_request = "log_google_api_request", send_espera_info_cliente_messages = "send_espera_info_cliente_messages", send_email_client_survey = "send_email_client_survey" } export type IBrokerTopicPayload = { [IBrokerTopic.google_sheet_import]: { google_sheet_import_id: string; google_sheet_id: string; original_document_header_id?: string; user_id: string; location_id: string; }; [IBrokerTopic.user_send_email_password]: { token: string; user: { name: string | null; account: string; email: string; }; }; [IBrokerTopic.user_send_email_document]: { template: IUserSendEmailDocumentTemplate; user_type: IDocumentTypeUserType; user: { name: string; email: string; }; owner_id: string; document_header_id: string; start_document_name: string; attachments: IAttachment[]; }; [IBrokerTopic.grant_access]: { email: string; }; [IBrokerTopic.remove_access]: { email: string; }; [IBrokerTopic.tickets_change]: { last_tickets_called_today_by_channel: ILastTicketCalledTodayByChannel[]; remaining_today_tickets_to_call: IRemainingTodayTickets[]; }; [IBrokerTopic.google_sheet_set_permissions]: { file_id: string; email: string; }; [IBrokerTopic.google_sheet_update]: { spreadsheetId: string; document_name: string; client_data?: IGetUserData; }; [IBrokerTopic.provider_order_schedule_email]: { provider_id: string; ef_dh_id: string; ef_pdf_link: string; pf_number: string; provider_name: string; provider_email: string; attachments: Pick[]; }; [IBrokerTopic.undo_provider_order_schedule_email]: { provider_id: string; ef_dh_id: string; ef_pdf_link: string; pf_number: string; provider_name: string; provider_email: string; }; [IBrokerTopic.client_notice_schedule_email]: { client_id: string; pc_dh_id: string; chat_id: string; pc_number: string; client_name: string; client_email: string; }; [IBrokerTopic.perform_task]: { task_name: IScheduleType; user_token: IUserToken; }; [IBrokerTopic.warning_email]: { email: string; name: string; warning: IWarningType; document_header_id: string; document_number: number; document_lines: { designation: string; quantity: string; state: string; }[]; }; [IBrokerTopic.espera_devolver_catalogo_email]: { owner_id: string; document_header_id: string; chat_id: string; email: string; name: string | null; subject: string; }; [IBrokerTopic.retry_errored_emails]: Record; [IBrokerTopic.send_errored_emails_summary]: { warningErrors: string[]; }; [IBrokerTopic.dispatch_chat_message]: { to: [Pick]; reply_url: string; owner_id: string; document_header_id: string | null; document_name: string; chat_id: string; email_subject?: string; created_by: string; }; [IBrokerTopic.translate_chat_message]: ITranslateRequest; [IBrokerTopic.create_site_proposal]: ProjectInfo; [IBrokerTopic.verification_email]: { email: string; token: string; }; [IBrokerTopic.push_notification]: { counts: Record; timestamp: string; }; [IBrokerTopic.import_master_artigos]: {}; [IBrokerTopic.kafka_log]: { id: string; topic: string; payload: unknown; error?: unknown; output?: unknown; done: boolean; }; [IBrokerTopic.error_log]: ErrorLog.ICreateRequest; [IBrokerTopic.express_log]: { id: string; service: string; method: string; url: string; user: unknown; headers: unknown; params: unknown; query: unknown; body: unknown; status_code?: number; error?: unknown; response_size?: number; response_time?: number; }; [IBrokerTopic.cron_log]: { id: string; task: string; error?: unknown; output?: unknown; done: boolean; }; [IBrokerTopic.moloni_log]: { request_method: string; request_url: string; request_headers: unknown; request_params: unknown; request_body: unknown; response_body: unknown; }; [IBrokerTopic.server_service_log]: IServiceStatus; [IBrokerTopic.server_backup_log]: IPostgresBackup; [IBrokerTopic.server_docker_log]: IServiceLogs; [IBrokerTopic.server_certificate_log]: string; [IBrokerTopic.server_filesystem_log]: string; [IBrokerTopic.service_print_log]: IPrint; [IBrokerTopic.service_project_info_log]: IProjectInfo; [IBrokerTopic.service_multimedia_log]: IMultimedia; [IBrokerTopic.service_multimedia_summary_log]: IMultimediaSummary; [IBrokerTopic.service_email_log]: IEmail; [IBrokerTopic.service_chat_log]: IChat; [IBrokerTopic.googlesheet_proposta_log]: IProposta & { id: string; }; [IBrokerTopic.googlesheet_task_log]: ITask; [IBrokerTopic.googlesheet_stock_log]: IStock; [IBrokerTopic.googlesheet_encomenda_log]: IEncomenda; [IBrokerTopic.log_google_api_request]: ILogGoogleApiRequest; [IBrokerTopic.send_espera_info_cliente_messages]: { owner_id: string; document_header_id: string; chat_id: string; email: string; name: string | null; subject: string; documents_text: string; username: string; }; [IBrokerTopic.send_email_client_survey]: { persona_id: string; document_header_id: string; document_number: number; persona_name: string; persona_email: string; }; [IBrokerTopic.persona_lang_change]: { chat_document_header_id: string; language_id: string; }; }; export interface IBrokerMessage { topic: T; payload: IBrokerTopicPayload[T]; } export type RequireOnlyOne = Pick> & { [K in Keys]-?: Required> & Partial, undefined>>; }[Keys]; export type RequireAtLeastOne = Pick> & { [K in Keys]-?: Required> & Partial>>; }[Keys]; type Impossible = { [P in K]: never; }; export type NoExtraProperties = U & Impossible>; export type ExactPromise = Promise>;