import { Injectable } from '@nestjs/common';
import { InjectModel } from '@nestjs/mongoose';
import { Model } from 'mongoose';
import * as Schema from './schema/index'

@Injectable()
export class ModelService {
    constructor(

        @InjectModel(Schema.User.Users.name) public UserModel: Model<Schema.User.Users>,
        @InjectModel(Schema.Session.Sessions.name) public SessionModel: Model<Schema.Session.Sessions>,
        @InjectModel(Schema.Call.Calls.name) public CallModel: Model<Schema.Call.Calls>,
        @InjectModel(Schema.CallTranscript.CallTranscript.name) public CallTranscriptModel: Model<Schema.CallTranscript.CallTranscript>,
        @InjectModel(Schema.Workspace.Workspace.name) public WorkspaceModel: Model<Schema.Workspace.Workspace>,
        @InjectModel(Schema.UserWorkspace.UserWorkspaces.name) public UserWorkspaceModel: Model<Schema.UserWorkspace.UserWorkspaces>,
        @InjectModel(Schema.plan.Plan.name) public planModel: Model<Schema.plan.Plan>,
        @InjectModel(Schema.Subscription.Subscription.name) public subscriptionModel: Model<Schema.Subscription.Subscription>,
        @InjectModel(Schema.AllUserWorkspaces.AllUserWorkspaces.name) public AllUserWorkspaceModel: Model<Schema.AllUserWorkspaces.AllUserWorkspaces>,
        @InjectModel(Schema.ContactUs.ContactUss.name) public contactUsModel: Model<Schema.ContactUs.ContactUss>,
        @InjectModel(Schema.CallMessage.Message.name) public MessageModel: Model<Schema.CallMessage.Message>,
        @InjectModel(Schema.Agent.Agents.name) public AgentModel: Model<Schema.Agent.Agents>,
        @InjectModel(Schema.Document.Documents.name) public documentsModel: Model<Schema.Document.Documents>,
        @InjectModel(Schema.KnowledgeBase.KnowledgeBase.name) public knowledgeBaseModel: Model<Schema.KnowledgeBase.KnowledgeBase>,
        @InjectModel(Schema.DefaultAgents.DefaultAgents.name) public defaultAgentsModel: Model<Schema.DefaultAgents.DefaultAgents>,
        @InjectModel(Schema.WorkspaceKeys.WorkspacesKeys.name) public workspaceKeysModel: Model<Schema.WorkspaceKeys.WorkspacesKeys>,
        @InjectModel(Schema.Script.Script.name) public scriptModel: Model<Schema.Script.Script>,
        @InjectModel(Schema.LandingPageChat.landing_page_chat.name) public landingPageChatModel: Model<Schema.LandingPageChat.landing_page_chat>,
        @InjectModel(Schema.LandingPageChatHistory.landing_page_chat_history.name) public landingPageChatHistoryModel: Model<Schema.LandingPageChatHistory.landing_page_chat_history>,
        @InjectModel(Schema.WhiteLabel.whiteLabels.name) public WhiteLableModel: Model<Schema.WhiteLabel.whiteLabels>,
        @InjectModel(Schema.Payment.payment.name) public paymentModel: Model<Schema.Payment.payment>,
        @InjectModel(Schema.Content.Contents.name) public contentModel: Model<Schema.Content.Contents>,
        @InjectModel(Schema.DefaultCall.defaultCall.name) public defaultCallModel: Model<Schema.DefaultCall.defaultCall>,
        @InjectModel(Schema.SubscriptionPlan.SubscriptionPlan.name) public SubscriptionPlan: Model<Schema.SubscriptionPlan.SubscriptionPlan>,
        @InjectModel(Schema.TwilioConfig.TwilioConfig.name) public TwilioConfig: Model<Schema.TwilioConfig.TwilioConfig>,
        @InjectModel(Schema.VectorFAQ.VendorFAQ.name) public VendorFAQ: Model<Schema.VectorFAQ.VendorFAQ>,

    ) { }
}