o
    bi                      @   sV  d dl Z d dlZd dlmZmZ d dlmZmZmZm	Z	 d dl
mZmZmZmZ e eZeddZdZdZd	Zd
edefddZdedefddZd
edefddZd
edefddZdedefddZdededefddZd
ededefddZ e!ej"dkdefdd Z#e!ej"ekdefd!d"Z$e!ej"%edefd#d$Z&dS )%    N)RouterF)CallbackQueryMessageInlineKeyboardMarkupInlineKeyboardButton)get_user_languageget_language_textget_button_textDATA_DBjobs)namezmenu:button9zjob:	jobs_backlangreturnc              
   C   s   d}z@ddl m} t|}| }|d| f | }|  |r:|d r=t|d 	 r@t|d 	 }W |S W |S W |S W |S  t
y` } ztd|  d|  W Y d}~|S d}~ww )u3   Получает текст кнопки назадu   ⬅️ Назадr   )MENU_DBz+SELECT button9 FROM language WHERE name = ?z get_button9_text error for lang=: N)dbr   sqlite3connectcursorexecutefetchoneclosestrstrip	Exceptionloggererror)r   labelr   conncurrowe r$   @/var/www/www-root/data/www/magazinbotpanel.site/handlers/jobs.pyget_button9_text   s,   
 r&   user_idc              
   C   s   z*t t}| }|d| f | }|  |r(|d r(t|d  W S W dS  t	yH } zt
d|  d|  W Y d}~dS d}~ww )u?   Получает язык пользователя из data.dbz1SELECT user_language FROM users WHERE user_id = ?r   ruz Error getting user language for r   N)r   r   r   r   r   r   r   r   r   r   r   r   )r'   r    r!   r"   r#   r$   r$   r%   get_user_language_from_db    s   
r)   c                 C      t tt| tdggdS )u@   Создает клавиатуру с кнопкой назадtextcallback_datainline_keyboard)r   r   r&   BACK_CBr   r$   r$   r%   build_back_keyboard/      r2   c                 C   r*   )u\   Создает клавиатуру для возврата к списку вакансийr+   r.   )r   r   r&   JOBS_BACK_CBr1   r$   r$   r%   build_jobs_back_keyboard5   r3   r5   languagec              
   C   sv   zt d}| }|d| f | }|  |W S  ty: } ztd|  d|  g W  Y d}~S d}~ww )u[   Получает вакансии для определенного языка из jobs.dbjobs.dbz8SELECT name_jobs, text_jobs FROM jobs WHERE language = ?z Error getting jobs for language r   N)	r   r   r   r   fetchallr   r   r   r   )r6   r    r!   r   r#   r$   r$   r%   get_jobs_by_language;   s   
r9   job_namec                 C   s   z(t d}| }|d| |f | }|  |r&|d |d dW S W dS  tyI } ztd|  d| d	|  W Y d}~dS d}~ww )
uR   Получает детали вакансии по названию и языкуr7   zJSELECT name_jobs, text_jobs FROM jobs WHERE name_jobs = ? AND language = ?r      )r   descriptionNzError getting job details for z in r   )	r   r   r   r   r   r   r   r   r   )r:   r6   r    r!   r"   r#   r$   r$   r%   get_job_detailsI   s    
r=   c                 C   sT   g }|D ]}|d }| t|t | dg q| tt| tdg t|dS )uH   Создает клавиатуру со списком вакансийr   r+   r.   )appendr   JOBS_CB_PREFIXr&   r0   r   )r   r   keyboard_rowsjobr:   r$   r$   r%   build_jobs_keyboard[   s   
rB   zmenu:button5cbc                       | j j}t|}z
| j I dH  W n	 ty   Y nw t|}|s@t|dp)d}| jj|t	|dI dH  |  I dH  dS t|dpFd}t
||}| jj||dI dH  |  I dH  dS )u   
    Открывает список вакансий (button5) с фильтрацией по языку пользователя
    Ntext316   На данный момент вакансий нетreply_markup$   Доступные вакансии:	from_useridr)   messagedeleter   r9   r	   answerr2   rB   rC   r'   user_languager   no_jobs_textrE   keyboardr$   r$   r%   	open_jobsl   $   
rT   c                    rD   )u   
    Возвращает к списку вакансий с фильтрацией по языку пользователя
    NrE   rF   rG   rI   rJ   rP   r$   r$   r%   back_to_jobs_list   rU   rV   c                    s   | j j}t|}| jttd }t||}|s%| jdddI dH  dS z
| j	 I dH  W n	 t
y8   Y nw d|d  d|d  }t|}| jj||d	I dH  |  I dH  dS )
uv   
    Показывает детали вакансии с проверкой языка пользователя
    Nu$   Вакансия не найденаT)
show_alertu   💼 r   z

r<   rG   )rK   rL   r)   datalenr?   r=   rO   rM   rN   r   r5   )rC   r'   rQ   r:   rA   message_textrS   r$   r$   r%   show_job_details   s"   
r[   )'loggingr   aiogramr   r   aiogram.typesr   r   r   r   r   r   r	   r
   r   	getLogger__name__r   routerr0   r?   r4   r   r&   intr)   r2   r5   listr9   dictr=   rB   callback_queryrX   rT   rV   
startswithr[   r$   r$   r$   r%   <module>   s.    

""