# backend/api/models.py from django.db import models from django.conf import settings class LinkGroup(models.Model): owner = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='api_link_groups' ) name = models.CharField(max_length=100) order = models.PositiveIntegerField(default=0) description = models.TextField(blank=True, null=True) icon = models.ImageField( upload_to='link_groups/', null=True, blank=True, help_text='Иконка группы ссылок' ) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) is_public = models.BooleanField(default=False) is_favorite = models.BooleanField(default=False) def __str__(self): return f"{self.owner.username} — {self.name}" class Link(models.Model): owner = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='links' ) group = models.ForeignKey( LinkGroup, on_delete=models.SET_NULL, null=True, blank=True, related_name='links' ) title = models.CharField(max_length=200) url = models.URLField() icon = models.ImageField( upload_to='links/', null=True, blank=True, help_text='Иконка для этой ссылки' ) order = models.PositiveIntegerField(default=0) def __str__(self): return self.title