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

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

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

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

export const migration_v7: Migration = {
	version: 7,
	name: 'Add WHATSAPP_CHAT prompt',
	up: async (configModel: Model<ConfigDocument>) => {
		console.log('Migration 7: up - starting WHATSAPP_CHAT prompt migration');

		const connection = configModel.db;
		const promptsCollection = connection.collection('prompts');

		const existingPrompt = await promptsCollection.findOne({ type: PromptType.WHATSAPP_CHAT });

		if (existingPrompt) {
			console.log('Migration 7: up - WHATSAPP_CHAT prompt already exists, skipping');
			return;
		}

		console.log('Migration 7: up - Creating WHATSAPP_CHAT prompt');
		await promptsCollection.insertOne({
			type: PromptType.WHATSAPP_CHAT,
			text: WHATSAPP_CHAT_SYSTEM_PROMPT,
			createdAt: new Date(),
			updatedAt: new Date(),
		});
		console.log('Migration 7: up - WHATSAPP_CHAT prompt created successfully');
	}
};
