o
    Bi                     @   s  d dl Z d dl m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j	Z
G d	d
 d
ej	ZG dd dej	ZG dd dej	ZG dd dej	ZG dd dej	ZG dd dej	ZG dd dej	ZG dd dej	ZG dd dej	ZG dd dej	ZG dd dejZG dd  d ej	ZG d!d" d"ej	ZG d#d$ d$ej	ZG d%d& d&ej	ZG d'd( d(ej	ZG d)d* d*ej	ZdS )+    N)	timedelta)transaction)timezone)serializers)*c                   @      e Zd ZG dd dZdS )DeviceGetSerializerc                   @      e Zd ZeZdZdS )zDeviceGetSerializer.Meta__all__N__name__
__module____qualname__Devicemodelfields r   r   -/var/www/html/premium_crap/api/serializers.pyMeta       r   Nr   r   r   r   r   r   r   r   r          r   c                   @   "   e Zd ZG dd dZdd ZdS )DeviceSerializerc                   @      e Zd ZeZg dZdS )zDeviceSerializer.Meta)pkdeviceToken
deviceTypeNr   r   r   r   r   r          r   c                 C   s^   t jjd	i |\}}|r-tjjtjd }|r-t	 }t
jj||dddddd|d d
 |S )
N)type
free_tokenfree_product
free_orderfree_original
free_appler   )
deviceplanpurchaseToken	productIdorderIdoriginalTransactionIdappleTransactionIdamountstartAtexpireAtr   )r   objectsget_or_createPlanfilterPlanTypeFREE_ACCESSfirstr   nowTransactioncreate)selfvalidated_datar%   createdr&   current_timer   r   r   r8      s"   
zDeviceSerializer.createNr   r   r   r   r8   r   r   r   r   r          r   c                   @   &   e Zd ZejddZG dd dZdS )CategorySerializerT	read_onlyc                   @   r	   )zCategorySerializer.Metar
   N)r   r   r   Categoryr   r   r   r   r   r   r   8   r   r   Nr   r   r   r   BooleanField
isUnlockedr   r   r   r   r   r@   5       r@   c                   @   r?   )CraptitudeSerializerTrA   c                   @   r	   )zCraptitudeSerializer.Metar
   N)r   r   r   
Craptituder   r   r   r   r   r   r   @   r   r   NrD   r   r   r   r   rH   =   rG   rH   c                   @   r   )TeamSerializerc                   @   r	   )zTeamSerializer.Metar
   N)r   r   r   Teamr   r   r   r   r   r   r   F   r   r   Nr   r   r   r   r   rJ   E   r   rJ   c                   @   r   )GameSessionSerializerc                   @   r	   )zGameSessionSerializer.Metar
   N)r   r   r   GameSessionr   r   r   r   r   r   r   L   r   r   c                 C   s   t jjdi |\}}|S )Nr   )rM   r/   r0   )r9   r:   instanceobjr   r   r   r8   P   s   zGameSessionSerializer.createNr=   r   r   r   r   rL   K   r>   rL   c                   @   r   )PlayerCreateSerializerc                   @      e Zd ZeZg dZdgZdS )zPlayerCreateSerializer.Meta)r   sessionteamnamerR   N)r   r   r   Playerr   r   read_only_fieldsr   r   r   r   r   V       
r   Nr   r   r   r   r   rP   U   r   rP   c                   @   r   )SentenceCreateSerializerc                   @   rQ   )zSentenceCreateSerializer.Meta)r   rR   rS   playertextrR   N)r   r   r   Sentencer   r   rV   r   r   r   r   r   ]   rW   r   Nr   r   r   r   r   rX   \   r   rX   c                   @   s(   e Zd ZejdddZG dd dZdS )SentenceGetSerializerTz	team.name)rB   sourcec                   @   r   )zSentenceGetSerializer.Meta)r   rS   rT   rZ   N)r   r   r   r[   r   r   r   r   r   r   r   f   r   r   N)r   r   r   r   	CharFieldrT   r   r   r   r   r   r\   c   s    r\   c                   @   r   )RatingCreateSerializerc                   @   rQ   )zRatingCreateSerializer.Metar   rR   sentencediaperScoredumpsterScorerR   N)r   r   r   Ratingr   r   rV   r   r   r   r   r   l   rW   r   Nr   r   r   r   r   r_   k   r   r_   c                   @   s&   e Zd ZedddZG dd dZdS )RatingGetSerializerT)manyrB   c                   @   r   )zRatingGetSerializer.Metar`   N)r   r   r   rd   r   r   r   r   r   r   r   u   r   r   N)r   r   r   r\   ra   r   r   r   r   r   re   r   rG   re   c                   @   s   e Zd ZejejddZdS )OptionsSerializerF)choicesrequiredN)r   r   r   r   ChoiceFieldOptionChoicerh   optionr   r   r   r   rg   z   s    rg   c                   @   r?   )PlanSerializerTrA   c                   @   r	   )zPlanSerializer.Metar
   N)r   r   r   r1   r   r   r   r   r   r   r      r   r   N)r   r   r   r   rE   isActiver   r   r   r   r   rm   ~   rG   rm   c                   @   s"   e Zd Ze ZG dd dZdS )AndroidPurchaseSerializerc                   @   r   )zAndroidPurchaseSerializer.Meta)idr%   r(   r)   r'   r   Nr   r   r   AndroidTransactionr   r   r   r   r   r   r      r   r   N)r   r   r   r   r^   r   r   r   r   r   r   ro      s    ro   c                   @   r   )ApplePurchaseSerializerc                   @   r   )zApplePurchaseSerializer.Meta)rp   r%   r(   r+   r*   appleReceiptNr   r   r   AppleTransactionr   r   r   r   r   r   r      r   r   Nr   r   r   r   r   rs      r   rs   c                   @   r   )AndroidPlanRestoreSerializerc                   @   r   )z!AndroidPlanRestoreSerializer.Meta)rp   r%   r'   r(   Nrq   r   r   r   r   r      r   r   Nr   r   r   r   r   rw      r   rw   c                   @   r?   )ApplePlanRestoreSerializerFrA   c                   @   r   )zApplePlanRestoreSerializer.Meta)rp   r%   r(   r+   r*   rt   	isNewUserNru   r   r   r   r   r      r   r   N)r   r   r   r   rE   ry   r   r   r   r   r   rx      rG   rx   c                   @   r   )TransactionSerializerc                   @   r	   )zTransactionSerializer.Metar
   N)r   r   r   r7   r   r   r   r   r   r   r      r   r   Nr   r   r   r   r   rz      r   rz   )datetimer   	django.dbr   django.utilsr   rest_frameworkr   
api.modelsModelSerializerr   r   r@   rH   rJ   rL   rP   rX   r\   r_   re   
Serializerrg   rm   ro   rs   rw   rx   rz   r   r   r   r   <module>   s0    $
	