package com.ycwl.basic.puzzle.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.util.Date;

/**
 * 拼图模板实体类
 * 对应表：puzzle_template
 *
 * @author Claude
 * @since 2025-01-17
 */
@Data
@TableName("puzzle_template")
public class PuzzleTemplateEntity {

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 模板名称
     */
    @TableField("name")
    private String name;

    /**
     * 模板编码（用于API调用）
     */
    @TableField("code")
    private String code;

    /**
     * 画布宽度（像素）
     */
    @TableField("canvas_width")
    private Integer canvasWidth;

    /**
     * 画布高度（像素）
     */
    @TableField("canvas_height")
    private Integer canvasHeight;

    /**
     * 背景类型：0-纯色 1-图片
     */
    @TableField("background_type")
    private Integer backgroundType;

    /**
     * 背景颜色（hex格式）
     */
    @TableField("background_color")
    private String backgroundColor;

    /**
     * 背景图片URL
     */
    @TableField("background_image")
    private String backgroundImage;

    /**
     * 模板封面图片URL（用于前端管理界面展示）
     */
    @TableField("cover_image")
    private String coverImage;

    /**
     * 模板描述
     */
    @TableField("description")
    private String description;

    /**
     * 模板分类（如：order-订单 ticket-票务 certificate-证书）
     */
    @TableField("category")
    private String category;

    /**
     * 状态：0-禁用 1-启用
     */
    @TableField("status")
    private Integer status;

    /**
     * 景区ID（用于多租户隔离）
     */
    @TableField("scenic_id")
    private Long scenicId;

    /**
     * 自动添加到打印队列：1-开启 0-关闭
     */
    @TableField("auto_add_print")
    private Integer autoAddPrint;

    /**
     * 是否可以打印：1-可以 0-不可以
     */
    @TableField("can_print")
    private Integer canPrint;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private Date createTime;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private Date updateTime;

    /**
     * 删除标记：0-未删除 1-已删除
     */
    @TableField("deleted")
    private Integer deleted;

    /**
     * 删除时间
     */
    @TableField("deleted_at")
    private Date deletedAt;
}
