package fr.teamflash.fencerjudgeback.websocket

import org.springframework.messaging.handler.annotation.MessageMapping
import org.springframework.messaging.simp.SimpMessagingTemplate
import org.springframework.stereotype.Controller
import org.springframework.web.bind.annotation.RequestMapping

data class Data(val id: String, val value: Any)

@Controller
@RequestMapping("/ws")
class WebSocketController(private val messagingTemplate: SimpMessagingTemplate) {

    // Insérer une donnée dans le channel
    @MessageMapping("/insert")
    fun insertData(data: Data) {
        // Logique d'insertion
        messagingTemplate.convertAndSend("/topic/data", data)
    }

    // Modifier une donnée existente dans le channel
    @MessageMapping("/modify")
    fun modifyData(data: Data) {
        // Logique de modification
        messagingTemplate.convertAndSend("/topic/data", data)
    }

    // Supprimer une donnée existante dans le channel
    @MessageMapping("/delete")
    fun deleteData(id: String) {
        // Logique de suppression
        messagingTemplate.convertAndSend("/topic/data/delete", id)
    }

    // Vider le channel
    @MessageMapping("/clear")
    fun clearChannel() {
        // Logique pour vider le channel
        messagingTemplate.convertAndSend("/topic/data/clear", null)
    }
}