
    lh                         d dl mZ d dlmZmZ d dlmZ d dlmZm	Z	 d dl
mZ d dlmZ defdZd	efd
Zd	edefdZd	efdZd	edefdZd	efdZd	efdZd Zd Zd Zd Zd	efdZd	efdZd	efdZy)    )Decimal)Sessionrelationship)Status)JobLog
MatchedLog)	Separator)
WebCrawlerreturnc                     | j                   S N)output_delimiterselfs    ]/var/www/html/wine-match-dev/backend/winematch-backend/src/apps/match/services/web_crawler.pyget_match_input_separatorr      s           dbc                     |j                  t              j                  t        j                  | j                  k(        j	                  t        j
                  j                               j                         S r   )queryr   filtercodeorder_bydate_createddescfirstr   r   s     r   get_latest_jobr      sL    88F""6;;$))#;<EEfFYFYF^F^F`aggiir   c                 D    | j                  |      }|r|j                  S dS )Nr   )r   total_recordsr   r   
latest_jobs      r   get_found_recordsr#      s%    $$R(J'1:##8q8r   c                 D    | j                  |      }|r|j                  S d S r   )r   
date_startr!   s      r   get_latest_runr&      s%    $$R(J$.:  8D8r   c                 f    | j                  |      }|r|j                  t        j                  k(  S dS )NF)r   statusr   RUNNINGr!   s      r   get_proceedr*      s.    $$R(J2<:.G%Gr   c                    |j                  t        j                        j                  | j                  t
        j                  t
        j                        j                  t        j                  dk7        j                  t        j                  j                               j                  d      j                         }|D cg c]  }|d   	 }}|rt        |      t        |      z  S dS c c}w )Nr   r(   validation_statusr      )r   r   r    	filter_byr   r   SUCCESSr   r   r   r   limitallsumlenr   r   logsrvaluess        r   get_average_recordsr9   "   s    
%%&			&..FNN	[	$$)	*	&%%**,	-	r	 	 !!qad!F!(.3v;V$5A5 "s   C-c                 ,   |j                  t        j                        j                  | j                  t
        j                  t
        j                        j                  t        j                  dk7  t        j                  dk7        j                  t        j                  j                               j                  d      j                         }|D cg c]  }t        |d          }}|rt        |      t!        |      z  S t        d      S c c}w )Nr,   r   r.   0)r   r   total_pricesr/   r   r   r0   r   r    r   r   r   r1   r2   r   r3   r4   r5   s        r   get_average_pricesr=   /   s    
$$%			&..FNN	[	##q(&*>*>!*C	D	&%%**,	-	r	 	 &**gadm*F*(.3v;V$@GCL@ +s   Dc                     | j                   xs dj                  d      D cg c],  }|j                         j                         s"t	        |      . c}S c c}w N ,)history_indexessplitstripisdigitintr   is     r   get_list_history_indexesrI   <   A    !117R>>sC[qqwwyGXGXGZCF[[[   #AAc                     | j                   xs dj                  d      D cg c],  }|j                         j                         s"t	        |      . c}S c c}w r?   )keyword_indexesrC   rD   rE   rF   rG   s     r   get_list_keyword_indexesrN   @   rJ   rK   c                     | j                   xs dj                  d      D cg c],  }|j                         j                         s"t	        |      . c}S c c}w r?   )description_indexesrC   rD   rE   rF   rG   s     r   get_list_description_indexesrQ   D   sA    !55;BB3G_q1779K\K\K^CF___rK   c                 h    | j                   r| j                   dk7  r| j                   S | j                  S )N-)history_namer   r   s    r   get_history_file_namerU   H   s/     $ 1 1d6G6G36N4]TXT]T]]r   c                     |j                  t              j                  | j                  d      j	                  t        j
                  j                               j                         S )NFr   process_keywordr   r   r/   r   r   r   r   r   r   s     r   get_latest_history_matchedrZ   L   sE    
			5	9	*))..0	1		r   c                     |j                  t              j                  | j                  d      j	                  t        j
                  j                               j                         S )NTrW   rY   r   s     r   get_latest_keyword_matchedr\   U   sE    
			4	8	*))..0	1		r   c                 h    | j                  t              j                  |      j                         S )N)r   )r   r
   r/   r   )r   r   s     r   get_web_crawlerr^   ^   s(    88J))t)4::<<r   N)decimalr   sqlalchemy.ormr   r   src.apps.match.enumsr   &src.apps.wine.wine_log.models.wine_logr   r   src.utils.enumsr	   'src.apps.web_crawler.models.web_crawlerr
   r   r   rF   r#   r&   boolr*   r9   r=   rI   rN   rQ   rU   rZ   r\   r^    r   r   <module>rg      s     0 ' E % >!y !jW j9 9C 9
9W 9
H' Hd H

6' 
6
A 
A\\`^  = =r   