package com.xmomen.module.product.entity;

import javax.persistence.Entity;
import javax.persistence.Table;

import com.xmomen.framework.mybatis.model.BaseMybatisModel;

// 使用JPA的@Entity注解，表明这是一个实体类，会被JPA映射到数据库表
@Entity
// 使用@Table注解指定该实体类映射到数据库中的表名为"cd_category"
@Table(name="cd_category")
public class Category extends BaseMybatisModel {

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

	// 类别ID，对应数据库表中的主键字段
	private Integer id;

	// 类别名称
	private String name;

	// 父类别ID，用于表示类别之间的层级关系
	private Integer parentId;

	/**
	 * 获取类别ID
	 * @return 类别ID
	 */
	public Integer getId() {
		return id;
	}

	/**
	 * 设置类别ID
	 * @param id 要设置的类别ID
	 */
	public void setId(Integer id) {
		this.id = id;
	}

	/**
	 * 获取类别名称
	 * @return 类别名称
	 */
	public String getName() {
		return name;
	}

	/**
	 * 设置类别名称
	 * @param name 要设置的类别名称
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * 获取父类别ID
	 * @return 父类别ID
	 */
	public Integer getParentId() {
		return parentId;
	}

	/**
	 * 设置父类别ID
	 * @param parentId 要设置的父类别ID
	 */
	public void setParentId(Integer parentId) {
		this.parentId = parentId;
	}

	/**
	 * 重写toString方法，方便打印对象信息
	 * @return 包含类别ID、名称和父类别ID的字符串表示
	 */
	@Override
	public String toString() {
		// 使用StringBuilder来构建字符串，提高性能
		StringBuilder builder = new StringBuilder();
		builder.append("Category [id=");
		builder.append(id);
		builder.append(", name=");
		builder.append(name);
		builder.append(", parentId=");
		builder.append(parentId);
		builder.append("]");
		return builder.toString();
	}
}