
    ,/i	                     R    d dl mZmZ d dlmZ d dlmZmZ d dlm	Z	  G d de      Z
y)    )BaseCommandCommandError)settings)	AdsManualAds)AdvancedDjangoDataAnalyzerc                       e Zd ZdZd Zd Zy)CommandztGenerate an advanced data quality visual analysis for Ads/AdsManual and export an HTML dashboard (and optional CSV).c                     |j                  dddgdd       |j                  dddd	
       |j                  dddd
       |j                  ddd d
       y )Nz--model	adsmanualadsz+Which model to analyze (default: adsmanual))choicesdefaulthelpz
--group-bygroup_byestate_typez:Model field to group by in analysis (default: estate_type))destr   r   z--html	html_filez!advanced_data_quality_report.htmlzAOutput HTML filename (default: advanced_data_quality_report.html)z--csvcsv_filez2Optional CSV export filename (disabled by default))add_argument)selfparsers     O/var/www/extractly/manual_agregator/management/commands/analyze_data_quality.pyadd_argumentszCommand.add_arguments   s     %(>	 	 	
 	!M	 	 	
 	7T	 	 	
 	E	 	 	
    c           	      v   |d   j                         }|d   j                         xs d}|d   }|d   }|dk(  rt        nt        }| j                  j                  | j                  j                  d|j                   d|j                  j                   d	             | j                  j                  | j                  j                  d
|              	 t        ||      }|j                          |j                          |j                  |       |r|j                  |       | j                  j                  | j                  j!                  d|              |r8| j                  j                  | j                  j!                  d|              y y # t"        $ r}	t%        d|	       d }	~	ww xY w)Nmodelr   r   r   r   r   zAnalyzing model: z	 (table: )zGrouping by: )model_classestate_type_field)filenameu   ✅ Report generated: u   ✅ CSV exported: zAnalysis failed: )lowerstripr   r   stdoutwritestyleNOTICE__name___metadb_tabler   analyze_data_qualitycreate_advanced_visualizationsgenerate_html_reportexport_to_csvSUCCESS	Exceptionr   )
r   argsoptionsmodel_choicer   r   r   	model_clsanalyzerexcs
             r   handlezCommand.handle)   s   w'--/:&,,.?-K(	:&!-!<I#	$**++	 2 239Y__=U=U<VVWX
 	 	$**++mH:,FGH	:1i[cdH))+335))9)=&&&9KKdjj00(4  !!$**"4"4(
3#    	:!23%899	:s   CF 	F8%F33F8N)r(   
__module____qualname__r   r   r7    r   r   r
   r
   	   s    	; 	

4:r   r
   N)django.core.management.baser   r   django.confr   extractly.modelsr   r   *manual_agregator.visual_viewer.data_visualr   r
   r:   r   r   <module>r?      s     A   + R>:k >:r   