package com.aiwazian.messenger.data

import androidx.annotation.Keep
import com.google.gson.annotations.SerializedName
import kotlinx.serialization.Serializable

@Keep
@Serializable
data class KanbanBoard(
    val id: Int = 0,
    val title: String = "",
    val columns: List<KanbanColumn> = emptyList(),
    val updatedAt: Long = 0
)

@Keep
@Serializable
data class KanbanColumn(
    val id: Int = 0,
    val boardId: Int = 0,
    val title: String = "",
    val position: Int = 0,
    val tasks: List<KanbanTask> = emptyList()
)

@Keep
@Serializable
data class KanbanTask(
    val id: Int = 0,
    val columnId: Int = 0,
    val title: String = "",
    val description: String? = null,
    val position: Int = 0,
    val column: KanbanTaskColumn? = null
)

@Keep
@Serializable
data class KanbanTaskColumn(
    val board: KanbanBoard = KanbanBoard()
)

@Keep
data class KanbanTitleRequest(@SerializedName("title") val title: String)

@Keep
data class KanbanTaskRequest(
    @SerializedName("title") val title: String,
    @SerializedName("description") val description: String? = null
)

@Keep
data class KanbanMoveTaskRequest(@SerializedName("columnId") val columnId: Int)

@Keep
data class SendMessageRequest(
    @SerializedName("text") val text: String,
    @SerializedName("kanbanBoardId") val kanbanBoardId: Int? = null,
    @SerializedName("kanbanTaskId") val kanbanTaskId: Int? = null
)
