
    iA                        d dl mZmZmZ d dlmZmZ d dlZd dlmZ d dl	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 d d
lmZ d dlmZ  ede      Z ej2                  dd      Z e ej2                  dd            Z ej2                  d      Z ej2                  d      ZddZejA                  ddg      d        Z!ejA                  ddg      d        Z"y)    )	Blueprintrequestjsonify)MailMessageN)datetime)MIMEText)MIMEMultipart)MIMEBase)encoders)Header)
formataddr)encode_rfc2231feedbackSMTP_SERVERzsmtp.gmail.com	SMTP_PORT587SMTP_USERNAMESMTP_PASSWORDc                    	 dddddddd}| j                  d	d
      }|j                  ||      }t               }t        |d<   t        |d<   d| dt        j                         j                  d       }t        |d      |d<   dt        j                         j                  d       d| d| d    d| d    d|rt        |      nd d}	 t        |dd      }|j                  |       |rt        |      D ]  \  }
}|s	|j                  st        dd      }|j!                  |j#                                t%        j&                  |       |j)                  dd dd!|j                  f"       |j                  |        t+        j,                  t.        t0              }|j3                          |j5                  t        t6               	 |j9                         }|j;                  t        t        |j                  d             |jA                          y'# t        $ rB |j                  d      j                  d      }	t        |	dd      }|j                  |       Y uw xY w# t        $ rm}t=        d#|        	 |j9                         }|j;                  t        t        |       n(# t>        $ r}t=        d$|        Y d%}~Y d%}~y&d%}~ww xY wY d%}~d%}~ww xY w# t>        $ r}t=        d(|        Y d%}~y&d%}~ww xY w))u*   피드백을 관리자 이메일로 전송u   기능 요청u   문제 보고u   전화번호 인증u   회원 및 결제 문제u   계정 문제u*   공개적으로 공유할 수 없습니다u   기타)feature_request
bug_reportphone_verificationmembership_paymentaccount_issuescannot_shareotherproblemTyper   FromTou   [피드백] z - z%Y-%m-%d %H:%Mzutf-8Subjectu   
        새로운 피드백이 접수되었습니다.
        
        ===== 피드백 상세 정보 =====
        접수 시간: z%Y-%m-%d %H:%M:%Su   
        문제 유형: u   
        사용자 이메일: emailu4   
        
        ===== 문제 설명 =====
        descriptionu4   
        
        ===== 첨부 파일 =====
        r   u   개 파일
        plainapplicationzoctet-streamzContent-Disposition
attachment )filenameu   UTF-8 인코딩 오류: u    대체 전송 방법도 실패: NFTu   이메일 전송 오류: )!getr
   r   r   nowstrftimer   lenr	   attachUnicodeEncodeErrorencodedecode	enumerater(   r   set_payloadreadr   encode_base64
add_headersmtplibSMTPr   r   starttlsloginr   	as_stringsendmailprint	Exceptionquit)feedback_dataattachmentsproblem_type_labelsproblem_type_rawproblem_type_labelmsgsubjectbody	text_partbody_encodedir&   partservertextee2s                    H/home/kdj-ubuntu1/mlink_AI_Server/mlink-backend/./src/routes/feedback.pysend_feedback_emailrP      s   Z  /)"7"<-H
 ),,]GD0445EGWX o#F!D	 !!3 4C8O8OP`8a7bc1I !//0CDE F*+ ,+G45 6	 
}	%& '	 )[	a0 1	 	" w8IJJy! !*;!7:*"5"5#M>BD$$Z__%67**40OO-$")2z/B/B!C $ 
 JJt$ "8 k95]M2	==?DOOM=$++g:NO 	W " 	";;w/66w?L w@IJJy!		"> " 	,QC01}}}dC 8=>u D	  )!-.s   CK H )K ?K B<K 	:I" K AIK IK "	K+K:+J&%K&	K/K=KK KKK KK 	K<$K77K<z/api/feedback/submitPOST)methodsc                     	 t         j                  j                  d      } t         j                  j                  d      }t         j                  j                  d      }| r|r|st        ddi      dfS g }t         j                  D ]H  }|j                  d      st         j                  |   }|s+|j                  s8|j                  |       J | ||t        j                         j                         d}t        ||      }|rt        d	|d
   d      dfS t        ddi      dfS # t        $ r'}t        d|        t        ddi      dfcY d}~S d}~ww xY w)u   피드백 제출 처리r   r#   r"   erroru+   모든 필수 필드를 입력해주세요.i  attachment_)r   r#   r"   	timestampu3   피드백이 성공적으로 전송되었습니다.rV   )messagerV      uM   이메일 전송에 실패했습니다. 잠시 후 다시 시도해주세요.i  u   피드백 처리 오류: u2   피드백 처리 중 오류가 발생했습니다.N)r   formr)   r   files
startswithr(   appendr   r*   	isoformatrP   r=   r<   )	problem_typer#   r"   r@   keyfiler?   
email_sentrM   s	            rO   submit_feedbackrb   t   sX   ']||''6ll&&}5  ) ;eG%RSTVYYY ==C~~m,}}S)DMM&&t,	 ! (&!113	
 )D
P*;7   
 G%tuvx{{{ ])!-.!UVWY\\\]s=   A1D( 4&D( D( 1D( >AD( D( (	E1EEEz/api/feedback/healthGETc                      t        dt        t        xr t              t	        j
                         j                         d      dfS )u!   피드백 서비스 상태 확인healthy)statussmtp_configuredrV   rX   )r   boolr   r   r   r*   r]        rO   feedback_healthrk      sB      ?-@\\^--/  		 rj   )N)#flaskr   r   r   
flask_mailr   r   osr   r6   email.mime.textr	   email.mime.multipartr
   email.mime.baser   r"   r   email.headerr   email.utilsr   r   __name__feedback_bpgetenvr   intr   r   r   rP   routerb   rk   ri   rj   rO   <module>ry      s    - - $ 	   $ . $   " &
H- bii'78			+u-.			/*		/*\| )F8<)] =)]V )E7; <rj   