
    Lhi                         d dl Z d dlZd dlmZ d dlmZmZmZmZmZm	Z	m
Z
mZ d dlmZmZ d dlmZ d dlZdZ ee      Z eed      Z e       Z G d	 d
e      Z G d dej                        Z G d de      Zd Zy)    N)datetime)create_engineColumnIntegerStringJSONDateTimeTextEnum)create_async_engineasync_sessionmaker)declarative_basezsqlite+aiosqlite:///agents.dbF)expire_on_commitc                       e Zd ZdZ eedd      Z eeddd      Z eed      Z	 eed      Z
 eed      Z eed      Zy)AgentagentsTprimary_keyindexF)uniquer   nullabler   N)__name__
__module____qualname____tablename__r   r   idr   namemodelvoiceinstructionsr   turn_detection_settings     /app/database.pyr   r      sV    M	T	6B&TEBD6E*E6E*E&51L$TE:r$   r   c                       e Zd ZdZdZdZy)
CallStatus	initiated	completedfailedN)r   r   r   	INITIATED	COMPLETEDFAILEDr#   r$   r%   r'   r'      s    IIFr$   r'   c                       e Zd ZdZ eedd      Z eed      Z eed      Z	 ee
ej                        Z ee
d      Z e ee      ej"                        Z eed      Z eed      Zy)CallSessioncall_sessionsTr   )r   )defaultr   N)r   r   r   r   r   r   r   r   session_id_openai
agent_namer	   r   utcnow
start_timeend_timer   r'   r+   statusr
   
transcriptcombined_audio_pathr#   r$   r%   r/   r/   "   sz    #M	T	6BvT2d+J(//:Jh.HD$j.B.BCFt,J $7r$   r/   c                  ,  K   t         j                         4 d {   } | j                  t        j                  j
                         d {    d d d       d {    t               4 d {   }ddlm} |j                   |t              j                  t        j                  dk(               d {   }|j                         nt        d       t        dddddd	d
ddd      }t        ddddddd
ddd      }|j                  ||g       |j!                          d {    t        d       nt        d       d d d       d {    y 7 <7 7 # 1 d {  7  sw Y   xY w7 7 7 P7 +# 1 d {  7  sw Y   y xY ww)Nr   )selectr1   uZ   База данных пуста. Создаем агентов по умолчанию...zgpt-4o-realtime-previewmarinux   Ты дружелюбный русскоязычный ассистент. Отвечай кратко и по делу.
server_vadg      ?i,  iX  T)type	thresholdprefix_padding_mssilence_duration_mscreate_response)r   r   r    r!   r"   salesalloyu   Ты менеджер по продажам. Выясни потребности клиента и предложи товар.g333333?i   u1   Агенты 'default' и 'sales' созданы.u>   База данных уже инициализирована.)enginebeginrun_syncBasemetadata
create_allasync_sessionsqlalchemy.futurer;   executer   wherer   scalar_one_or_noneprintadd_allcommit)connsessionr;   resultdefault_agentsales_agents         r%   init_dbrX   /   sW    ||~~mmDMM44555 ~ ',ve}':':5::;R'STT$$&.no!/ X(!$),+.'+)M  / _(!$),+.'+)K OO]K89.."""EFRSK 	 5 ~~~  U> #E s   FEF-E EE FEF/E60F3AE?8E99A1E?*E;+E?FE=FE F E3&E)'E3.	F9E?;E?=F?FFFF)asynciojsonr   
sqlalchemyr   r   r   r   r   r	   r
   r   sqlalchemy.ext.asyncior   r   sqlalchemy.ormr   enumDATABASE_URLrE   rK   rH   r   r'   r/   rX   r#   r$   r%   <module>r`      su       Y Y Y J +  /	\	*"6EB;D ; 
	8$ 	8*Tr$   