Files
whisper-api/src/database/models.py

31 lines
1.1 KiB
Python

from sqlalchemy import Column, Integer, String, DateTime, Boolean, Float, Text
from sqlalchemy.sql import func
from src.database.db import Base
class ApiKey(Base):
__tablename__ = "api_keys"
id = Column(Integer, primary_key=True, index=True)
key_hash = Column(String(64), unique=True, index=True)
description = Column(String(255), nullable=True)
created_at = Column(DateTime(timezone=True), server_default=func.now())
last_used_at = Column(DateTime(timezone=True), nullable=True)
is_active = Column(Boolean, default=True)
usage_count = Column(Integer, default=0)
class UsageLog(Base):
__tablename__ = "usage_logs"
id = Column(Integer, primary_key=True, index=True)
api_key_id = Column(Integer, nullable=True)
endpoint = Column(String(100))
file_size_bytes = Column(Integer, nullable=True)
duration_seconds = Column(Float, nullable=True)
processing_time_ms = Column(Integer)
model_used = Column(String(50))
status = Column(String(20)) # success, error
error_message = Column(Text, nullable=True)
created_at = Column(DateTime(timezone=True), server_default=func.now())