根据给定的数据模型,实现一个个人博客系统,前端使用vue3,后端使用fastapi+mysql
需要这个系统的类图、时序图、状态图、活动图、部署图,系统架构设计图,系统模块设计图,ER图
要直接可用的图!
class User(Model):
id = fields.IntField(pk=True, description="用户ID")
username = fields.CharField(max_length=50, unique=True, description="用户名")
password= fields.CharField(max_length=255, description="密码哈希")
is_member = fields.BooleanField(default=False, description="是否会员")
is_admin = fields.BooleanField(default=False, description="是否会员")
member_until = fields.DateField(null=True, description="会员有效期至")
class Post(Model):
id = fields.IntField(pk=True, description="文章ID")
author = fields.ForeignKeyField('models.User', related_name='posts', description="作者ID")
title = fields.CharField(max_length=255, description="文章标题")
content = fields.TextField(description="文章内容")
created_at = fields.DatetimeField(auto_now_add=True, description="创建时间")
is_member_only = fields.BooleanField(default=False, description="仅会员查看")
view_count = fields.IntField(default=0, description="浏览次数")
class Comment(Model):
id = fields.IntField(pk=True, description="评论ID")
post = fields.ForeignKeyField('models.Post', related_name='comments', description="文章ID")
author = fields.ForeignKeyField('models.User', related_name='comments', description="用户ID")
content = fields.TextField(description="评论内容")
created_at = fields.DatetimeField(auto_now_add=True, description="创建时间")
class MemberPayment(Model):
id = fields.IntField(pk=True, description="支付记录ID")
user = fields.ForeignKeyField('models.User', related_name='member_payments', description="用户ID")
amount = fields.DecimalField(max_digits=10, decimal_places=2, description="支付金额")
created_at = fields.DatetimeField(auto_now_add=True, description="支付时间")
status = fields.CharField(max_length=50, description="支付状态")
payment_method = fields.CharField(max_length=50, description="支付方式")
transaction_id = fields.CharField(max_length=255, unique=True, description="交易ID")