//import { DyNTS_SingletonService } from '../../../_services/base/singleton.service'; //import { DyFM_Error, DyFM_Log, DyFM_DBFilter } from '@futdevpro/fsm-dynamo'; //import { DyFM_Msg_Message, DyFM_Msg_Conversation } from '@futdevpro/fsm-dynamo/messaging'; //import { DyNTS_global_settings } from '../../../_collections/global-settings.const'; //import { DyNTS_Msg_Message_DataService } from './msg-message.data-service'; //import { DyNTS_Msg_Conversation_DataService } from './msg-conversation.data-service'; //import { DyNTS_Msg_Events_Service } from './msg-events.service'; //import { DyNTS_Msg_Util } from '../_collections/msg.util'; //import { DyNTS_Bot_MessageWrapper } from '../../bot/_models/bot-message.interface'; // ///** // * Messaging Integration Control Service // * Handles integration between messaging system and bot/assistant modules // */ //export class DyNTS_Msg_Integration_ControlService extends DyNTS_SingletonService { // // static getInstance(): DyNTS_Msg_Integration_ControlService { // return DyNTS_Msg_Integration_ControlService.getSingletonInstance(); // } // // private eventsService = DyNTS_Msg_Events_Service.getInstance(); // // /** // * Sync bot message to messaging system // * Called from bot IO when message is received // */ // async syncBotMessage( // botMessage: DyNTS_Bot_MessageWrapper, // conversationId: string, // issuer: string // ): Promise { // try { // if (!DyNTS_global_settings.messaging_settings?.integration?.syncBotMessages) { // throw new Error('Bot message sync is disabled'); // } // // // Convert bot message to messaging format // const msgMessage = DyNTS_Msg_Util.botMessageToMsgMessage( // botMessage, // conversationId, // issuer // ); // // // Save to database // const messageService = new DyNTS_Msg_Message_DataService({ // message: msgMessage, // issuer, // }); // // await messageService.saveData(messageService.data, false, false); // // // Update conversation last message // const conversationService = new DyNTS_Msg_Conversation_DataService({ // issuer, // }); // // await conversationService.updateLastMessage( // conversationId, // messageService.data._id!, // msgMessage.content.substring(0, 100) // ); // // // Emit real-time event // this.eventsService.emitMessageSent(messageService.data, conversationId); // // return messageService.data; // } catch (error) { // DyFM_Log.error('Failed to sync bot message', error); // throw new DyFM_Error({ // ...this.getDefaultErrorSettings('syncBotMessage', error, issuer), // errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-MSG-SBM`, // userMessage: 'Failed to sync bot message to messaging system.', // }); // } // } // // /** // * Sync assistant response to messaging system // * Called from assistant IO when AI responds // */ // async syncAssistantMessage( // content: string, // conversationId: string, // aiProvider: string, // aiModel: string, // senderId: string, // issuer: string // ): Promise { // try { // if (!DyNTS_global_settings.messaging_settings?.integration?.syncAssistantMessages) { // throw new Error('Assistant message sync is disabled'); // } // // // Create AI message // const msgMessage = DyNTS_Msg_Util.createAIMessage( // conversationId, // content, // aiProvider, // aiModel, // senderId, // issuer // ); // // // Save to database // const messageService = new DyNTS_Msg_Message_DataService({ // message: msgMessage, // issuer, // }); // // await messageService.saveData(messageService.data, false, false); // // // Update conversation last message // const conversationService = new DyNTS_Msg_Conversation_DataService({ // issuer, // }); // // await conversationService.updateLastMessage( // conversationId, // messageService.data._id!, // content.substring(0, 100) // ); // // // Emit real-time event // this.eventsService.emitMessageSent(messageService.data, conversationId); // // return messageService.data; // } catch (error) { // DyFM_Log.error('Failed to sync assistant message', error); // throw new DyFM_Error({ // ...this.getDefaultErrorSettings('syncAssistantMessage', error, issuer), // errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-MSG-SAM`, // userMessage: 'Failed to sync assistant message to messaging system.', // }); // } // } // // /** // * Find or create conversation for bot channel // */ // async findOrCreateBotConversation( // channelId: string, // platformSource: string, // issuer: string // ): Promise { // try { // const conversationService = new DyNTS_Msg_Conversation_DataService({ // issuer, // }); // // // Try to find existing conversation // const existingConversation = await conversationService.dataDBService.findOne({ // platformChannelId: channelId, // platformSource, // __deleted: { $exists: false }, // } as DyFM_DBFilter); // // if (existingConversation) { // conversationService.data = existingConversation; // } // // // Create new if not found // if (!conversationService.data._id) { // conversationService.data.platformChannelId = channelId; // conversationService.data.platformSource = platformSource; // conversationService.data.participants = []; // // await conversationService.saveData(conversationService.data, false, false); // } // // return conversationService.data; // } catch (error) { // throw new DyFM_Error({ // ...this.getDefaultErrorSettings('findOrCreateBotConversation', error, issuer), // errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-MSG-FCBC`, // userMessage: 'Failed to find or create bot conversation.', // }); // } // } //} //