import { writeFileSync } from 'fs'
import { OpenAI } from 'openai'

const openai = new OpenAI({
	apiKey: process.env.OPENAI_API_KEY,
})

async function main() {
	const commitMessages = process.argv[2]

	if (!commitMessages) {
		console.error('❌ Missing commit messages')
		process.exit(1)
	}

	const response = await openai.chat.completions.create({
		model: 'gpt-5',
		messages: [
			{
				role: 'system',
				content:
					'You are a React Native developer named Violet that is writing concise and friendly mobile app release notes from commit messages.',
			},
			{
				role: 'system',
				content:
					'You are writing release notes for a mobile app called Jellify. The app is a music player that allows you to play music from your Jellyfin media server and stream music from the internet.',
			},
			{
				role: 'system',
				content:
					'Release notes should be concise and helpful to any user of the app - regardless of their technical knowledge. Highlight things that an average user would care about.',
			},
			{
				role: 'system',
				content:
					'Release notes should be written in a way that is easy to understand and follow, and engaging and entertaining to read.',
			},
			{
				role: 'system',
				content:
					'Do not include emojis in the release notes. Do not include emojis at all.',
			},
			{
				role: 'user',
				content: `Write a release summary based on these commit messages:\n${commitMessages}. I'm a user of the app and I want to know what will be different in the app after I update.`,
			},
		],
	})

	const releaseNotes = response.choices[0].message.content.trim()
	writeFileSync('release_notes.txt', releaseNotes, 'utf8')
	console.log('✅ Release notes written to release_notes.txt')
}

main()
