package com.example.dtf.models

import androidx.room.*
import kotlinx.serialization.Serializable

//private val posts = listOf(
//    Post(
//        1,
//        "Что не так с half-life 2",
//        "Да всё не так",
//        1,
//        mutableVectorOf(
//            Comment(1, 2, "Пост бред. Начнём с того, что вот эта твоя манера речи клоунская...", Date(2023, 10, 20)),
//            Comment(2, 1, "Да какой бред, чел, я всё по факту сказал", Date(2023, 10, 20))
//        ),
//        Date(2023, 10, 22)
//    ),
//    Post(
//        2,
//        "Я действительно ненавижу фильм про титаник",
//        "Пруфов не будет",
//        2,
//        mutableVectorOf(Comment(1, 2, "Очередной бред от автора", Date(2023, 9, 20))),
//        Date(2023, 9, 22)
//    ),
//    Post(
//        3,
//        "\"Госпожа Кагуя\" это переоценённый тайтл",
//        "Я, конечно, не смотрел, но мне так кажется. А всё потому, что там происходит такое, что даже Аристотелю не снилось. А может даже Платону. Об этом можно рассуждать тысячи лет, но я смогу уложиться всего в пару слов. И первое слово - этот тайтл полное днище. Ладно, не слово",
//        3,
//        mutableVectorOf(Comment(1, 2, "Автора на увольнение", Date(2023, 9, 20))),
//        Date(2023, 9, 22)
//    ),
//    Post(
//        4,
//        "\"Восхождение в тени\" это переоценённый тайтл",
//        "Я, конечно, не смотрел, но мне так кажется. А всё потому, что там происходит такое, что даже Аристотелю не снилось. А может даже Платону. Об этом можно рассуждать тысячи лет, но я смогу уложиться всего в пару слов. И первое слово - этот тайтл полное днище. Ладно, не слово",
//        3,
//        mutableVectorOf(Comment(1, 2, "Автора на увольнение", Date(2023, 9, 20))),
//        Date(2023, 9, 22)
//    ),
//    Post(
//        5,
//        "\"Тетрадь смерти\" это переоценённый тайтл",
//        "Я, конечно, не смотрел, но мне так кажется. А всё потому, что там происходит такое, что даже Аристотелю не снилось. А может даже Платону. Об этом можно рассуждать тысячи лет, но я смогу уложиться всего в пару слов. И первое слово - этот тайтл полное днище. Ладно, не слово",
//        3,
//        mutableVectorOf(Comment(1, 2, "Автора на увольнение", Date(2023, 9, 20))),
//        Date(2023, 9, 22)
//    ),
//    Post(
//        6,
//        "\"Бакуман\" это переоценённый тайтл",
//        "Я, конечно, не смотрел, но мне так кажется. А всё потому, что там происходит такое, что даже Аристотелю не снилось. А может даже Платону. Об этом можно рассуждать тысячи лет, но я смогу уложиться всего в пару слов. И первое слово - этот тайтл полное днище. Ладно, не слово",
//        3,
//        mutableVectorOf(Comment(1, 2, "Автора на увольнение", Date(2023, 9, 20))),
//        Date(2023, 9, 22)
//    )
//)

@Entity(
    tableName = "post"
)
@Serializable
data class Post(
    @PrimaryKey(autoGenerate = true)
    @ColumnInfo
    val id: Int?,
    @ColumnInfo
    val title: String,
    @ColumnInfo
    val content: String,
    @ColumnInfo
    val date: String,
    @ColumnInfo(name = "user_id")
    val user_id: Int,
    @ColumnInfo(name = "category_id")
    val category_id: Int,
    @ColumnInfo
    val likes: Int = 0,
) {
    override fun equals(other: Any?): Boolean {
        if (this === other) return true

        if (javaClass != other?.javaClass) return false

        other as Post

        return id == other.id
    }

    override fun hashCode(): Int {
        return id ?: -1
    }
}