package com.xmomen.module.product.model;

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

import lombok.Data;

/**
 * CategoryModel类用于表示产品类别的数据模型，可在不同层（如控制器、服务层、视图层）之间传递数据。
 * 该类实现了Serializable接口，意味着它可以被序列化，方便在网络传输或存储到文件中。
 * 使用Lombok的@Data注解，自动生成了getter、setter、toString、equals和hashCode等方法。
 */
@Data
public class CategoryModel implements Serializable {

	// 序列化版本号，用于在序列化和反序列化过程中确保版本的兼容性。
	private static final long serialVersionUID = 1L;

	// 类别ID，唯一标识一个类别。
	private Integer id;

	// 类别名称，描述该类别的具体名称。
	private String name;

	// 父类别ID，用于表示该类别所属的父类别。如果为null，则表示该类别为顶级类别。
	private Integer parentId;

	// 父类别名称，存储该类别父类别的名称。
	private String parentName;

	// 子类别列表，存储该类别下的所有子类别。
	private List<CategoryModel> nodes;

	// 标识该类别是否为叶子节点（即是否没有子类别）。默认为true，表示是叶子节点。
	private boolean leaf = true;
}