
    cEiH                     v    S SK r S SKJr  S SKJr  SSKJr  SSKJr  SSK	J
r  SSKJr  S S	KJr  SS
KJr  SS jrg)    N)Flask)LoginManager   )db)User)init_app)config)Migrate)init_dbc                 X  ^^^^^^ [         R                  R                  [         R                  R                  [         R                  R	                  [
        5      5      S5      n[        [        US9mSSKJ	mJ
m  TR                  S5      UU4S j5       nTR                  R                  [        U    5        TR                  R                  S5      (       d  STR                  S'   [        S	5        S
TR                  ;   a#  [         R                   " TR                  S
   SS9  O\[         R                  R                  TR"                  S5      n[         R                   " USS9  UTR                  S
'   [        SU 35        [$        R&                  " T5        TR)                  5          [+        T5        S S S 5        [-        5       nUR'                  T[$        5        [/        5       nUR'                  T5        SUl        UR2                  S 5       n[5        T5        SSKJmJmJm  TR=                  S5      UUU4S j5       nTR=                  S5      UUU4S j5       nTR=                  S5      UUU4S j5       n	TR=                  [>        5      UUUU4S j5       n
T$ ! , (       d  f       N= f)N	templates)template_folderr   )send_from_directoryabortz/assets/<path:filename>c                 0  > [         R                  R                  [         R                  R                  [         R                  R	                  [
        5      S5      5      nU R                  SS5      n[         R                  R                  X5      n[        SU  35        [        SU 35        [        SU 35        [        S[         R                  " U5       35        [         R                  R                  U5      (       a  [        SU 35        T" X5      $ S	 Hd  n[         R                  R                  XU-   5      n[         R                  R                  U5      (       d  MK  [        S
U 35        T" XU-   5      s  $    [        SU 35        T" S5        g )Nz../ditto-ai/dist/assets\/z[ASSETS DEBUG] Requested: z[ASSETS DEBUG] Normalized: z[ASSETS DEBUG] Full path: z"[ASSETS DEBUG] Directory listing: z[ASSETS DEBUG] FOUND: )z.jsz.cssz.pngz.svgz[ASSETS DEBUG] Fallback FOUND: z[ASSETS DEBUG] NOT FOUND:   )
ospathabspathjoindirname__file__replaceprintlistdirexists)filename
assets_dirnorm_filenameassets_pathextalt_pathr   r   s         MC:\Users\fernando.barreto\Documents\GitLab\ollama\chat-ollama\src\__init__.pyserve_assets create_app.<locals>.serve_assets   s;   WW__RWW\\"''//(2KMf%gh
 ((s3ggll:=*8*56+M?;<*;-8922::j3I2JKL77>>+&&*;-89&zAA2Cww||J0CDHww~~h''7zBC*:s7JKK	 3
 	*;-89c
    SQLALCHEMY_DATABASE_URIzsqlite:///app.dbuR   AVISO: SQLALCHEMY_DATABASE_URI não estava definido. Usando SQLite padrão: app.dbUPLOAD_FOLDERT)exist_okuploadsuO   AVISO: 'UPLOAD_FOLDER' não estava definido na configuração. Usando padrão: z
auth.loginc                 R    [         R                  R                  [        U 5      5      $ )N)r   querygetint)user_ids    r%   	load_usercreate_app.<locals>.load_user=   s    zz~~c'l++r(   )render_templatejsonifyrequestr   c                    > TR                   R                  S5      (       d   TR                   R                  S5      (       a  T" SS05      S4$ T" SSS9S4$ )	N/api//agente/api/erroru   Recurso não encontrador   
error.htmlu   Página não encontradar:   r   
startswithr:   r5   r4   r6   s    r%   not_found_error#create_app.<locals>.not_found_errorE   sU    <<""7++w||/F/F~/V/VG%>?@#EE|3LMsRRr(     c                    > [         R                  R                  5         TR                  R	                  S5      (       d   TR                  R	                  S5      (       a  T" SS05      S4$ T" SSS9S4$ )	Nr8   r9   r:   zErro interno do servidorrB   r;   z4Ocorreu um erro interno. Tente novamente mais tarde.r<   )r   sessionrollbackr   r>   r?   s    r%   internal_error"create_app.<locals>.internal_errorK   sf    


<<""7++w||/F/F~/V/VG%?@A3FF|3ijlooor(     c                    > TR                   R                  S5      (       d   TR                   R                  S5      (       a  T" SS05      S4$ T" SSS9S4$ )	Nr8   r9   r:   zAcesso negadorH   r;   u3   Você não tem permissão para acessar este recursor<   r=   r?   s    r%   forbidden_error#create_app.<locals>.forbidden_errorR   sU    <<""7++w||/F/F~/V/VG_56;;|3hiknnnr(   c                 8  > TR                   R                  S[        U 5       3SS9  TR                  R	                  S5      (       d?  TR                  R	                  S5      (       d  TR
                  R                  S5      S:X  a  T" SS	05      S
4$ T" SSS9S
4$ )Nu   Erro não tratado: T)exc_infor8   r9   zContent-Typezapplication/jsonr:   zOcorreu um erro inesperadorB   r;   z7Ocorreu um erro inesperado. Tente novamente mais tarde.r<   )loggerr:   strr   r>   headersr/   )r:   appr5   r4   r6   s    r%   handle_exception$create_app.<locals>.handle_exceptionX   s    

.s5zl;dK<<""7++w||/F/F~/V/VZaZiZiZmZmn|Z}  BT  [TG%ABCSHH|3lmorrrr(   ) r   r   r   r   r   r   r   __name__flaskr   r   router	   from_objectr/   r   makedirsinstance_pathr   r   app_contextinit_databaser
   r   
login_viewuser_loaderinit_routes_mainr4   r5   r6   errorhandler	Exception)config_nametemplate_dirr&   default_upload_foldermigratelogin_managerr2   r@   rF   rJ   rR   r   rQ   r5   r4   r6   r   s              @@@@@@r%   
create_apprf      s"   77<<0I JKXL
,
7C0YY() *& JJ6+./::>>3440B

,-bc#**$
CJJ/$? "S->->	 J
)D9&;

?#_`u_vwxKK		c 
 iGS" NM3+M, , S77cS S
 	cp p 	co o
 	i s !s J] 
	s   'J
J))default)r   rU   r   flask_loginr   
extensionsr   modelsr   routesr   r^   r	   flask_migrater
   config.databaser   r[   rf    r(   r%   <module>ro      s&    	  $   0  ! 5Ur(   