import { Server as HttpServer } from 'node:http';
import { Server } from 'socket.io';
import { config } from './config.js';

let io: Server | undefined;

export function initSocket(server: HttpServer) {
  io = new Server(server, {
    cors: {
      origin: config.webOrigin.split(',').map(x => x.trim()),
      methods: ['GET', 'POST']
    }
  });
  io.on('connection', (socket) => {
    socket.emit('connected', { serverTime: new Date().toISOString() });
  });
  return io;
}

export function emitSync(eventType: string, payload: Record<string, unknown>) {
  io?.emit('sync.event', { eventType, payload, emittedAt: new Date().toISOString() });
}
