113 lines
5.1 KiB
Python
113 lines
5.1 KiB
Python
"""模块:Community 社区数据模型
|
|
|
|
官网社区(discuss.gvsds.com):
|
|
- CommunityBoard 板块(一级分区,如「交流讨论 / 问题求助 / 项目展示」)
|
|
- CommunityCategory 板块内分类(二级,如「公告 / 建议」)
|
|
- CommunityPost 帖子(标题 + 内容,挂板块与可选分类)
|
|
- CommunityReply 回复(引用楼层可空)
|
|
- CommunityLike 点赞(帖子维度,同用户唯一)
|
|
"""
|
|
from django.db import models
|
|
|
|
import gvsds.apps.core.models as core_models
|
|
from gvsds.model_base import QModel
|
|
|
|
|
|
class CommunityBoard(QModel):
|
|
"""社区板块"""
|
|
|
|
BoardUUID = core_models.UUIDField(primary_key=True, verbose_name='板块UUID')
|
|
BoardName = models.CharField(max_length=64, verbose_name='板块名称')
|
|
BoardDesc = models.CharField(max_length=255, default='', verbose_name='板块描述')
|
|
BoardOrder = models.IntegerField(default=0, verbose_name='排序')
|
|
BoardStatus = models.SmallIntegerField(default=1, verbose_name='状态(1启用/0停用)')
|
|
CreateTime = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
|
|
|
|
class Meta:
|
|
db_table = 'CommunityBoard'
|
|
app_label = 'community'
|
|
ordering = ['BoardOrder', 'CreateTime']
|
|
verbose_name = '社区板块'
|
|
verbose_name_plural = '社区板块'
|
|
|
|
|
|
class CommunityCategory(QModel):
|
|
"""板块内分类"""
|
|
|
|
CategoryUUID = core_models.UUIDField(primary_key=True, verbose_name='分类UUID')
|
|
BoardUUID = core_models.UUIDField(db_column='BoardUUID', verbose_name='板块UUID')
|
|
CategoryName = models.CharField(max_length=64, verbose_name='分类名称')
|
|
CategoryOrder = models.IntegerField(default=0, verbose_name='排序')
|
|
CategoryStatus = models.SmallIntegerField(default=1, verbose_name='状态(1启用/0停用)')
|
|
CreateTime = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
|
|
|
|
class Meta:
|
|
db_table = 'CommunityCategory'
|
|
app_label = 'community'
|
|
ordering = ['CategoryOrder', 'CreateTime']
|
|
verbose_name = '社区分类'
|
|
verbose_name_plural = '社区分类'
|
|
|
|
|
|
class CommunityPost(QModel):
|
|
"""社区帖子"""
|
|
|
|
PostUUID = core_models.UUIDField(primary_key=True, verbose_name='帖子UUID')
|
|
BoardUUID = core_models.UUIDField(db_column='BoardUUID', verbose_name='板块UUID')
|
|
CategoryUUID = core_models.UUIDField(null=True, blank=True, db_column='CategoryUUID', verbose_name='分类UUID')
|
|
Title = models.CharField(max_length=128, verbose_name='标题')
|
|
Content = models.TextField(default='', verbose_name='内容')
|
|
AuthorUUID = core_models.UUIDField(db_column='AuthorUUID', verbose_name='作者UUID')
|
|
AuthorName = models.CharField(max_length=64, default='', verbose_name='作者名称')
|
|
ViewCount = models.IntegerField(default=0, verbose_name='浏览量')
|
|
LikeCount = models.IntegerField(default=0, verbose_name='点赞数')
|
|
ReplyCount = models.IntegerField(default=0, verbose_name='回复数')
|
|
IsPinned = models.SmallIntegerField(default=0, verbose_name='置顶(1/0)')
|
|
IsLocked = models.SmallIntegerField(default=0, verbose_name='锁定(1/0)')
|
|
PostStatus = models.SmallIntegerField(default=1, verbose_name='状态(1发布/0删除)')
|
|
CreateTime = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
|
|
UpdateTime = models.DateTimeField(auto_now=True, verbose_name='更新时间')
|
|
|
|
class Meta:
|
|
db_table = 'CommunityPost'
|
|
app_label = 'community'
|
|
ordering = ['-IsPinned', '-CreateTime']
|
|
verbose_name = '社区帖子'
|
|
verbose_name_plural = '社区帖子'
|
|
|
|
|
|
class CommunityReply(QModel):
|
|
"""社区回复"""
|
|
|
|
ReplyUUID = core_models.UUIDField(primary_key=True, verbose_name='回复UUID')
|
|
PostUUID = core_models.UUIDField(db_column='PostUUID', verbose_name='帖子UUID')
|
|
AuthorUUID = core_models.UUIDField(db_column='AuthorUUID', verbose_name='作者UUID')
|
|
AuthorName = models.CharField(max_length=64, default='', verbose_name='作者名称')
|
|
Content = models.TextField(default='', verbose_name='回复内容')
|
|
ReplyToUUID = core_models.UUIDField(null=True, blank=True, db_column='ReplyToUUID', verbose_name='引用回复UUID')
|
|
ReplyStatus = models.SmallIntegerField(default=1, verbose_name='状态(1/0)')
|
|
CreateTime = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
|
|
|
|
class Meta:
|
|
db_table = 'CommunityReply'
|
|
app_label = 'community'
|
|
ordering = ['CreateTime']
|
|
verbose_name = '社区回复'
|
|
verbose_name_plural = '社区回复'
|
|
|
|
|
|
class CommunityLike(QModel):
|
|
"""帖子点赞(同用户同帖子唯一)"""
|
|
|
|
LikeUUID = core_models.UUIDField(primary_key=True, verbose_name='点赞UUID')
|
|
PostUUID = core_models.UUIDField(db_column='PostUUID', verbose_name='帖子UUID')
|
|
AuthorUUID = core_models.UUIDField(db_column='AuthorUUID', verbose_name='用户UUID')
|
|
CreateTime = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
|
|
|
|
class Meta:
|
|
db_table = 'CommunityLike'
|
|
app_label = 'community'
|
|
unique_together = (('PostUUID', 'AuthorUUID'),)
|
|
verbose_name = '帖子点赞'
|
|
verbose_name_plural = '帖子点赞'
|