o
    Uh                     @   sb   d dl mZ d dlmZmZ d dlmZmZ d dlm	Z	 d dl
mZ d dlmZ G dd dZd	S )
    )func)CivilCreateCivilResponse)	CivilBaseTblCivil)Session)TblStoreFormat)CustomResponsec                   @   sD   e Zd ZdefddZdefddZdefdd	Zdefd
dZ	dS )CivilServicedbc                 C   s   || _ || _d S )N)r   token)selfr   r    r   0/var/www/html/RetailAPI/app/api/civil/service.py__init__	   s   
zCivilService.__init__requestc                    s   | j ttj|jktj|jk }|stddi dS |jp"d}|j	| }t
|}||_tt| | j }| j   | j | tdd|j|jddS )N0z6Store format not found for given group and format typestatusmessagedatar   1zCivil created successfully)civil_id
total_sqft)r   queryr   filtergroup_idstore_format_typefirstr	   
store_sizerate_per_sqftr   model_validater   r   creater   
model_dumpcommitrefreshr   )r   r   store_formatr   r   civil_schemacivil_recordr   r   r   create_civil   s    



zCivilService.create_civilr   c                    sB   | j ttj|k }|stdddS tddt|dS )Nz-1zNo Civil Data Found)r   r   r   zCivil data fetched successfullyr   )	r   r   r   r   r   r   r	   r   r!   )r   r   r(   r   r   r   get_civil_by_group_id   s
   z"CivilService.get_civil_by_group_idc                 C   sD   | j tjttjdtj	|k
tj }dd |D S )Nsubtotalc                 S   s   g | ]\}}||p
d dqS )g        )r   r+   r   ).0r   r+   r   r   r   
<listcomp>.   s    z=CivilService.get_subtotal_by_store_format.<locals>.<listcomp>)r   r   r   r   r   sumr   labelr   r   group_byall)r   r   resultsr   r   r   get_subtotal_by_store_format#   s   
z)CivilService.get_subtotal_by_store_formatN)
__name__
__module____qualname__r   r   r   r)   intr*   r3   r   r   r   r   r
      s
    r
   N)
sqlalchemyr   app.api.civil.schemasr   r   app.models.main.civilr   r   sqlalchemy.ormr   app.models.main.store_formater   app.utils.schemas_utilsr	   r
   r   r   r   r   <module>   s    