| from config.db import Base |
| from datetime import datetime |
| from sqlalchemy import Integer, Column, Boolean, String , DateTime,ForeignKey,Text, JSON |
| from sqlalchemy.orm import relationship |
|
|
| class Users(Base): |
| __tablename__ = "users" |
|
|
| id = Column(Integer, primary_key=True, index=True) |
| email = Column(String(255), unique=True) |
| username = Column(String(255), unique=True) |
| first_name = Column(String(50)) |
| last_name = Column(String(50)) |
| hashed_password = Column(String(255)) |
| is_active = Column(Boolean, default=True) |
| role = Column(String(50)) |
|
|
|
|
| class Company(Base): |
| __tablename__ = "companies" |
|
|
| id = Column(Integer, primary_key=True, index=True) |
| email = Column(String(255), unique=True) |
| company_name = Column(String(255)) |
| company_key = Column(String(255)) |
| base_url = Column(String(255), unique=True,nullable=True) |
| input_tokens = Column(Integer) |
| output_tokens = Column(Integer) |
| created_date = Column(DateTime, default=datetime.now()) |
|
|
|
|
|
|
| class Chatbot_stats(Base): |
| __tablename__ = "chatbots" |
|
|
| id = Column(Integer,index=True) |
| chatbot_id = Column(String(255),primary_key=True) |
| chatbot_name = Column(String(255)) |
| chatbot_prompt = Column(Text) |
| company_id = Column(Integer, ForeignKey("companies.id")) |
| origin_url = Column(String(255)) |
| company_name = Column(String(255)) |
| total_input_tokens = Column(Integer) |
| total_output_tokens= Column(Integer) |
| total_queries = Column(Integer) |
| last_query_time = Column(DateTime) |
|
|
|
|
|
|
| class Queries(Base): |
| __tablename__ = "queries" |
|
|
| id = Column(Integer,index=True,primary_key=True) |
| company_id = Column(Integer, ForeignKey("companies.id")) |
| chatbot_id = Column(String(255),ForeignKey("chatbots.chatbot_id")) |
| session_id = Column(String(255),index=True) |
| query_text_bot = Column(Text) |
| query_text_user = Column(Text) |
| query_context = Column(Text) |
| input_tokens = Column(String(255)) |
| output_tokens = Column(String(255)) |
| query_time = Column(DateTime) |
| origin_url = Column(String(255)) |
|
|
|
|
| class QueryUsers(Base): |
| __tablename__ = "query_users" |
|
|
| id = Column(Integer, primary_key=True, index=True) |
| session_id = Column(String(255)) |
| chatbot_id = Column(String(255)) |
| ip_address = Column(String(100)) |
| origin_url = Column(String(255)) |
| timezone = Column(String(50), nullable=True) |
| language = Column(String(10), nullable=True) |
| is_mobile = Column(Boolean, nullable=True) |
| user_agent = Column(Text, nullable=True) |
| platform = Column(String(255), nullable=True) |
| referrer = Column(String(255), nullable=True) |
| location = Column(JSON, nullable=True) |
| network_type = Column(String(50), nullable=True) |
| email = Column(String(255), nullable=True) |
| phone_number = Column(String(255),nullable=True) |
|
|
|
|
|
|