habulaj commited on
Commit
13ded20
·
verified ·
1 Parent(s): ac7d053

Update routes/emails.py

Browse files
Files changed (1) hide show
  1. routes/emails.py +210 -8
routes/emails.py CHANGED
@@ -836,15 +836,217 @@ def generate_email_html(email_type: str, to: str) -> str:
836
  </body>
837
  </html>
838
  """
839
- elif email_type == "goodbye":
840
  return """
841
- <html>
842
- <body>
843
- <h1>Sentiremos sua falta!</h1>
844
- <p>Olá {to}, sentimos muito que você esteja saindo.</p>
845
- <p>Se quiser voltar, estaremos aqui!</p>
846
- </body>
847
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
848
  """
849
  # Template padrão
850
  return f"""
 
836
  </body>
837
  </html>
838
  """
839
+ elif email_type == "newsubscriber":
840
  return """
841
+ <!DOCTYPE html>
842
+ <html lang="en">
843
+ <head>
844
+ <meta charset="UTF-8">
845
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
846
+ <title>New Subscriber! - ClosetCoach</title>
847
+ <style>
848
+ * {
849
+ margin: 0;
850
+ padding: 0;
851
+ box-sizing: border-box;
852
+ }
853
+
854
+ body {
855
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
856
+ background-color: #ffffff;
857
+ color: #1d1d1f;
858
+ line-height: 1.6;
859
+ }
860
+
861
+ .email-container {
862
+ max-width: 600px;
863
+ margin: 0 auto;
864
+ background-color: #ffffff;
865
+ }
866
+
867
+ .header {
868
+ text-align: center;
869
+ padding: 60px 40px 40px;
870
+ }
871
+
872
+ .logo {
873
+ font-size: 28px;
874
+ font-weight: 700;
875
+ color: #6b46c1;
876
+ letter-spacing: -0.5px;
877
+ }
878
+
879
+ .hero-section {
880
+ text-align: center;
881
+ padding: 0 40px 60px;
882
+ }
883
+
884
+ .hero-image {
885
+ width: 100%;
886
+ max-width: 280px;
887
+ height: 200px;
888
+ object-fit: cover;
889
+ margin: 0 auto 50px;
890
+ border-radius: 20px;
891
+ box-shadow: 0 20px 40px rgba(107, 70, 193, 0.1);
892
+ }
893
+
894
+ .headline {
895
+ font-size: 36px;
896
+ font-weight: 700;
897
+ color: #1d1d1f;
898
+ margin-bottom: 24px;
899
+ line-height: 1.2;
900
+ letter-spacing: -0.8px;
901
+ }
902
+
903
+ .subheadline {
904
+ font-size: 20px;
905
+ font-weight: 400;
906
+ color: #6e6e73;
907
+ margin-bottom: 30px;
908
+ line-height: 1.4;
909
+ max-width: 480px;
910
+ margin-left: auto;
911
+ margin-right: auto;
912
+ }
913
+
914
+ .status-box {
915
+ background-color: #f0f9ff;
916
+ border: 1px solid #3b82f6;
917
+ border-radius: 12px;
918
+ padding: 20px;
919
+ margin: 30px 0;
920
+ max-width: 480px;
921
+ margin-left: auto;
922
+ margin-right: auto;
923
+ }
924
+
925
+ .status-title {
926
+ font-size: 18px;
927
+ font-weight: 600;
928
+ color: #1e40af;
929
+ margin-bottom: 8px;
930
+ }
931
+
932
+ .status-text {
933
+ font-size: 16px;
934
+ color: #1e40af;
935
+ line-height: 1.5;
936
+ }
937
+
938
+ .next-steps {
939
+ font-size: 18px;
940
+ font-weight: 400;
941
+ color: #6e6e73;
942
+ margin: 30px 0;
943
+ line-height: 1.4;
944
+ max-width: 480px;
945
+ margin-left: auto;
946
+ margin-right: auto;
947
+ }
948
+
949
+ .cta-button {
950
+ display: inline-block;
951
+ background: linear-gradient(135deg, #6b46c1 0%, #8b5cf6 100%);
952
+ color: #ffffff;
953
+ text-decoration: none;
954
+ padding: 16px 40px;
955
+ border-radius: 50px;
956
+ font-size: 18px;
957
+ font-weight: 600;
958
+ letter-spacing: 0.2px;
959
+ transition: all 0.3s ease;
960
+ box-shadow: 0 8px 24px rgba(107, 70, 193, 0.3);
961
+ margin-bottom: 60px;
962
+ }
963
+
964
+ .cta-button:hover {
965
+ transform: translateY(-2px);
966
+ box-shadow: 0 12px 32px rgba(107, 70, 193, 0.4);
967
+ }
968
+
969
+ .footer {
970
+ text-align: center;
971
+ padding: 40px;
972
+ border-top: 1px solid #f5f5f7;
973
+ margin-top: 40px;
974
+ }
975
+
976
+ .footer-text {
977
+ font-size: 14px;
978
+ color: #86868b;
979
+ margin-bottom: 16px;
980
+ }
981
+
982
+ @media (max-width: 480px) {
983
+ .header {
984
+ padding: 40px 20px 20px;
985
+ }
986
+
987
+ .hero-section {
988
+ padding: 0 20px 40px;
989
+ }
990
+
991
+ .headline {
992
+ font-size: 28px;
993
+ }
994
+
995
+ .subheadline {
996
+ font-size: 18px;
997
+ }
998
+
999
+ .footer {
1000
+ padding: 30px 20px;
1001
+ }
1002
+ }
1003
+ </style>
1004
+ </head>
1005
+ <body>
1006
+ <div class="email-container">
1007
+ <!-- Header -->
1008
+ <div class="header">
1009
+ <div class="logo">ClosetCoach</div>
1010
+ </div>
1011
+
1012
+ <!-- Hero Section -->
1013
+ <div class="hero-section">
1014
+ <img src="https://huggingface.co/spaces/habulaj/connect/resolve/main/approve.png" alt="New subscriber illustration" class="hero-image">
1015
+
1016
+ <h1 class="headline">You have a new subscriber!</h1>
1017
+
1018
+ <p class="subheadline">
1019
+ Great news! Someone just subscribed to your styling services. Your expertise is in demand and your styling journey continues to grow.
1020
+ </p>
1021
+
1022
+ <div class="status-box">
1023
+ <div class="status-title">🎉 New Subscriber Alert</div>
1024
+ <div class="status-text">
1025
+ A new client has subscribed to your styling services and is ready to work with you. Time to showcase your styling skills!
1026
+ </div>
1027
+ </div>
1028
+
1029
+ <p class="next-steps">
1030
+ Open the ClosetCoach app to view your new subscriber's profile, preferences, and start planning their perfect styling experience.
1031
+ </p>
1032
+
1033
+ <a href="https://ameddes.com/app" class="cta-button">Open App to See Details</a>
1034
+ </div>
1035
+
1036
+ <!-- Footer -->
1037
+ <div class="footer">
1038
+ <p class="footer-text">
1039
+ You're receiving this notification because you have a new subscriber on ClosetCoach.<br>
1040
+ Keep up the great work building your styling business!
1041
+ </p>
1042
+
1043
+ <p class="footer-text" style="margin-top: 24px;">
1044
+ © 2025 ClosetCoach. All rights reserved.
1045
+ </p>
1046
+ </div>
1047
+ </div>
1048
+ </body>
1049
+ </html>
1050
  """
1051
  # Template padrão
1052
  return f"""