Files
honeyDueKMP/composeApp/src/commonMain/kotlin/com/example/mycrib/models/Task.kt
Trey t 78c62cfc52 Initial commit: Kotlin Multiplatform project setup
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 09:15:49 -06:00

75 lines
2.3 KiB
Kotlin

package com.mycrib.shared.models
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
data class Task(
val id: Int,
val residence: Int,
@SerialName("created_by") val createdBy: Int,
@SerialName("created_by_username") val createdByUsername: String,
val title: String,
val description: String?,
val category: String,
val priority: String,
val status: String,
@SerialName("due_date") val dueDate: String,
@SerialName("estimated_cost") val estimatedCost: String?,
@SerialName("actual_cost") val actualCost: String?,
val notes: String?,
@SerialName("created_at") val createdAt: String,
@SerialName("updated_at") val updatedAt: String,
@SerialName("days_until_due") val daysUntilDue: Int? = null,
@SerialName("is_overdue") val isOverdue: Boolean? = null,
@SerialName("last_completion") val lastCompletion: LastCompletion? = null
)
@Serializable
data class LastCompletion(
@SerialName("completion_date") val completionDate: String,
@SerialName("completed_by") val completedBy: String?,
@SerialName("actual_cost") val actualCost: String?,
val rating: Int?
)
@Serializable
data class TaskCreateRequest(
val residence: Int,
val title: String,
val description: String? = null,
val category: String,
val priority: String,
val status: String = "pending",
@SerialName("due_date") val dueDate: String,
@SerialName("estimated_cost") val estimatedCost: String? = null,
val notes: String? = null
)
@Serializable
data class TaskDetail(
val id: Int,
val residence: Int,
@SerialName("created_by") val createdBy: Int,
@SerialName("created_by_username") val createdByUsername: String,
val title: String,
val description: String?,
val category: String,
val priority: String,
val status: String,
@SerialName("due_date") val dueDate: String,
@SerialName("estimated_cost") val estimatedCost: String?,
@SerialName("actual_cost") val actualCost: String?,
val notes: String?,
@SerialName("created_at") val createdAt: String,
@SerialName("updated_at") val updatedAt: String,
val completions: List<TaskCompletion>
)
@Serializable
data class TasksByResidenceResponse(
@SerialName("residence_id") val residenceId: String,
val summary: TaskSummary,
val tasks: List<TaskDetail>
)