whisper.api / app /core /models /Transcribe.py
Ved Gupta
typo fixed
a221d93
from datetime import datetime, timedelta
import uuid
from app.core.config import settings
from sqlalchemy.dialects.postgresql import UUID
from sqlalchemy import Column, String, Boolean, ForeignKey, DateTime, Integer
from sqlalchemy.orm import Mapped, mapped_column, relationship
from sqlalchemy.sql import func
from app.core.database import Base, engine
class TranscibeInDB(Base):
__tablename__ = "transcribe_data"
id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
text = Column(String)
audio_duration = Column(Integer)
user_id = Column(UUID(as_uuid=True), ForeignKey("users.id"))
user = relationship("UserInDB", back_populates="transcribes")
created_at = Column(DateTime(timezone=True), server_default=func.now())
def __init__(self, user_id, text, audio_duration):
self.text = text
self.audio_duration = audio_duration
self.user_id = user_id
class TranscribeController:
TranscibeInDB = TranscibeInDB
def __init__(self, database):
self.db = database
def create(self, user_id: UUID, text: str, duration: int):
try:
self.user_id = user_id
self.text = text
self.audio_duration = duration
self.transcribe_data = TranscibeInDB(
user_id=self.user_id, text=self.text, audio_duration=self.audio_duration
)
self.db.add(self.transcribe_data)
self.db.commit()
self.db.refresh(self.transcribe_data)
except Exception as e:
self.db.rollback()
raise e