| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- from datetime import datetime
- from app.models.db import Base
- from sqlalchemy import Column, Integer, String, DateTime, text
- from pydantic import BaseModel
- from app.errors.base import ParamsError
- class ASRHotword(Base):
- __tablename__ = "asr_hotword"
- id = Column("id", Integer, primary_key=True, autoincrement=True)
- hotword = Column("hotword", String(255), nullable=False, default="")
- weight = Column("weight", Integer, nullable=False, default=0)
- created_at = Column(
- "created_at",
- DateTime(timezone=True),
- nullable=False,
- default=datetime.now,
- server_default=text("CURRENT_TIMESTAMP"),
- )
- updated_at = Column(
- "updated_at",
- DateTime(timezone=True),
- nullable=False,
- default=datetime.now,
- server_default=text("CURRENT_TIMESTAMP"),
- onupdate=datetime.now,
- server_onupdate=text("CURRENT_TIMESTAMP"),
- )
- def to_dict(self):
- return {
- 'id': self.id,
- 'hotword': self.hotword,
- 'weight': self.weight,
- 'created_at': self.created_at.strftime('%Y-%m-%d %H:%M:%S'),
- 'updated_at': self.updated_at.strftime('%Y-%m-%d %H:%M:%S'),
- }
- class ReplaceHotword(Base):
- __tablename__ = "replace_hotword"
- id = Column("id", Integer, primary_key=True, autoincrement=True)
- origin_word = Column("origin_word", String(255), nullable=False, default="")
- hotword = Column("hotword", String(255), nullable=False, default="")
- created_at = Column(
- "created_at",
- DateTime(timezone=True),
- nullable=False,
- default=datetime.now,
- server_default=text("CURRENT_TIMESTAMP"),
- )
- updated_at = Column(
- "updated_at",
- DateTime(timezone=True),
- nullable=False,
- default=datetime.now,
- server_default=text("CURRENT_TIMESTAMP"),
- onupdate=datetime.now,
- server_onupdate=text("CURRENT_TIMESTAMP"),
- )
- def to_dict(self):
- return {
- 'id': self.id,
- 'origin_word': self.origin_word,
- 'hotword': self.hotword,
- 'created_at': self.created_at.strftime('%Y-%m-%d %H:%M:%S'),
- 'updated_at': self.updated_at.strftime('%Y-%m-%d %H:%M:%S'),
- }
- class ASRHotwordModel(BaseModel):
- id : int = 0
- hotword: str = ""
- weight: int = 0
- hotword_list: list = []
- def get_create(self):
- if self.hotword:
- self.hotword = self.hotword.replace(",", ",")
- self.hotword_list = self.hotword.split(",")
- return self
- else:
- raise ParamsError(message="Hotword and weight can't be empty")
-
- def get_update(self):
- if self.id and (self.hotword or self.weight):
- return self
- else:
- raise ParamsError(message="ID and either hotword or weight can't be empty")
-
- def get_delete(self):
- if self.id:
- return self
- else:
- raise ParamsError(message="ID can't be empty")
- class ReplaceHotwordModel(BaseModel):
- id : int = 0
- origin_word: str = ""
- hotword: str = ""
- meeting_id: str = ""
- replace_list: list = []
- def get_create(self):
- if self.replace_list:
- return self
- else:
- raise ParamsError(message="Origin word and hotword can't be empty")
-
- def get_update(self):
- if self.id and (self.origin_word or self.hotword):
- return self
- else:
- raise ParamsError(message="ID and either origin word or hotword can't be empty")
-
- def get_delete(self):
- if self.id:
- return self
- else:
- raise ParamsError(message="ID can't be empty")
|