package de.tsschulz.tt_tagebuch.shared.api.models

import kotlinx.serialization.Serializable

@Serializable
data class DiaryPlanGroup(
    val id: Int,
    val name: String? = null,
    val lead: String? = null,
    val diaryDateId: Int? = null,
)

@Serializable
data class CreateDiaryPlanActivityRequest(
    val diaryDateId: Int,
    val activity: String = "",
    val predefinedActivityId: Int? = null,
    val duration: Int? = null,
    val durationText: String? = null,
    val isTimeblock: Boolean = false,
    val groupId: Int? = null,
)

@Serializable
data class AddDiaryPlanGroupActivityRequest(
    val clubId: Int,
    val diaryDateId: Int,
    val groupId: Int,
    val activity: String,
    val predefinedActivityId: Int? = null,
    val timeblockId: Int? = null,
    val duration: Int? = null,
    val durationText: String? = null,
)

@Serializable
data class UpdateDiaryPlanActivityRequest(
    val predefinedActivityId: Int? = null,
    val customActivityName: String? = null,
    val duration: Int? = null,
    val durationText: String? = null,
    val orderId: Int? = null,
    val groupId: Int? = null,
)

@Serializable
data class UpdateDiaryPlanActivityOrderRequest(
    val orderId: Int,
)

@Serializable
data class UpdateNestedPlanGroupActivityRequest(
    val predefinedActivityId: Int? = null,
    val duration: Int? = null,
    val durationText: String? = null,
    val orderId: Int? = null,
    val groupId: Int? = null,
)

@Serializable
data class CreateTrainingGroupBody(
    val clubid: Int,
    val dateid: Int,
    val name: String,
    val lead: String? = null,
)

@Serializable
data class UpdateTrainingGroupBody(
    val clubid: Int,
    val dateid: Int,
    val name: String,
    val lead: String? = null,
)

@Serializable
data class DeleteTrainingGroupBody(
    val clubid: Int,
    val dateid: Int,
)
