
    t-io                         d dl mZmZmZmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZmZ d dlmZ d dlmZ 	 	 	 	 	 dd
edededededefdZd
edefdZd
ede
fdZy	)    )asccasedescfunc)Session)LMSPlatform)LMSPlatformCreate)JSONResponse)HTTPExceptionstatus)jsonable_encoder)UserCourseLogNdbpageNorecordsPerPagesearchsort_by
sort_orderc                 &   | j                  t              }|rtd| d}|j                  t        j                  j	                  |      t        j
                  j	                  |      z  t        j                  j	                  |      z        }t        t        |t        j                        }|j                  |j                         dk(  rt        |      n
t        |            }|j                         }	|dz
  |z  }
|j                  |
      j                  |      j!                         }| j                  t"        j$                  t'        j(                  t+        t"        j,                  dk(  t"        j.                  fd            j1                  d      t'        j(                  t+        t"        j,                  dk(  t"        j.                  fd            j1                  d	            j3                  t"        j$                        j!                         }|D ci c].  }|j$                  |j4                  xs d|j6                  xs dd
0 }}g }|D ]  }|j9                  |j                  ddd
      }|j;                  |j                  |j                  |j
                  |j                  |j<                  |j>                  |j@                  |d   |d	   d	        tC        |||	|	|z   dz
  |z  |d      }tE        |tF        jH                        S c c}w )N%r      Creditr   )else_total_creditedDebittotal_debited)r   r   )	idissuertenant_domaintenant_name	client_idjwks_url	token_urltotal_credited_coursestotal_debited_courses)r   r   totalRecords
totalPagesdata)contentstatus_code)%queryr   filterr   iliker   r    getattrr   order_bylowerr   r   countoffsetlimitallr   platform_idr   sumr   typenumber_of_courselabelgroup_byr   r   getappendr!   r"   r#   r   r
   r   HTTP_200_OK)r   r   r   r   r   r   r+   search_patternsort_columntotal_recordsr2   	platformstotals_queryt
totals_mapplatform_listptotalsresponse_datas                      A/var/www/html/syllabuild_admin/backend/controller/lms_platform.pyget_lms_platformsrJ      s    HH[!E VHA%%n5&&,,^<>$$**>:<
 +w?KNN
0@0@0Bf0L4,RUVaRbcE KKMMqjN*FV$**>:>>@I 	%%HH"''83]5S5ST
 e$%HH"''72M4R4RS
 eO$	
 
-++	,	# 4 
 	 	
..3!__1
 	
J  M Q&OP$$hh__==

&,-=&>%+O%<

 
	$ %(%$~59nL& M 6;M;MNNMs   3Lr5   c                     | j                  t              j                  t        j                  |k(        j	                         S )N)r+   r   r,   r   first)r   r5   s     rI   get_lms_platformrM   j   s.    88K ''+(EFLLNN    platformc                     t        di |j                         }| j                  |       | j                          | j	                  |       |S )N )r   dictaddcommitrefresh)r   rO   db_platforms      rI   create_lms_platformrW   m   s<    00KFF;IIKJJ{rN   )r   
   Nr   r   )
sqlalchemyr   r   r   r   sqlalchemy.ormr   db.models.lms_platformr   db.schemas.lms_platformr	   fastapi.responsesr
   fastapir   r   fastapi.encodersr   db.models.user_course_logr   intstrrJ   rM   rW   rQ   rN   rI   <module>rc      s    , , " . 5 * * - 3 [O[O[O [O 	[O
 [O [O|O Os OG /@ rN   