
    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dS )    )asccasedescfunc)Session)LMSPlatform)LMSPlatformCreate)JSONResponse)HTTPExceptionstatus)jsonable_encoder)UserCourseLog   
   Nidr   dbpageNorecordsPerPagesearchsort_by
sort_orderc                    |                      t                    }|rxd| d}|                    t          j                            |          t          j                            |          z  t          j                            |          z            }t          t          |t          j                  }|	                    |
                                dk    rt          |          nt          |                    }|                                }	|dz
  |z  }
|                    |
                              |                                          }|                      t"          j        t'          j        t+          t"          j        dk    t"          j        fd                                        d          t'          j        t+          t"          j        dk    t"          j        fd                                        d	                                        t"          j                                                  }d
 |D             }g }|D ]n}|                    |j        ddd          }|                    |j        |j        |j        |j        |j        |j        |j        |d         |d	         d	           ot?          |||	|	|z   dz
  |z  |d          }tA          |tB          j"                  S )N%r   r   Creditr   )else_total_creditedDebittotal_debitedc                 @    i | ]}|j         |j        pd |j        pd dS )r   r   r   )platform_idr   r   ).0ts     </var/www/html/syllabuild_adminapi/controller/lms_platform.py
<dictcomp>z%get_lms_platforms.<locals>.<dictcomp>A   sK       
 	 	
.3!_1
 
      r    )	r   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   r!   r   sumr   typenumber_of_courselabelgroup_bygetappendr*   r+   r,   r   r
   r   HTTP_200_OK)r   r   r   r   r   r   r4   search_patternsort_columntotal_recordsr;   	platformstotals_query
totals_mapplatform_listptotalsresponse_datas                     r$   get_lms_platformsrP      s    HH[!!E  
&V%%n55&,,^<<>$**>::<
 
 +w??KNN
0@0@0B0Bf0L0L4,,,RUVaRbRbccE KKMMMqjN*FV$$**>::>>@@I 	%H"'83]5ST   
 e$%%H"'72M4RS   
 eO$$	
 	
 
-+	,	,	# * 
   J M  Q&O&OPP$h_=
&,-=&>%+O%<

 

 
	 
	 
	 
	 %(%$~59nL& &  M 6;MNNNNr&   r!   c                     |                      t                                        t          j        |k                                              S )N)r4   r   r5   r   first)r   r!   s     r$   get_lms_platformrS   j   s5    88K  ''+(EFFLLNNNr&   platformc                     t          di |                                }|                     |           |                                  |                     |           |S )N )r   dictaddcommitrefresh)r   rT   db_platforms      r$   create_lms_platformr\   m   sT    0000KFF;IIKKKJJ{r&   )r   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strrP   rS   r\   rV   r&   r$   <module>rg      s{   , , , , , , , , , , , , " " " " " " . . . . . . 5 5 5 5 5 5 * * * * * * * * * * * * * * - - - - - - 3 3 3 3 3 3 [O [O[O[O [O 	[O
 [O [O [O [O [O|O Os O O O OG /@      r&   