+
    j                     >    ^ RI HtHtHtHt ^ RIHt  ! R R4      tR# )    )AnyOptionalDictList)ApiResponsec                     a  ] tR t^t o RtR,V 3R lR lltR,V 3R lR lltR,V 3R lR lltR-V 3R	 lR
 lltR,V 3R lR llt	R,V 3R lR llt
R,V 3R lR lltR,V 3R lR lltR,V 3R lR lltR,V 3R lR lltR,V 3R lR lltR,V 3R lR lltR,V 3R lR lltR,V 3R lR lltR-V 3R lR  lltR.V 3R! lR" lltR-V 3R# lR$ lltR/V 3R% lR& lltR/V 3R' lR( lltR,V 3R) lR* lltR+tV tR# )0ApiResponseMixinz
Mixin class to provide PHP trait-like functionality for API responses.
This allows controllers to access response methods directly like PHP traits.
Nc          	      b   < V ^8  d   QhRS[ RS[S[,          RS[S[S[S[3,          ,          /#    datamessageheadersr   r   strr   )format__classdict__s   "ID:\Projects\python\client-ideal-oms_pyapi\app\utils\api_response_mixin.py__annotate__ApiResponseMixin.__annotate__
   s8     6 6s 6HSM 68TXY\^aYaTbKc 6    c                0    \         P                  ! WV4      # )z$Send successful response (HTTP 200).)r   okselfr   r   r   s   &&&&r   r   ApiResponseMixin.ok
   s    ~~dW55r   c          	      b   < V ^8  d   QhRS[ RS[S[,          RS[S[S[S[3,          ,          /# r   r   )r   r   s   "r   r   r      s9     ; ;C ;# ;PXY]^acf^fYgPh ;r   c                0    \         P                  ! WV4      # )z*Send resource created response (HTTP 201).)r   createdr   s   &&&&r   r   ApiResponseMixin.created   s    ""4'::r   c          	      b   < V ^8  d   QhRS[ RS[S[,          RS[S[S[S[3,          ,          /# r   r   )r   r   s   "r   r   r      9     < <S <(3- <QYZ^_bdg_gZhQi <r   c                0    \         P                  ! WV4      # )z"Send accepted response (HTTP 202).)r   acceptedr   s   &&&&r   r$   ApiResponseMixin.accepted       ##D7;;r   c                F   < V ^8  d   QhRS[ S[S[S[3,          ,          /# )r   r   )r   r   r   )r   r   s   "r   r   r      s!     / /(4S>": /r   c                .    \         P                  ! V4      # )z$Send no content response (HTTP 204).)r   
no_content)r   r   s   &&r   r)   ApiResponseMixin.no_content   s    %%g..r   c          	      b   < V ^8  d   QhRS[ RS[S[,          RS[S[S[S[3,          ,          /# r   r   )r   r   s   "r   r   r      s9     ? ? ?Xc] ?T\]abegjbj]kTl ?r   c                0    \         P                  ! WV4      # )z"Send bad request error (HTTP 400).)r   bad_requestr   s   &&&&r   r-   ApiResponseMixin.bad_request   s    &&tg>>r   c          	      b   < V ^8  d   QhRS[ RS[S[,          RS[S[S[S[3,          ,          /# r   r   )r   r   s   "r   r   r      >     @ @ @hsm @U]^bcfhkck^lUm @r   c                0    \         P                  ! WV4      # )z#Send unauthorized error (HTTP 401).)r   unauthorizedr   s   &&&&r   r2   ApiResponseMixin.unauthorized       ''w??r   c          	      b   < V ^8  d   QhRS[ RS[S[,          RS[S[S[S[3,          ,          /# r   r   )r   r   s   "r   r   r   "   s9     = =c =8C= =RZ[_`ceh`h[iRj =r   c                0    \         P                  ! WV4      # )z Send forbidden error (HTTP 403).)r   	forbiddenr   s   &&&&r   r7   ApiResponseMixin.forbidden"       $$TG<<r   c          	      r   < V ^8  d   QhRS[ S[,          RS[ S[,          RS[ S[S[S[3,          ,          /# r   r   r   r   r   )r   r   s   "r   r   r   &   s=     = =hsm =Xc] =\deijmorjres\t =r   c                0    \         P                  ! WV4      # )z Send not found error (HTTP 404).)r   	not_foundr   s   &&&&r   r=   ApiResponseMixin.not_found&   r9   r   c          	      b   < V ^8  d   QhRS[ RS[S[,          RS[S[S[S[3,          ,          /# r   r   )r   r   s   "r   r   r   *   s>     F Fs FHSM F[cdhilnqiqdr[s Fr   c                0    \         P                  ! WV4      # )z)Send method not allowed error (HTTP 405).)r   method_not_allowedr   s   &&&&r   rA   #ApiResponseMixin.method_not_allowed*   s    --dWEEr   c          	      b   < V ^8  d   QhRS[ RS[S[,          RS[S[S[S[3,          ,          /# r   r   )r   r   s   "r   r   r   .   r"   r   c                0    \         P                  ! WV4      # )zSend conflict error (HTTP 409).)r   conflictr   s   &&&&r   rE   ApiResponseMixin.conflict.   r&   r   c          	      b   < V ^8  d   QhRS[ RS[S[,          RS[S[S[S[3,          ,          /# r   r   )r   r   s   "r   r   r   2   s>     H H Hhsm H]efjknpsksft]u Hr   c                0    \         P                  ! WV4      # )z!Send validation error (HTTP 422).)r   unprocessable_entityr   s   &&&&r   rI   %ApiResponseMixin.unprocessable_entity2   s    //wGGr   c          	      b   < V ^8  d   QhRS[ RS[S[,          RS[S[S[S[3,          ,          /# r   r   )r   r   s   "r   r   r   6   s>     E Ec E8C= EZbcghkmphpcqZr Er   c                0    \         P                  ! WV4      # )z!Send rate limit error (HTTP 429).)r   too_many_requestsr   s   &&&&r   rM   "ApiResponseMixin.too_many_requests6   s    ,,TGDDr   c          	      b   < V ^8  d   QhRS[ RS[S[,          RS[S[S[S[3,          ,          /# r   r   )r   r   s   "r   r   r   :   r0   r   c                0    \         P                  ! WV4      # )zSend server error (HTTP 500).)r   server_errorr   s   &&&&r   rQ   ApiResponseMixin.server_error:   r4   r   c          	      b   < V ^8  d   QhRS[ RS[S[,          RS[S[S[S[3,          ,          /# r   r   )r   r   s   "r   r   r   >   s>     G G GXc] G\deijmorjres\t Gr   c                0    \         P                  ! WV4      # )z*Send service unavailable error (HTTP 503).)r   service_unavailabler   s   &&&&r   rU   $ApiResponseMixin.service_unavailable>   s    ..tgFFr   c          	      R   < V ^8  d   QhRS[ RS[RS[S[S[ S[ 3,          ,          /# r   r   coder   r   intr   r   )r   r   s   "r   r   r   B   s/     9 9S 9 9htCH~6N 9r   c                0    \         P                  ! WV4      # )zSend custom error response.)r   errorr   r   rY   r   s   &&&&r   r]   ApiResponseMixin.errorB   s      88r   c          	      R   < V ^8  d   QhRS[ RS[RS[S[S[ S[ 3,          ,          /# rX   rZ   )r   r   s   "r   r   r   F   s9     F F# FS FRVWZ\_W_R`Ia Fr   c                0    \         P                  ! WV4      # )z'Send error response with fixed message.)r   error_with_messager^   s   &&&&r   rb   #ApiResponseMixin.error_with_messageF   s    --gWEEr   c                \   < V ^8  d   QhRS[ RS[S[S[S[ S[3,          ,          ,          /# )r   r   errors)r   r   r   r   r   )r   r   s   "r   r   r   J   s-     = = =Xd4S>>R5S =r   c                .    \         P                  ! W4      # )z4Send validation error response with detailed errors.)r   validation_error)r   r   re   s   &&&r   rg   !ApiResponseMixin.validation_errorJ   s    ++G<<r   c                   < V ^8  d   QhRS[ S[,          RS[S[S[3,          RS[S[,          RS[S[S[S[3,          ,          /# )r   r   pagination_infor   r   )r   r   r   r   r   )r   r   s   "r   r   r   N   sq     W WtCy W4S> W\deh\i W  |D  EI  JM  OR  JR  ES  |T Wr   c                0    \         P                  ! WW44      # )z&Send paginated response with metadata.)r   paginated_response)r   r   rj   r   r   s   &&&&&r   rl   #ApiResponseMixin.paginated_responseN   s    --dWVVr   c          	         < V ^8  d   QhRS[ S[S[S[3,          ,          RS[S[,          RS[S[S[S[3,          ,          /# )r   resultsr   r   )r   r   r   r   r   )r   r   s   "r   r   r   R   sK     D DT$sCx.%9 DHSM Dcklpqtvyqylzc{ Dr   c                0    \         P                  ! WV4      # )zSend bulk operation response.)r   bulk_response)r   ro   r   r   s   &&&&r   rq   ApiResponseMixin.bulk_responseR   s    ((7CCr   c          	      r   < V ^8  d   QhRS[ S[,          RS[ S[,          RS[ S[S[S[3,          ,          /# r   r;   )r   r   s   "r   r   r   V   sB     A A(3- A# A`himnqsvnviw`x Ar   c                0    \         P                  ! WV4      # )z*Send no content found response (HTTP 204).)r   no_data_foundr   s   &&&&r   ru   ApiResponseMixin.no_data_foundV   s    ((@@r    )NNN)N)i  N)NN)__name__
__module____qualname____firstlineno____doc__r   r   r$   r)   r-   r2   r7   r=   rA   rE   rI   rM   rQ   rU   r]   rb   rg   rl   rq   ru   __static_attributes____classdictcell__)r   s   @r   r	   r	      s     
6 6; ;< </ /? ?@ @= == =F F< <H HE E@ @G G9 9F F= =W WD DA A Ar   r	   N)typingr   r   r   r   app.utils.response_helperr   r	   rw   r   r   <module>r      s    , , 1TA TAr   