o
    i1                     @   s   d dl mZ d dlT d dlT d dlT d dlT d dlmZ d dlm	Z	 d dl
mZ d dlZd dlZd dlmZ d dlmZ G d	d
 d
ZG dd dejZG dd dZG dd dejZG dd dejZG dd dZG dd dejZG dd dejZdS )    )render)*)generics)Image)ContentFileN)File)JsonResponsec                   @   s   e Zd Zdd ZdS )ResizeImagec                 C   s|   d }t j|rt|d}t|}|d ur<t|}|dtj}t	 }|j
|dd |d t| |jd}|S d S )Nrb)d   r   PNG)formatr   )name)ospathexistsopenr   r   resizeLANCZOSioBytesIOsaveseekr   readr   )selffilePath
djangoFilefimgbufferresized_file r!   X/var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/mama_care_api/setup/views.pyresizeImage   s   


zResizeImage.resizeImageN)__name__
__module____qualname__r#   r!   r!   r!   r"   r	      s    r	   c                   @   s*   e Zd ZegZdd Zdd Zdd ZdS )ToolsInitialc                 C     t td ddd}t|}|d }|d }|D ]}t |d< t |d< t|d	}| r|  d
|j	v r|d }|D ]"}|j	d
 |d< t |d< t |d< t
|d	}| ra|  q?|d }	|	D ]P}
|j	d
 |
d< t |
d< t |
d< t|
d	}| r|  d
|j	v r|
d }|D ]"}|j	d
 |d< t |d< t |d< t|d	}| r|  qqhqW d    d S 1 sw   Y  d S )Nz"/add_data_json/pregnancy_care.jsonrutf-8encodingpregnancy_care
categoriescreatedDateupdatedDatedataidlanguageListpregnancyCareCategoryIditemListpregnancyCareItemId)r   
MEDIA_ROOTjsonloaddatetimenowPregnancyCareCategorySerializeris_validr   r2   'PregnancyCareCategoryLanguageSerializerPregnancyCareItemSerializer#PregnancyCareItemLanguageSerializerr   filejsonDatacategoryMapListcategoryMapcategorySerializercategoryLanguageMapListcategoryLanguageMapcategoryLanguageSerializeritemMapListitemMapitemSerializeritemLanguageMapListitemLanguageMapitemLanguageSerializerr!   r!   r"   readPregnancyCare.   V   







"zToolsInitial.readPregnancyCarec                 C   r(   )Nz&/add_data_json/pregnancy_shopping.jsonr)   r*   r+   pregnancy_shoppingr.   r/   r0   r1   r3   r4   pregnancyShoppingCategoryIdr6   pregnancyShoppingItemId)r   r8   r9   r:   r;   r<   #PregnancyShoppingCategorySerializerr>   r   r2   +PregnancyShoppingCategoryLanguageSerializerPregnancyShoppingItemSerializer'PregnancyShoppingItemLanguageSerializerrB   r!   r!   r"   readPregnancyShoppingZ   rR   z"ToolsInitial.readPregnancyShoppingc                 O   s"   |    |   tdddddS NT 	isSuccesserrorFsafe)rQ   rZ   r   r   requestargskwargsr!   r!   r"   post   s   zToolsInitial.postN)r$   r%   r&   APIKeyAuthenticationauthentication_classesrQ   rZ   rf   r!   r!   r!   r"   r'   +   s
    ,,r'   c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )MonthLyTipDatac                 C   s   |d t  t  d}t|d}| rL|  d|jv rN| ||jd dd | ||jd dd | ||jd dd | ||jd dd d S d S d S )	Nmonth)monthNumberr/   r0   r1   r3   en   ar   )r;   r<   MonthlyTipSerializerr>   r   r2   saveMonthlyTipLanguagesaveTip)r   current
monthlyTipmonthlyTipSerr!   r!   r"   saveMonthLyTip   s   

zMonthLyTipData.saveMonthLyTipc                 C   sl   d|d|  d|d|  d|d|  dt  dt  d	|t|i}t|d
}| r4|  d|jv r4dS dS )Ntitletitle_descriptiontext_inspirationinspiration_r/   r0   monthlyTipIdr1   r3   TF)r;   r<   languageKeyMonthlyTipLanguageSerializerr>   r   r2   )r   rs   r}   langlangIdmonthlyTipLanguagemonthlyTipLanguageSerr!   r!   r"   rq      s   
	
z%MonthLyTipData.saveMonthlyTipLanguagec                 C   sr   d| |v r5|d|  D ]*}t  t  |d}t|d}| r4|  d|jv r4| ||jd | qd S d S )Ntips_)r/   r0   r}   r1   r3   )r;   r<   TipSerializerr>   r   r2   saveTipLanguage)r   rs   r}   r   r   selectedtiptipSerr!   r!   r"   rr      s   

zMonthLyTipData.saveTipc              
   C   sL   d|dt  dt  d|t|i}t|d}| r$|  d|jv r$dS dS )	Nry   r/   r0   tipIdr1   r3   TF)r;   r<   r~   TipLanguageSerializerr>   r   r2   )r   ry   r   r   tipLanguagetipLanguageSerr!   r!   r"   r      s   

zMonthLyTipData.saveTipLanguagec                 C   sV   t td ddd}t|}|D ]}| | qW d    d S 1 s$w   Y  d S )Nz /add_data_json/monthly_tips.jsonr)   r*   r+   )r   r8   r9   r:   rv   )r   rC   rD   	monthTipsr!   r!   r"   readData   s   

"zMonthLyTipData.readDataN)r$   r%   r&   rv   rq   rr   r   r   r!   r!   r!   r"   ri      s    ri   c                   @      e Zd ZegZg Zdd ZdS )MonthlyTipDataInitialc                 O       t  }|  tdddddS r[   )ri   r   r   r   rc   rd   re   r2   r!   r!   r"   rf         zMonthlyTipDataInitial.postNr$   r%   r&   rg   rh   querysetrf   r!   r!   r!   r"   r          r   c                   @   s"   e Zd ZegZdd Zdd ZdS )
FAQInitialc                 C   s  t td ddd}t|}|d }|D ]}g }|d D ]0}|t t d|d |d	 dd
t t d|d |d ddt t dgd qt t |d dd
t t d|d ddt t dg|d}t|d}| r|	  d|j
v r|d D ]}|j
d |d< t|d}	|	 r|		  q|d D ]6}
|j
d |
d< t|
d}| r|	  d|j
v r|
d D ]}|j
d |d< t|d}| r|	  qqqW d    d S 1 sw   Y  d S )Nz/add_data_json/faq.jsonr)   r*   r+   faq	questionsq_ena_enrm   )questionanswerfaqId
languageIdr/   r0   q_ara_arro   )r/   r0   faqCategoryIdr4   category_en)rw   r   r   r/   r0   category_ar)r/   r0   r4   questionListr1   r3   r4   r   r   r   )r   r8   r9   r:   appendr;   r<   FAQCategorySerializerr>   r   r2   FAQCategoryLanguageSerializerFAQSerializerFAQLanguageSerializer)r   rC   rD   r2   	qaMapListqafaqCategoryMapfaqCategorySerfaqCategoryLangMapfaqCategoryLangSerfaqMapfaqSerfaqLanguageMapfaqLanguageSerr!   r!   r"   r      s   

	





"zFAQInitial.readDatac                 O   s   |    tdddddS r[   )r   r   rb   r!   r!   r"   rf   2  s   zFAQInitial.postN)r$   r%   r&   rg   rh   r   rf   r!   r!   r!   r"   r      s    Or   c                   @   s|   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd ZdS )PregnancyDatac                 C   sP  t d |d  }d }t }||}|d dt|d  |d |d |t t d}t|d}| r9|  d|j	v r|j	d d	kr| 
|d
 |j	d dd}| 
|d
 |j	d dd}| |d |j	d }	| |d |j	d }
| |d |j	d }| |d |j	d t d d t|d  d }|r|r|	r|
r|r|rdS dS )N/imageweekweek_	trimester)r3   keyName
weekNumberr   r   r/   r0   r1   r3   r   fetal_developmentrl   rm   rn   ro   symptoms	checklist	nutrition	baby_size/add_baby_size/z.pngTF)r8   r	   r#   strr;   r<   PregnancyWeekDetailSerializerr>   r   r2   saveWeekLanguagesaveSymptomListsaveCheckListsaveNutritionListsaveBabySize)r   rs   r   resizedFiler#   r   selectedServal1val2val3val4val5val6r!   r!   r"   saveWeek9  sX   

	

	zPregnancyData.saveWeekc           	   
   C   v   d}d}d|| dt  dt  d|t|i}t|d}| r3|  d|jv r3|jd dk r3|d	 }|dkr9d
}|S )NFr   fetalDevelopmentr/   r0   pregnancyWeekIdr1   r3   rm   T)r;   r<   r~   PregnancyWeekLanguageSerializerr>   r   r2   )	r   rs   weekIdlangKeyr   isCheck
countErrorweekLanguager   r!   r!   r"   r   g  s"   

zPregnancyData.saveWeekLanguagec                 C   T   |d }|d }|  |  kr&td|  dD ]}| || || | qd S d S Nrl   rn   r   rm   )__len__rangesaveSymptomr   rs   r   enListarListir!   r!   r"   r   }     zPregnancyData.saveSymptomListc                 C   x   |t  t  d}t|d}| r:|  d|jv r:| ||jd d}| ||jd d}|dkr:|dkr:dS dS N)r   r/   r0   r1   r3   rm   ro   TF)r;   r<   PregnancySymptomSerializerr>   r   r2   saveSymptomLanguage)r   descriptionENdescriptionARr   symptomr   r   r   r!   r!   r"   r     "   

zPregnancyData.saveSymptomc                 C   `   d}d}|t  t  ||d}t|d}| r(|  |jd dk r(|d }|dkr.d}|S )NFr   )ry   r/   r0   pregnancySymptomIdr   r1   r3   rm   T)r;   r<   "PregnancySymptomLanguageSerializerr>   r   r2   )r   ry   	symptomIdr   r   r   symptomLanguager   r!   r!   r"   r         
z!PregnancyData.saveSymptomLanguagec                 C   r   r   )r   r   saveCheckItemr   r!   r!   r"   r     r   zPregnancyData.saveCheckListc                 C   r   r   )r;   r<   PregnancyCheckListSerializerr>   r   r2   saveCheckItemLanguage)r   r   r   r   r   r   r   r   r!   r!   r"   r     r   zPregnancyData.saveCheckItemc                 C   r   )NFr   )ry   r/   r0   pregnancyCheckListIdr   r1   r3   rm   T)r;   r<   $PregnancyCheckListLanguageSerializerr>   r   r2   )r   rs   r   r   r   r   checkListLanguager   r!   r!   r"   r     r   z#PregnancyData.saveCheckItemLanguagec                 C   r   r   )r   r   saveNutritionr   r!   r!   r"   r     r   zPregnancyData.saveNutritionListc                 C   r   r   )r;   r<   PregnancyNutritionSerializerr>   r   r2   saveNutritionLanguage)r   r   r   r   r   r   r   r   r!   r!   r"   r     r   zPregnancyData.saveNutritionc                 C   r   )NFr   )ry   r/   r0   pregnancyNutritionIdr   r1   r3   rm   T)r;   r<   $PregnancyNutritionLanguageSerializerr>   r   r2   )r   rs   r   r   r   r   nutritionLanguager   r!   r!   r"   r     s    
z#PregnancyData.saveNutritionLanguagec                 C   s   |}d }d }t  }tj|r||}ntd d }||}dt| ||t t d}t	|d}	|	
 rb|	  d|	jv rb| ||	jd dd}
| ||	jd d	d
}|
dkrb|dkrbdS dS )Nr   z
week_2.pngr   )r   r   r   r/   r0   r1   r3   rl   rm   rn   ro   TF)r	   r   r   r   r#   r8   r   r;   r<   !PregnancyBabySizeDetailSerializerr>   r   r2   saveBabySizeLanguage)r   rs   r   	imagePathr   r   r   r#   babySizer   r   r   r!   r!   r"   r     s6   



zPregnancyData.saveBabySizec           	   
   C   r   )NFr   ry   r/   r0   pregnancyBabySizeIdr1   r3   rm   T)r;   r<   r~   #PregnancyBabySizeLanguageSerializerr>   r   r2   )	r   rs   
babySizeIdr   r   r   r   r   r   r!   r!   r"   r  3  s"   

z"PregnancyData.saveBabySizeLanguagec                 C   sr   t td ddd&}t|}d|v r|d D ]}| | qW d    d S W d    d S 1 s2w   Y  d S )Nz&/add_data_json/pregnancy_weeks_v3.jsonr)   r*   r+   weeks)r   r8   r9   r:   r   )r   rC   rD   r   r!   r!   r"   r   I  s   

"zPregnancyData.readDataN)r$   r%   r&   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r!   r!   r!   r"   r   7  s    ."r   c                   @   r   )PregnancyDataInitialc                 O   r   r[   )r   r   r   r   r!   r!   r"   rf   W  r   zPregnancyDataInitial.postNr   r!   r!   r!   r"   r
  S  r   r
  c                   @   s~   e Zd ZegZg Zdd Zdd Zdd Zdd Z	d	d
 Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )SetupInitialc                 C   F   d}|}|D ]}t |d}| r|  q|d }q|dkr!dS dS Nr   r1   rm   TF)TokenTypeSerializerr>   r   )r   rD   r   dataListr   tokenTypeSerializerr!   r!   r"   addTokenTypeListc     


zSetupInitial.addTokenTypeListc                 C   r  r  )LanguageSerializerr>   r   )r   rD   r   r  r   languageSerializerr!   r!   r"   addLanguageListu  r  zSetupInitial.addLanguageListc           	      C      d}|}|D ]L}t |d}| rN|  d|jv rI|d D ])}i }|d |d< |jd |d< |d |d< t|d}| rC|  q|d }qq|d }q|d }q|dkrYd	S d
S )Nr   r1   r3   r4   r   childTypeIdr   rm   TF)ChildTypeSerializerr>   r   r2   ChildTypeLanguageSerializer)	r   rD   r   r  r   childTypeSerializerjtempchildTypeLanguageSerializerr!   r!   r"   addChildTypeList  s0   





zSetupInitial.addChildTypeListc           	      C   r  )Nr   r1   r3   r4   r   genderIdr   rm   TF)GenderSerializerr>   r   r2   GenderLanguageSerializer)	r   rD   r   r  r   genderSerializerr  r  genderLanguageSerializerr!   r!   r"   addGenderList  s,   






zSetupInitial.addGenderListc                 C   s   d}|}|D ]n}t d |d  |d< tj|d r)t|d d}t|}||d< t|dd}| rp|  d|j	v rk|d	 D ])}i }	|d
 |	d
< |j	d |	d< |d |	d< t
|	d}
|
 re|
  q@|d }q@q|d }q|d }q|dkr{dS dS )Nr   r   r  r
   r   T)r2   partialr3   r4   r   symptomTypeIdr   r1   rm   F)r8   r   r   r   r   r   SymptomTypeSerializerr>   r   r2   SymptomTypeLanguageSerializer)r   rD   r   r  r   r   r   symptomTypeSerializerr  r  symptomTypeLanguageSerializerr!   r!   r"   addSymptomList  s:   




zSetupInitial.addSymptomListc           	      C   s   d}|}|D ]R}t |d}| rT|  d|jv rO|d D ]/}i }|d |d< |d |d< |jd |d< |d |d< t|d}| rI|  q|d	 }qq|d	 }q|d	 }q|dkr_d
S dS )Nr   r1   r3   r4   r   ry   kickTrackerStatusIdr   rm   TF)KickTrackerStatusSerializerr>   r   r2   #KickTrackerStatusLanguageSerializer)	r   rD   r   r  r   kickTrackerStatusSerializerr  r  #kickTrackerStatusLanguageSerializerr!   r!   r"   addKickTrackerStatusList  s4   





z%SetupInitial.addKickTrackerStatusListc                 C   s  |}|D ]}t |d}| r|  d|jv r|d D ]}|jd |d< t|d}| r2|  q|d D ]N}|jd |d< t|d}| r|  d|jv r|d D ]}	|jd |	d< t|	d}
|
 rl|
  qV|d }|jd |d< t|d}| r|  q7qdS )	Nr1   r3   r4   bmiCaseTypeIdcaseList	bmiCaseId
weightGainT)BMICaseTypeSerializerr>   r   r2   BMICaseTypeLanguageSerializerBMICaseSerializerBMICaseLanguageSerializerBMICaseWeightGainSerializer)r   rD   
bmiMapList
bmiMapCasebmiCaseTypeSerializerbmiCaseTypeLanguagebmiCaseTypeLanguageSerializerbmiCasebmiCaseSerializerbmiCaseLanguagebmiCaseLanguageSerializerr5  bmiCaseWeightGainSerializerr!   r!   r"   addBMICaseList  sJ   



zSetupInitial.addBMICaseListc           	      C   s   d}|}|D ]X}t  |d< t  |d< t|d}| rZ|  d|jv rU|d D ])}i }|d |d< |jd |d< |d	 |d	< t|d}| rO|  q*|d
 }q*q|d
 }q|d
 }q|dkredS dS )Nr   r/   r0   r1   r3   r4   r   calculationMethodIdr   rm   TF)r;   r<   CalculationMethodSerializerr>   r   r2   #CalculationMethodLanguageSerializer)	r   rD   r   r  r   calculateMethodSerializerr  r  #calculationMethodLanguageSerializerr!   r!   r"   addCalculationMethodListF  s6   





z%SetupInitial.addCalculationMethodListc                 C   s^   |}d}|D ] }t  |d< t  |d< t|d}| r"|  q|d }q|dkr-dS dS )Nr   r/   r0   r1   rm   TF)r;   r<   DeviceOSTypeSerializerr>   r   )r   rD   r  r   r   deviceOSTypeSerializerr!   r!   r"   addDeviceOSTypeListl  s   


z SetupInitial.addDeviceOSTypeListc           	      C   s   d}|}|D ]j}t  |d< t  |d< t|d}| rl|  d|jv rg|d D ];}i }|d |d< |d |d< t  |d< t  |d< |jd |d	< |d
 |d
< t|d}| ra|  q*|d }q*q|d }q|d }q|dkrwdS dS )Nr   r/   r0   r1   r3   r4   rw   ry   checkUpStatusIdr   rm   TF)r;   r<   CheckUpStatusSerializerr>   r   r2   CheckUpStatusLanguageSerializer)	r   rD   r   r  r   checkUpStatusSerializerr  r  checkUpStatusLanguageSerializerr!   r!   r"   addCheckUpStatusList}  s<   





z!SetupInitial.addCheckUpStatusListc                 C   s  d}|}|D ]}t  |d< t  |d< t|d}| r|  d|jv r|d D ];}i }|d |d< |d |d< t  |d< t  |d< |jd |d	< |d
 |d
< t|d}| ra|  q*|d }q*|d D ]c}i }|d |d< |d |d< |jd |d	< t|d}	|	 r|	  d|	jv r|d D ]5}
i }|
d |d< t  |d< t  |d< |	jd |d< |
d
 |d
< t|d}| r|  q|d }qqjq|d }q|d }q|dkrdS dS )Nr   r/   r0   r1   r3   r4   rw   ry   subscriptionPlanIdr   rm   
detailListsubscriptionPlanDetailIdTF)	r;   r<   SubscriptionPlanSerializerr>   r   r2   "SubscriptionPlanLanguageSerializer SubscriptionPlanDetailSerializer(SubscriptionPlanDetailLanguageSerializer)r   rD   r   r  r   subscriptionPlanSerializerr  r  "subscriptionPlanLanguageSerializer subscriptionPlanDetailSerializersj(subscriptionPlanDetailLanguageSerializerr!   r!   r"   addSubscriptionPlanList  sp   









z$SetupInitial.addSubscriptionPlanListc                 C   sf   t jjdd}tdd|t t d}|  |jd ur1tdddt t |d}|  d	S d
S )Nrm   )r3   z+201019340601123456)phonepasswordr   r/   r0   Test1ztest_1@gmail.com)	firstNamelastNameemailr/   r0   parentIdTF)	LanguageobjectsgetParentr;   r<   r   r3   ParentDetail)r   r   parentparentDetailr!   r!   r"   	addParent  s*   
zSetupInitial.addParentc                 O   sB  d }t td ddd}t|}W d    n1 sw   Y  |d ur|d }| |d }|r:| |d }n
tdd	d
dddS |rN| |d }n
tddd
dddS |rb| |d }n
tddd
dddS |rv| 	|d }n
tddd
dddS |r| 
|d }n
tddd
dddS |r| |d }n
tddd
dddS |r| |d }n
tddd
dddS |r| |d }n
tddd
dddS |r| |d }n
tddd
dddS |r| |d }n
tddd
dddS |r|  }n
tddd
dddS |dkrtdd d
dddS td!d"d
dd#S )$Nz/add_data_json/basic_data.jsonr)   r*   r+   setup_initial_seedtokenTypeListr4   FzToken Types list is not addedr]   i  )ra   statuschildTypeListzLanguage list is not added
genderListzChild Type list is not addedsymptomTypeListzGender list is not addedkickTrackerStatusListzSymptom Types list is not addedbmiCaseTypeListzTrack Status list is not addedcalculationMethodListzBMI Case list is not addeddeviceOSTypeListz$Calculation method list is not addedpregnancy_vital_rangesz Checkup status list is not addedsubscription_plansz#Subscription Plan list is not addedz Device OS Type List is not AddedzCan not add ParentTr\   r`   )r   r8   r9   r:   r  r  r   r  r$  r+  r1  rE  rK  rN  rT  ra  rq  )r   rc   rd   re   rD   rC   isAddedr!   r!   r"   rf     s   



zSetupInitial.postN)r$   r%   r&   rg   rh   r   r  r  r  r$  r+  r1  rE  rK  rN  rT  ra  rq  rf   r!   r!   r!   r"   r  ^  s     " )%/&(Er  )django.shortcutsr   basic.modelsbasic.serializerspregnancy_tools.serializerscommon.viewsrest_frameworkr   PILr   django.core.files.baser   r   r9   django.core.filesr   django.httpr   r	   GenericAPIViewr'   ri   r   r   r   r
  r  r!   r!   r!   r"   <module>   s,    aJ
W  