89 lines
4.0 KiB
Python
89 lines
4.0 KiB
Python
from flask_prompt_master import db
|
|
from datetime import datetime
|
|
|
|
class User(db.Model):
|
|
__tablename__ = 'user'
|
|
|
|
uid = db.Column(db.Integer, primary_key=True)
|
|
nickname = db.Column(db.String(100), nullable=False)
|
|
mobile = db.Column(db.String(20), nullable=True)
|
|
email = db.Column(db.String(100), nullable=True)
|
|
sex = db.Column(db.Integer, nullable=False, default=0)
|
|
avatar = db.Column(db.String(64), nullable=True)
|
|
login_name = db.Column(db.String(20), nullable=False, unique=True)
|
|
login_pwd = db.Column(db.String(32), nullable=False)
|
|
login_salt = db.Column(db.String(32), nullable=False)
|
|
status = db.Column(db.Integer, nullable=False, default=1)
|
|
openid = db.Column(db.String(64), unique=True)
|
|
session_key = db.Column(db.String(64))
|
|
unionid = db.Column(db.String(64), unique=True)
|
|
wx_nickname = db.Column(db.String(100))
|
|
wx_avatar = db.Column(db.String(255))
|
|
updated_time = db.Column(db.DateTime, default=datetime.utcnow)
|
|
created_time = db.Column(db.DateTime, default=datetime.utcnow)
|
|
|
|
prompts = db.relationship('Prompt', backref='author', lazy='dynamic')
|
|
feedbacks = db.relationship('Feedback', backref='author', lazy='dynamic')
|
|
|
|
class WxUser(db.Model):
|
|
"""微信小程序用户表"""
|
|
__tablename__ = 'wx_user'
|
|
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
openid = db.Column(db.String(64), unique=True, nullable=False)
|
|
session_key = db.Column(db.String(64))
|
|
unionid = db.Column(db.String(64), unique=True)
|
|
nickname = db.Column(db.String(100))
|
|
avatar_url = db.Column(db.String(255))
|
|
gender = db.Column(db.Integer, default=0) # 0:未知, 1:男, 2:女
|
|
country = db.Column(db.String(50))
|
|
province = db.Column(db.String(50))
|
|
city = db.Column(db.String(50))
|
|
language = db.Column(db.String(20))
|
|
phone = db.Column(db.String(20))
|
|
is_active = db.Column(db.Boolean, default=True)
|
|
last_login = db.Column(db.DateTime, default=datetime.utcnow)
|
|
created_at = db.Column(db.DateTime, default=datetime.utcnow)
|
|
updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
|
|
|
|
# 关联到提示词和反馈
|
|
prompts = db.relationship('Prompt', backref='wx_user', lazy='dynamic',
|
|
foreign_keys='Prompt.wx_user_id')
|
|
feedbacks = db.relationship('Feedback', backref='wx_user', lazy='dynamic',
|
|
foreign_keys='Feedback.wx_user_id')
|
|
|
|
class Prompt(db.Model):
|
|
__tablename__ = 'prompt'
|
|
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
input_text = db.Column(db.Text, nullable=False)
|
|
generated_text = db.Column(db.Text, nullable=False)
|
|
created_at = db.Column(db.DateTime, default=datetime.utcnow)
|
|
user_id = db.Column(db.Integer, db.ForeignKey('user.uid')) # 修改为可空
|
|
wx_user_id = db.Column(db.Integer, db.ForeignKey('wx_user.id')) # 添加微信用户ID
|
|
feedbacks = db.relationship('Feedback', backref='prompt', lazy='dynamic')
|
|
|
|
class Feedback(db.Model):
|
|
__tablename__ = 'feedback'
|
|
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
rating = db.Column(db.Integer, nullable=False)
|
|
comment = db.Column(db.Text)
|
|
created_at = db.Column(db.DateTime, default=datetime.utcnow)
|
|
user_id = db.Column(db.Integer, db.ForeignKey('user.uid')) # 修改为可空
|
|
wx_user_id = db.Column(db.Integer, db.ForeignKey('wx_user.id')) # 添加微信用户ID
|
|
prompt_id = db.Column(db.Integer, db.ForeignKey('prompt.id'), nullable=False)
|
|
|
|
class PromptTemplate(db.Model):
|
|
__tablename__ = 'prompt_template'
|
|
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
name = db.Column(db.String(100), nullable=False)
|
|
description = db.Column(db.Text)
|
|
category = db.Column(db.String(50))
|
|
industry = db.Column(db.String(50))
|
|
profession = db.Column(db.String(50))
|
|
sub_category = db.Column(db.String(50))
|
|
system_prompt = db.Column(db.Text, nullable=False)
|
|
is_default = db.Column(db.Boolean, default=False)
|
|
created_at = db.Column(db.DateTime, default=datetime.utcnow) |