import { startScheduler, stopScheduler } from '$lib/server/scheduler';
import '$lib/server/queue/QueueProcessor'; // Trigger QueueProcessor auto-start
import type { ServerInit } from '@sveltejs/kit';

/**
 * Initialize server-wide functionality
 * Runs once when the server starts
 *
 * Environment variables:
 * - AUTH_SCHEDULER_ENABLED: Set to 'true' to enable periodic auth renewal
 * - AUTH_SCHEDULER_INTERVAL_MINUTES: Minutes between each renewal (default: 720)
 */
export const init: ServerInit = async () => {
	console.log('[Server Init] Starting SvelteKit server...');
	console.log('[Server Init] QueueProcessor auto-started via import');
	// The scheduler will renew the Instagram session by loading the existing auth.json
	// and refreshing it with Instagram (requires initial setup via gen-auth.js)
	await startScheduler();
};

/**
 * Listen for graceful shutdown
 * Clean up resources when the server is shutting down
 */
process.on('sveltekit:shutdown', async (reason) => {
	console.log(`[Server Shutdown] Shutdown triggered by: ${reason}`);

	// Stop the scheduler gracefully
	await stopScheduler();

	console.log('[Server Shutdown] Cleanup complete');
});
