Files
bili-sync/models.py

45 lines
1.2 KiB
Python

from tortoise import Tortoise, fields
from tortoise.models import Model
from constants import DEFAULT_DATABASE_PATH
class FavoriteList(Model):
"""收藏列表"""
id = fields.IntField(pk=True)
name = fields.CharField(max_length=255)
created_at = fields.DatetimeField(auto_now_add=True)
updated_at = fields.DatetimeField(auto_now=True)
class Upper(Model):
"""up主"""
id = fields.IntField(pk=True)
name = fields.CharField(max_length=255)
created_at = fields.DatetimeField(auto_now_add=True)
updated_at = fields.DatetimeField(auto_now=True)
class FavoriteItem(Model):
"""收藏条目"""
id = fields.IntField(pk=True)
name = fields.CharField(max_length=255)
bvid = fields.CharField(max_length=255)
favorite_list = fields.ForeignKeyField(
"models.FavoriteList", related_name="items"
)
upper = fields.ForeignKeyField("models.Upper", related_name="uploads")
created_at = fields.DatetimeField(auto_now_add=True)
updated_at = fields.DatetimeField(auto_now=True)
async def init_model():
await Tortoise.init(
db_url=f"sqlite://{DEFAULT_DATABASE_PATH}",
modules={"models": ["models"]},
)
await Tortoise.generate_schemas()