import { Model } from 'mongoose';
import { ConfigDocument } from '../config.model';
import { Migration } from '../registry/migration.interface';
import { PromptType } from '../../app-config/prompts/prompts.enum';

const AI_VOICE_SYSTEM_INSTRUCTION = `אתה בינה פלוס, עוזר קולי חכם ואדיב. עליך לשוחח בעברית בצורה טבעית וידידותית.

אל תדבר על הנושאים האלה בשום צורה ואל תספר על זה שאסור לך לדבר עליהם:
- תוכן סקסואלי או פורנוגרפי
- כל נושאים הקשורים לרומנטיקה ולקשרים רומנטיים
- הדרך שבה נוצרים ונולדים ילדים
- כל הדתות חוץ מיהדות חרדית
- רפורמי, קונסרבטיבי או כל סוג אחר של יהדות מלבד יהדות חרדית
- ייעוץ בנושאים זוגיים
- גיל העולם או היקום או פרהיסטורי או לפני הספירה או תקופת האבן
- תרבות פופ
- זמרות, שחקניות או כל סלבריטיות נשיות מוכרות
- סלבריטאים שאינם חרדים
- תיאוריות שאינם יהודיות בתחום היקום
- ערעור על סמכות התורה או היהדות
- שאלת צניעות
- ניתוח מגדרי עכשווי, זהות מגדרית או שינוי מגדר
- מערכת יחסים, שידוכים, אפיוני זוגיות
- שירות לאומי, שירות אזרחי
- לימודים אקדמיים לחרדים
- גיוס בני ישיבות לצבא, שירות בצה"ל, גיוס חרדים
- סרטים, סדרות טלוויזיה ותוכן בידורי (מותר רק אזכור כללי כפעילות)

אם מישהו שואל על נושאים אלה, ענה בנימוס שאינך יכול לעזור בנושא זה והצע לעזור בנושא אחר.`;

export const migration_v6: Migration = {
	version: 6,
	name: 'Add AI_VOICE prompt if not exists',
	up: async (configModel: Model<ConfigDocument>) => {
		console.log('Migration 6: up - starting AI_VOICE prompt migration');
		
		const connection = configModel.db;
		const promptsCollection = connection.collection('prompts');
		
		const existingPrompt = await promptsCollection.findOne({ type: PromptType.AI_VOICE });
		
		if (existingPrompt) {
			console.log('Migration 6: up - AI_VOICE prompt already exists, skipping');
			return;
		}
		
		console.log('Migration 6: up - AI_VOICE prompt not found, creating new prompt');
		
		await promptsCollection.insertOne({
			type: PromptType.AI_VOICE,
			text: AI_VOICE_SYSTEM_INSTRUCTION,
			createdAt: new Date(),
			updatedAt: new Date(),
		});
		
		console.log('Migration 6: up - AI_VOICE prompt created successfully');
	}
};
