mirror of
https://github.com/YFGaia/dify-plus.git
synced 2026-06-04 10:14:00 +08:00
83 lines
4.4 KiB
Python
83 lines
4.4 KiB
Python
from extensions.ext_database import db
|
|
|
|
from .types import StringUUID
|
|
|
|
|
|
class ApiTokenMoneyExtend(db.Model):
|
|
__tablename__ = "api_token_money_extend"
|
|
__table_args__ = (
|
|
db.PrimaryKeyConstraint("id", name="api_token_money_extend_pkey"),
|
|
db.Index("api_tokens_money_app_token_id_idx", "app_token_id"),
|
|
)
|
|
|
|
id = db.Column(StringUUID, server_default=db.text("uuid_generate_v4()"))
|
|
app_token_id = db.Column(StringUUID, nullable=True) # 密钥ID
|
|
accumulated_quota = db.Column(db.Numeric(16, 7)) # 已使用额度(累计不归零)
|
|
day_used_quota = db.Column(db.Numeric(16, 7)) # 当天使用额度(定时脚本每日更新)
|
|
month_used_quota = db.Column(db.Numeric(16, 7)) # 当月使用额度(定时脚本每月更新)
|
|
day_limit_quota = db.Column(db.Numeric(16, 7)) # 每天使用额度限制(创建密钥时设置)
|
|
month_limit_quota = db.Column(db.Numeric(16, 7)) # 每月使用额度限制(创建密钥时设置)
|
|
description = db.Column(db.String(50)) # 密钥描述
|
|
is_deleted = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
|
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
|
|
|
|
|
# 日快照统计表
|
|
class ApiTokenMoneyDailyStatExtend(db.Model):
|
|
__tablename__ = "api_token_money_daily_stat_extend"
|
|
__table_args__ = (
|
|
db.PrimaryKeyConstraint("id", name="api_token_money_daily_stat_pkey"),
|
|
db.Index("idx_api_token_money_daily_stat_app_token_id", "app_token_id"),
|
|
)
|
|
|
|
id = db.Column(StringUUID, server_default=db.text("uuid_generate_v4()"))
|
|
app_token_id = db.Column(StringUUID, nullable=False)
|
|
accumulated_quota = db.Column(db.Numeric(16, 7)) # 已使用额度(累计不归零)
|
|
day_used_quota = db.Column(db.Numeric(16, 7)) # 当天使用额度(定时脚本每日更新)
|
|
day_limit_quota = db.Column(db.Numeric(16, 7)) # 每天使用额度限制(创建密钥时设置)
|
|
stat_at = db.Column(db.DateTime, nullable=False)
|
|
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
|
|
|
|
|
# 月快照统计表
|
|
class ApiTokenMoneyMonthlyStatExtend(db.Model):
|
|
__tablename__ = "api_token_money_monthly_stat_extend"
|
|
__table_args__ = (
|
|
db.PrimaryKeyConstraint("id", name="api_token_money_monthly_stat_pkey"),
|
|
db.Index("idx_api_token_money_monthly_stat_app_token_id", "app_token_id"),
|
|
)
|
|
|
|
id = db.Column(StringUUID, server_default=db.text("uuid_generate_v4()"))
|
|
app_token_id = db.Column(StringUUID, nullable=False)
|
|
accumulated_quota = db.Column(db.Numeric(16, 7)) # 已使用额度(累计不归零)
|
|
month_used_quota = db.Column(db.Numeric(16, 7)) # 当月使用额度(定时脚本每月更新)
|
|
month_limit_quota = db.Column(db.Numeric(16, 7)) # 每月使用额度限制(创建密钥时设置)
|
|
stat_at = db.Column(db.DateTime, nullable=False)
|
|
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
|
|
|
|
|
# 密钥 - 对话消息关联表
|
|
class ApiTokenMessageJoinsExtend(db.Model):
|
|
__tablename__ = "api_token_message_joins_extend"
|
|
__table_args__ = (
|
|
db.PrimaryKeyConstraint("id", name="api_token_message_joins_extend_pkey"),
|
|
db.Index("api_token_message_joins_extend_app_token_id_idx", "app_token_id"),
|
|
db.Index("api_token_message_joins_extend_record_id_idx", "record_id"),
|
|
)
|
|
|
|
id = db.Column(StringUUID, server_default=db.text("uuid_generate_v4()"))
|
|
app_token_id = db.Column(StringUUID, nullable=True) # 密钥ID
|
|
record_id = db.Column(StringUUID, nullable=True) # 关联记录ID
|
|
app_mode = db.Column(db.String(255), nullable=True) # 应用类型
|
|
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
|
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
|
|
|
|
def add_app_token_record_id(self):
|
|
db.session.add(
|
|
ApiTokenMessageJoinsExtend(app_token_id=self.app_token_id, record_id=self.record_id, app_mode=self.app_mode)
|
|
)
|
|
db.session.commit()
|