完成部分API路由以及文档

This commit is contained in:
2025-06-18 02:14:37 +08:00
parent 127fb6972f
commit eb3d2843eb
22 changed files with 2867 additions and 2 deletions

215
models/model.py Normal file
View File

@@ -0,0 +1,215 @@
from datetime import datetime
from sqlalchemy import Column, Integer, String, Text, BigInteger, Boolean, DateTime, ForeignKey
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class BaseModel(Base):
__abstract__ = True
id = Column(Integer, primary_key=True, autoincrement=True)
created_at = Column(DateTime, default=datetime.now)
updated_at = Column(DateTime, default=datetime.now, onupdate=datetime.now)
deleted_at = Column(DateTime, nullable=True)
class Download(BaseModel):
__tablename__ = 'downloads'
status = Column(Integer, nullable=True)
type = Column(Integer, nullable=True)
source = Column(Text, nullable=True)
total_size = Column(BigInteger, nullable=True)
downloaded_size = Column(BigInteger, nullable=True)
g_id = Column(Text, nullable=True)
speed = Column(Integer, nullable=True)
parent = Column(Text, nullable=True)
attrs = Column(Text, nullable=True)
error = Column(Text, nullable=True)
dst = Column(Text, nullable=True)
user_id = Column(Integer, nullable=True)
task_id = Column(Integer, nullable=True)
node_id = Column(Integer, nullable=True)
class File(BaseModel):
__tablename__ = 'files'
name = Column(String(255), nullable=True)
source_name = Column(Text, nullable=True)
user_id = Column(Integer, nullable=True)
size = Column(BigInteger, nullable=True)
pic_info = Column(String(255), nullable=True)
folder_id = Column(Integer, nullable=True)
policy_id = Column(Integer, nullable=True)
upload_session_id = Column(String(255), nullable=True, unique=True)
metadata = Column(Text, nullable=True)
class Folder(BaseModel):
__tablename__ = 'folders'
name = Column(String(255), nullable=True)
parent_id = Column(Integer, nullable=True, index=True)
owner_id = Column(Integer, nullable=True, index=True)
policy_id = Column(Integer, nullable=True)
__table_args__ = {'uniqueConstraints': [('name', 'parent_id')]}
class Group(BaseModel):
__tablename__ = 'groups'
name = Column(String(255), nullable=True)
policies = Column(String(255), nullable=True)
max_storage = Column(BigInteger, nullable=True)
share_enabled = Column(Boolean, nullable=True)
web_dav_enabled = Column(Boolean, nullable=True)
speed_limit = Column(Integer, nullable=True)
options = Column(String(255), nullable=True)
class Node(BaseModel):
__tablename__ = 'nodes'
status = Column(Integer, nullable=True)
name = Column(String(255), nullable=True)
type = Column(Integer, nullable=True)
server = Column(String(255), nullable=True)
slave_key = Column(Text, nullable=True)
master_key = Column(Text, nullable=True)
aria2_enabled = Column(Boolean, nullable=True)
aria2_options = Column(Text, nullable=True)
rank = Column(Integer, nullable=True)
class Order(BaseModel):
__tablename__ = 'orders'
user_id = Column(Integer, nullable=True)
order_no = Column(String(255), nullable=True, index=True)
type = Column(Integer, nullable=True)
method = Column(String(255), nullable=True)
product_id = Column(BigInteger, nullable=True)
num = Column(Integer, nullable=True)
name = Column(String(255), nullable=True)
price = Column(Integer, nullable=True)
status = Column(Integer, nullable=True)
class Policy(BaseModel):
__tablename__ = 'policies'
name = Column(String(255), nullable=True)
type = Column(String(255), nullable=True)
server = Column(String(255), nullable=True)
bucket_name = Column(String(255), nullable=True)
is_private = Column(Boolean, nullable=True)
base_url = Column(String(255), nullable=True)
access_key = Column(Text, nullable=True)
secret_key = Column(Text, nullable=True)
max_size = Column(BigInteger, nullable=True)
auto_rename = Column(Boolean, nullable=True)
dir_name_rule = Column(String(255), nullable=True)
file_name_rule = Column(String(255), nullable=True)
is_origin_link_enable = Column(Boolean, nullable=True)
options = Column(Text, nullable=True)
class Redeem(BaseModel):
__tablename__ = 'redeems'
type = Column(Integer, nullable=True)
product_id = Column(BigInteger, nullable=True)
num = Column(Integer, nullable=True)
code = Column(Text, nullable=True)
used = Column(Boolean, nullable=True)
class Report(BaseModel):
__tablename__ = 'reports'
share_id = Column(Integer, nullable=True, index=True)
reason = Column(Integer, nullable=True)
description = Column(String(255), nullable=True)
class Setting(BaseModel):
__tablename__ = 'settings'
type = Column(String(255), nullable=False)
name = Column(String(255), nullable=False, unique=True, index=True)
value = Column(Text, nullable=True)
class Share(BaseModel):
__tablename__ = 'shares'
password = Column(String(255), nullable=True)
is_dir = Column(Boolean, nullable=True)
user_id = Column(Integer, nullable=True)
source_id = Column(Integer, nullable=True)
views = Column(Integer, nullable=True)
downloads = Column(Integer, nullable=True)
remain_downloads = Column(Integer, nullable=True)
expires = Column(DateTime, nullable=True)
preview_enabled = Column(Boolean, nullable=True)
source_name = Column(String(255), nullable=True, index=True)
score = Column(Integer, nullable=True)
class SourceLink(BaseModel):
__tablename__ = 'source_links'
file_id = Column(Integer, nullable=True)
name = Column(String(255), nullable=True)
downloads = Column(Integer, nullable=True)
class StoragePack(BaseModel):
__tablename__ = 'storage_packs'
name = Column(String(255), nullable=True)
user_id = Column(Integer, nullable=True)
active_time = Column(DateTime, nullable=True)
expired_time = Column(DateTime, nullable=True, index=True)
size = Column(BigInteger, nullable=True)
class Tag(BaseModel):
__tablename__ = 'tags'
name = Column(String(255), nullable=True)
icon = Column(String(255), nullable=True)
color = Column(String(255), nullable=True)
type = Column(Integer, nullable=True)
expression = Column(Text, nullable=True)
user_id = Column(Integer, nullable=True)
class Task(BaseModel):
__tablename__ = 'tasks'
status = Column(Integer, nullable=True)
type = Column(Integer, nullable=True)
user_id = Column(Integer, nullable=True)
progress = Column(Integer, nullable=True)
error = Column(Text, nullable=True)
props = Column(Text, nullable=True)
class User(BaseModel):
__tablename__ = 'users'
email = Column(String(100), nullable=True, unique=True)
nick = Column(String(50), nullable=True)
password = Column(String(255), nullable=True)
status = Column(Integer, nullable=True)
group_id = Column(Integer, nullable=True)
storage = Column(BigInteger, nullable=True)
two_factor = Column(String(255), nullable=True)
avatar = Column(String(255), nullable=True)
options = Column(Text, nullable=True)
authn = Column(Text, nullable=True)
open_id = Column(String(255), nullable=True)
score = Column(Integer, nullable=True)
previous_group_id = Column(Integer, nullable=True)
group_expires = Column(DateTime, nullable=True)
notify_date = Column(DateTime, nullable=True)
phone = Column(String(255), nullable=True)
class WebDAV(BaseModel):
__tablename__ = 'webdavs'
name = Column(String(255), nullable=True)
password = Column(String(255), nullable=True)
user_id = Column(Integer, nullable=True)
root = Column(Text, nullable=True)
readonly = Column(Boolean, nullable=True)
use_proxy = Column(Boolean, nullable=True)
__table_args__ = {'uniqueConstraints': [('password', 'user_id')]}