from django.db import models # Create your models here. class UserInfo(models.Model): phone = models.CharField(max_length=11, unique=True,verbose_name='手机号') token=models.CharField(verbose_name='用户TOKEN',max_length=64,null=True,blank=True) class Meta: verbose_name = '用户信息' verbose_name_plural = verbose_name class UserPlan(models.Model): user = models.ForeignKey( UserInfo, on_delete=models.CASCADE, related_name='plans', verbose_name='关联用户' ) spot_img = models.URLField( verbose_name='景点图片', max_length=500, blank=True, null=True, default='' # 设置默认值为空字符串 ) spot_id = models.IntegerField(verbose_name='景点ID') spot_name = models.CharField(max_length=100, verbose_name='景点名称') created_at = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') class Meta: verbose_name = '用户行程' verbose_name_plural = verbose_name unique_together = ('user', 'spot_id') # 确保用户不会重复添加同一景点 class UserBehavior(models.Model): user_info = models.ForeignKey(UserInfo, on_delete=models.CASCADE, related_name='behaviors') feature_name = models.CharField(max_length=50) # 功能模块名称 usage_count = models.IntegerField(default=0) # 使用次数 last_used = models.DateTimeField(auto_now=True) # 最后使用时间 class Meta: unique_together = ('user_info', 'feature_name') verbose_name = '用户行为记录' verbose_name_plural = verbose_name class FeatureMapping(models.Model): """功能到小程序页面的映射""" user_info = models.ForeignKey(UserInfo, on_delete=models.CASCADE, related_name='Mappings',default=1) feature_name = models.CharField(max_length=50) page_path = models.CharField(max_length=100) # 小程序页面路径 priority = models.FloatField(default=1.0) # 业务优先级 class Meta: verbose_name = '功能页面映射' verbose_name_plural = verbose_name def __str__(self): return f"{self.feature_name} → {self.page_path}"