from django.db import models
import uuid


class mindMap(models.Model):
    """思维导图（最小字段，按接口文档）"""
    file_name = models.CharField(max_length=255, default='思维导图')  # title
    created_at = models.DateTimeField(auto_now_add=True)              # createDate
    updated_at = models.DateTimeField(auto_now=True)                  # updateDate
    deleted = models.BooleanField(default=False)                      # delete

    class Meta:
        db_table = 'mindmaps'
        ordering = ['-created_at']

    def __str__(self):
        return f"{self.file_name}"


class Node(models.Model):
    """节点（最小字段，按接口文档）"""
    id = models.CharField(max_length=255, primary_key=True, default=uuid.uuid4)
    mindmap = models.ForeignKey(mindMap, on_delete=models.CASCADE, related_name='nodes')

    is_root = models.BooleanField(default=False)                      # isRoot
    parent_id = models.CharField(max_length=255, null=True, blank=True)  # parentId
    children_count = models.IntegerField(default=0)                   # childrenCount
    depth = models.IntegerField(default=0)                            # depth
    title = models.CharField(max_length=500, blank=True, default='')  # title
    desc = models.TextField(blank=True, default='')                   # des
    
    # 图片相关字段
    image_url = models.URLField(max_length=1000, blank=True, null=True)  # 图片URL
    image_width = models.IntegerField(default=120, null=True, blank=True)  # 图片宽度
    image_height = models.IntegerField(default=80, null=True, blank=True)  # 图片高度
    image_fit = models.CharField(max_length=20, default='contain', blank=True)  # 图片适配方式
    
    # HTML内容字段
    html_content = models.TextField(blank=True, default='')  # dangerouslySetInnerHTML内容
    
    created_at = models.DateTimeField(auto_now_add=True)              # createDate
    updated_at = models.DateTimeField(auto_now=True)                  # updateDate
    deleted = models.BooleanField(default=False)                      # delete

    class Meta:
        db_table = 'nodes'
        ordering = ['created_at']












