package com.develop.common.data_repo.db.entity

import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
import kotlinx.serialization.Serializable

/**
 * RecipeCookingSteps
 * 食谱烹饪步骤
 * @author elber
 * @date 2022/6/16 18:38
 * @since 0.0.1
 */
@Serializable
@Entity(tableName = "cc_dev_recipe_cooking_step")
data class DevRecipeCookingStep(

    @PrimaryKey
    @ColumnInfo
    var code: String,

    /**
     * 食谱编号
     */
    @ColumnInfo(name = "recipe_number")
    val recipeNumber: String?,

    /**
     * 序号
     */
    @ColumnInfo
    val number: String?,

    /**
     * 工作模式
     * @see com.kuyuntech.cofarcooking.coreapi.constant.core.RecipeCookingStepsWorkMode
     */
    @ColumnInfo(name = "work_mode")
    val workMode: String?,

    /**
     * 视频或图片文件标识
     */
    @ColumnInfo(name = "photo_video_file_code")
    val photoVideoFileCode: String?,

    /**
     * 视频或图片文件路径
     */
    @ColumnInfo(name = "photo_video_file_path")
    val photoVideoFilePath: String?,

    /**
     * 音频文件标识
     */
    @ColumnInfo(name = "audio_file_code")
    val audioFileCode: String?,

    /**
     * 音频文件路径
     */
    @ColumnInfo(name = "audio_file_path")
    val audioFilePath: String?,

    /**
     * 制作模式
     * @see com.kuyuntech.cofarcooking.coreapi.constant.core.RecipeCookingStepsMakeMode
     */
    @ColumnInfo(name = "make_mode")
    val makeMode: String?,

    /**
     * 是否自动开始
     */
    @ColumnInfo(name = "auto_start")
    val autoStart: String?,

    /**
     * 加热温度
     */
    @ColumnInfo
    val temperature: Int?,

    /**
     * 旋转方向
     * @see com.kuyuntech.cofarcooking.coreapi.constant.core.RotateDirection
     */
    @ColumnInfo(name = "rotate_direction")
    val rotateDirection: String?,

    /**
     * 旋转速度
     */
    @ColumnInfo(name = "rotate_speed")
    val rotateSpeed: Int?,

    /**
     * 工作时间(分)
     */
    @ColumnInfo
    val minute: Int?,

    /**
     * 工作时间(秒)
     */
    @ColumnInfo
    val second: Int?,

    /**
     * 描述
     */
    @ColumnInfo
    val description: String?,

    /**
     * 语言
     */
    @ColumnInfo
    val lang: String?,


    @ColumnInfo(name = "update_time")
    val updateTime: Long?,

    @ColumnInfo(name = "create_time")
    val createTime: Long?
)