o
    oi                     @   s`   d dl Z d dlZd dlZd dlmZ dZdd Zdededefd	d
Zdedede	fddZ
dS )    N)datetimezfiles/invoices/_stagingc                 C   s   t j| dd d S )NT)exist_ok)osmakedirs)path r   B/var/www/html/flask_server/apps/wp_invoices/services/file_store.py_ensure_dir   s   r	   datafilenamemimetypec           	      C   s   t  j}tjt|}t| d}d|v r!d|dd 	  }tj|d|p)d }t
|d}||  W d    n1 sBw   Y  ||||t  d d}t
tj|dd	d
d}tj||ddd W d    |S 1 svw   Y  |S )N .originalwbZ)idfolderr   r   saved_atz	meta.jsonwutf-8encodingF   ensure_asciiindent)uuiduuid4hexr   r   joinSTAGING_ROOTr	   splitloweropenwriter   utcnow	isoformatjsondump)	r
   r   r   uidr   extout_pathr   metar   r   r   save_staging
   s,   

r/   r   namepayloadc                 C   sb   t |  tj| | d}t|ddd}tj||ddd W d   |S 1 s*w   Y  |S )	u   
    Guarda un JSON (raw, analysis, etc.) en la carpeta indicada dentro de staging.
    name se usa como nombre de archivo sin extensión.
    z.jsonr   r   r   Fr   r   N)r	   r   r   r!   r%   r)   r*   )r   r0   r1   r   fr   r   r   	save_json!   s   
r3   )r   r   r)   r   r"   r	   bytesstrr/   dictr3   r   r   r   r   <module>   s   