完成部分API路由以及文档
This commit is contained in:
215
models/model.py
Normal file
215
models/model.py
Normal 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')]}
|
||||
7
models/response.py
Normal file
7
models/response.py
Normal file
@@ -0,0 +1,7 @@
|
||||
from pydantic import BaseModel, Field
|
||||
from typing import Union, Optional
|
||||
|
||||
class ResponseModel(BaseModel):
|
||||
code: int = Field(default=0, description="系统内部状态码, 0表示成功,其他表示失败", lt=60000, gt=0)
|
||||
data: Union[dict, list, str, int, float, None] = Field(None, description="响应数据")
|
||||
msg: Optional[str] = Field(default=None, description="响应消息,可以是错误消息或信息提示")
|
||||
Reference in New Issue
Block a user