import './loadEnv';
import { createServer } from 'http';
import app from './app';
import { initSocket } from './socket';
import { processDueAccountDeletions } from './services/accountDeletion.service';

const PORT = parseInt(process.env.API_PORT || '4000', 10);

const httpServer = createServer(app);
initSocket(httpServer);

httpServer.listen(PORT, () => {
  console.log(`🚀 eHandyHire API running on http://localhost:${PORT}`);
  console.log(`📡 Socket.IO ready`);
  console.log(`🌍 Environment: ${process.env.NODE_ENV || 'development'}`);

  // Process scheduled account removals (grace period)
  const runDeletions = () => {
    void processDueAccountDeletions()
      .then((result) => {
        if (result.processed > 0) {
          console.log(
            `🧹 Processed ${result.processed}/${result.due} due account deletion(s)`
          );
        }
      })
      .catch((err) => console.error('Account deletion processor error:', err));
  };
  runDeletions();
  setInterval(runDeletions, 5 * 60 * 1000);
});
