package app.closer.data.local.entity

import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey

/**
 * Room entity for date plans.
 *
 * Stored locally in Room. Synced to Firestore under couples/{coupleId}/date_plans/{planId}.
 * Generated by the Builder when both partners have contributed preferences.
 *
 * Table: date_plans
 */
@Entity(tableName = "date_plans")
data class DatePlanEntity(
    @PrimaryKey val id: String = "",
    @ColumnInfo(name = "couple_id") val coupleId: String = "",
    @ColumnInfo(name = "date_idea_id") val dateIdeaId: String = "",
    @ColumnInfo(name = "scheduled_date") val scheduledDate: Long = 0L,
    @ColumnInfo(name = "scheduled_time") val scheduledTime: String = "",
    val budget: Int = 0,
    val duration: String = "",
    val status: String = "draft",
    val activity: String = "",
    val food: String = "",
    val conversationPrompts: String = "[]",
    @ColumnInfo(name = "optional_challenge") val optionalChallenge: String? = null,
    @ColumnInfo(name = "created_at") val createdAt: Long = 0L,
    @ColumnInfo(name = "updated_at") val updatedAt: Long = 0L
)
