o
    hg                     @   sX   d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dl	T G dd deZ
dS )    N)File)BaseCommand)transaction)*c                   @   s   e Zd ZdZdd ZdS )Commandz"Bulk create categories from imagesc              	      s  d t j s| j| jd   d S g }ttj	j
ddd} fddt  D }dd	 }|j|d
 |D ]I}t j |}t j|\}	}
tdd|	}	|	|v rXq;t|d}t|	 d}|jj|t|dd || W d    n1 sw   Y  q;t  tj	| W d    n1 sw   Y  | j| jdt| d g }tj	 D ]}tddD ]}|t||d qqtj	j|dd | j| jdt| d tD ]
}t j	j!|j"d q| j| jdtt j	  d t#j	j!ddddt$j%dd  | j| jd! t&d"t'j(d#t&d"t'j)d#g}t&j	* dkr7t&j	j|dd | j| jd$ d%}t|d&}t+,|}W d    n	1 sYw   Y  |D ]!}|d' }|d( }tj	j-|||.d)d|.d*dd+d,\}}q`| j| jd- d S ).Nzdata/categoryzDirectory not found: descriptionT)flatc                    s&   g | ]}t jt j |r|qS  )ospathisfilejoin).0fbase_dirr	   G/var/www/html/premium_crap/api/management/commands/createdefaultdata.py
<listcomp>   s   & z"Command.handle.<locals>.<listcomp>c                 S   s&   t d| }|rt|dS tdS )Nz(\d+)\.   inf)rematchintgroupfloat)filenamer   r	   r	   r   sort_key   s   z Command.handle.<locals>.sort_key)keyz	^\d+\.\s* rb)r   F)saveu   ✅ Bulk created z categories.r      )categoryroundNumber)ignore_conflictsz craptitudes.)nameu   ✅ Created z teams.zFREE ACCESSr   z?Access to Categories 1-5 Basic features No credit card required   free_access)r%   pricer   unlockCategorytype	productIdu   ✅ Created default free plan.1)versionCode
deviceTypeu   ✅ Data seeded successfully.zdata/prefixes.jsonrr"   
craptitudediaperPrefixdumpsterPrefix)r1   r2   )category_idr#   defaultsu   ✅ Added prefix in craptitude.)/r
   r   existsstdoutwritestyleERRORsetCategoryobjectsvalues_listlistdirsortr   splitextr   subopenupperimager    r   appendr   atomicbulk_createSUCCESSlenallrange
CraptitudeTeamNameTeamcreatevaluePlanPlanTypeFREE_ACCESS
AppVersion
DeviceTypeANDROIDIOScountjsonloadupdate_or_createget)selfargskwargscategories_to_createexisting_namesfilesr   r   	file_pathr   _r   r"   craptitudesijteamVERSION_DATA	json_filedataitemr3   round_numberr0   createdr	   r   r   handle   s   
  &

zCommand.handleN)__name__
__module____qualname__helpro   r	   r	   r	   r   r   
   s    r   )rY   r
   r   django.core.filesr   django.core.management.baser   	django.dbr   
api.modelsr   r	   r	   r	   r   <module>   s    