
    !+i                         d Z ddlZddlmZ ddlmZ ddlmZ  ej                  e	      Z
d Zdedefd	Ze	d
k(  r e       Z ede        yy)zS
Category Mapping Sync Job
Populates category_mapping table from existing products
    N)SessionLocal)Ad)CategoryMappingc            
         t               } 	 | j                  t        j                        j	                         j                         }d}d}|D ]z  \  }|s| j                  t              j                  t        j                  |k(        j                         }|r|dz  }St        |dddddd      }| j                  |       |dz  }| | j                          t        j                  d| d| d       d	||t        |      d
| j                          S # t         $ r.}t        j#                  d|        | j%                           d}~ww xY w# | j                          w xY w)z
    Sync category mappings from existing products.
    Creates entries for all unique ML categories found in products.
    User can then set normalized names and seasonal factors.
    r      N      ?)category_mlcategory_ml_namecategory_normalizedmultiplier_summermultiplier_wintermultiplier_fallmultiplier_springz#[CATEGORY SYNC] Synced categories: z
 created, z	 existingT)successcreatedexistingtotalz[CATEGORY SYNC] Error: )r   queryr   category_namedistinctallr   filterr	   firstaddcommitloggerinfolenclose	Exceptionerrorrollback)db
categoriesr   updatedcat_mlr   mappinges           D/var/www/hypershopcomercio.com.br/hyper-ai/app/jobs/category_sync.pysync_category_mappingr*      sZ    
B1XXb../88:>>@
# 	IV xx077++v5eg  1 &"!%$("%"% #"%G FF7OqLG1	4 			9'*WIU^_` _	
 	
  .qc23

 	
s$   C9D 	E)EEE E"r	   returnc                    ddl m } |sy| j                  t              j                  t        j                  |k(  t        j
                  dk(        j                         }|sy|j                         j                  }|dv rt        |j                  xs d      S |dv rt        |j                  xs d      S |dv rt        |j                  xs d      S t        |j                  xs d      S )zn
    Get seasonal multiplier for a category based on current season.
    Returns 1.0 if no mapping found.
    r   )datetimer   T)   r      )         )         )r-   r   r   r   r	   	is_activer   nowmonthfloatr   r   r   r   )r#   r	   r-   r'   r8   s        r)   get_category_multiplierr:   H   s    
 "hh'..##{2!!T) eg 
  LLN  E
W..5#66	)	W,,344	)	W..5#66 W..5#66    __main__zResult: )__doc__loggingapp.core.databaser   app.models.adr   app.models.product_forecastr   	getLogger__name__r   r*   strr9   r:   resultprint r;   r)   <module>rH      sj     *  7			8	$8v 7S  7U  7F z"$F	HVH
 r;   