package com.yami.shop.bean.model;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 门店前台类目表
 *
 * @author YourName
 * @since 2025-09-XX
 */
@Data
@TableName("tz_shop_category")
public class ShopCategory implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId
    private Long id;

    /**
     * pid
     */
    private Long pid;

    /**
     * 类目名称
     */
    private String name;

    /**
     * 海博门店ID
     */
    private String hbShopId;
    /**
     * 店铺ID
     */
    private Long shopId;

    /**
     * 编码
     */
    private String code;

    /**
     * 父级分类编码
     */
    private String parentCode;

    /**
     * 父级分类名称
     */
    private String parentName;
    /**
     * 图标
     */
    private String icon;
    /**
     * 序号
     */
    private Integer num;

    /**
     * 是否删除（0 正常 1 已被删除）
     */
    private Integer isDelete;

    /**
     * 类目等级（（1-一级，2-二级，3-三级）
     */
    private Integer level;


    /**
     * 操作人
     */
    private String operateUser;

    /**
     * 是否叶子(1-是，2-不是)
     */
    private Integer isLeaves;
    /**
     * 类目的显示图片
     */
        private String pic;
    /**
     * 标签
     */
    private Long label;
    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date recTime;

    /**
     * 标签名称
     */
    @TableField(exist = false)
    private String labelName;

    /**
     * 子类名称（导入时处理需要）
     */
    @TableField(exist = false)
    private String subName;

    /**
     * 三级类名称（导入时处理需要）
     */
    @TableField(exist = false)
    private String subSubName;

    /**
     * 商品数量
     */
    @TableField(exist = false)
    private Integer prodCount;

    @TableField(exist = false)
    private List<ShopCategory> children;
}
