o
    /i                     @   s   d dl mZ d dlmZmZmZmZmZm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 )    )serializers)ContentsAttachmentsContentVersionContentVersionAttachment
ContentTag
Categoriesc                   @   *   e Zd Ze ZG dd dZdd ZdS )AttachmentSerializerc                   @      e Zd ZeZg dZdS )zAttachmentSerializer.Meta)pknamepath_typesize
is_deletedurlN)__name__
__module____qualname__r   modelfields r   r   A/var/www/html/mfile_papteng_new/webapp/api/fileman/serializers.pyMeta       r   c                 C   s*   | j d}|d u rd S |d|j S )Nrequestz/assets/resources/)contextgetbuild_absolute_urir   )selfobjr   r   r   r   get_url   s   zAttachmentSerializer.get_urlN)r   r   r   r   SerializerMethodFieldr   r   r"   r   r   r   r   r
   	   s    r
   c                   @   s   e Zd ZG dd dZdS )"ContentVersionAttachmentSerializerc                   @   r   )z'ContentVersionAttachmentSerializer.Meta)r   r   r   content_typer   createdN)r   r   r   r   r   r   r   r   r   r   r      r   r   N)r   r   r   r   r   r   r   r   r$      s    r$   c                   @   r	   )ContentVersionSerializerc                   @   r   )zContentVersionSerializer.Meta)r   judul	deskripsistatus_kontenr&   attachmentsN)r   r   r   r   r   r   r   r   r   r   r   "   r   r   c                 C   s   t jj|jd}t|ddjS )N)
pk_versionTmany)r   objectsfilterr   r$   datar    r!   qsr   r   r   get_attachments)   s   z(ContentVersionSerializer.get_attachmentsN)r   r   r   r   r#   r+   r   r4   r   r   r   r   r'      s    r'   c                   @   sj   e Zd Ze Ze Ze Ze Ze Z	G dd dZ
dd Zdd Zdd Zd	d
 Zdd ZdS )ContentSerializerc                   @   s    e Zd ZeZg dZg dZdS )zContentSerializer.Meta)r   r(   r)   r*   r&   updatedpk_categoriescategory
pk_skpd_dgskpdtahun
user_input
attributesr+   versionstags)r   r&   r6   r+   r>   r?   r8   r:   N)r   r   r   r   r   r   read_only_fieldsr   r   r   r   r   6   s    r   c                 C   s$   t jj|jdd}t|d| jdjS )NF)pk_contentsr   T)r.   r   )r   r/   r0   r   r
   r   r1   r2   r   r   r   r4   C   s   z!ContentSerializer.get_attachmentsc                 C   s$   t jj|jdd}t|ddjS )N)rA   z-createdTr-   )r   r/   r0   r   order_byr'   r1   r2   r   r   r   get_versionsG   s   zContentSerializer.get_versionsc                 C   s   dd t jj|ddD S )Nc                 S   s   g | ]}|j jqS r   )tagr   ).0ctr   r   r   
<listcomp>L   s    z.ContentSerializer.get_tags.<locals>.<listcomp>)contentrD   )r   r/   r0   select_relatedr    r!   r   r   r   get_tagsK   s   zContentSerializer.get_tagsc                 C   s   t |jtr
|jjS d S N)
isinstancer7   r   textrJ   r   r   r   get_categoryP   s   zContentSerializer.get_categoryc                 C   s   |j r|j jS d S rL   )r9   urairJ   r   r   r   get_skpdU   s   zContentSerializer.get_skpdN)r   r   r   r   r#   r+   r>   r?   r8   r:   r   r4   rC   rK   rO   rQ   r   r   r   r   r5   /   s    r5   c                   @   sh   e Zd Ze ZejdddZe Ze Z	e Z
ejdddZejdddZeje ddZdS )ContentCreateSerializerFT)requiredallow_blank)childrS   N)r   r   r   r   	CharFieldr(   r)   IntegerFieldr;   r7   r9   r*   r?   	ListField	FileFieldr+   r   r   r   r   rR   \   s    
rR   c                   @   ,   e Zd ZejddZejddZdd ZdS )PdfToDocxSerializerFrS   c                 C   8   | ddv rd |d< | ds| dstd|S Nfile) Nr   z%Harus mengirim file PDF atau URL PDF.r   r   ValidationErrorr    r1   r   r   r   validateo   
   
zPdfToDocxSerializer.validateN	r   r   r   r   rY   r_   URLFieldr   rd   r   r   r   r   r[   k       r[   c                   @   rZ   )PdfToImageSerializerFr\   c                 C   r]   r^   ra   rc   r   r   r   rd   }   re   zPdfToImageSerializer.validateNrf   r   r   r   r   ri   y   rh   ri   c                   @   (   e Zd Zeje dddZdd ZdS )ImagesToPdfSerializerTUpload satu atau lebih gambarrU   rS   	help_textc                 C      |rt |dkrtd|S Nr   z%Harus mengunggah minimal satu gambar.lenr   rb   r    valuer   r   r   validate_images      
z%ImagesToPdfSerializer.validate_imagesNr   r   r   r   rX   
ImageFieldimagesru   r   r   r   r   rk          rk   c                   @   rj   )ImagesToDocxSerializerTrl   rm   c                 C   ro   rp   rq   rs   r   r   r   ru      rv   z&ImagesToDocxSerializer.validate_imagesNrw   r   r   r   r   r{      rz   r{   c                   @   s"   e Zd ZejdddZdd ZdS )DocxToPdfSerializerTzUpload file DOCX)rS   rn   c                 C      |j  dstd|S )N.docxzFile harus berekstensi DOCX.r   lowerendswithr   rb   rs   r   r   r   validate_file   rv   z!DocxToPdfSerializer.validate_fileNr   r   r   r   rY   r_   r   r   r   r   r   r|      s    r|   c                   @   s    e Zd ZejddZdd ZdS )DocxToImageSerializerTr\   c                 C   r}   )Nr~   zFile harus berekstensi .docxr   rs   r   r   r   r      rv   z#DocxToImageSerializer.validate_fileNr   r   r   r   r   r      s    r   N)rest_frameworkr   webapp.models.koleksir   r   r   r   r   r   ModelSerializerr
   r$   r'   r5   
SerializerrR   r[   ri   rk   r{   r|   r   r   r   r   r   <module>   s     -
