Update routes/emails.py
Browse files- routes/emails.py +118 -64
routes/emails.py
CHANGED
@@ -843,44 +843,38 @@ def generate_email_html(email_type: str, to: str) -> str:
|
|
843 |
<head>
|
844 |
<meta charset="UTF-8">
|
845 |
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
846 |
-
<title>New Subscriber
|
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;
|
@@ -890,7 +884,18 @@ def generate_email_html(email_type: str, to: str) -> str:
|
|
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;
|
@@ -899,7 +904,6 @@ def generate_email_html(email_type: str, to: str) -> str:
|
|
899 |
line-height: 1.2;
|
900 |
letter-spacing: -0.8px;
|
901 |
}
|
902 |
-
|
903 |
.subheadline {
|
904 |
font-size: 20px;
|
905 |
font-weight: 400;
|
@@ -910,42 +914,24 @@ def generate_email_html(email_type: str, to: str) -> str:
|
|
910 |
margin-left: auto;
|
911 |
margin-right: auto;
|
912 |
}
|
913 |
-
|
914 |
-
|
915 |
-
|
916 |
-
|
917 |
-
|
918 |
-
|
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: #
|
929 |
-
margin-bottom:
|
930 |
}
|
931 |
-
|
932 |
-
.status-text {
|
933 |
font-size: 16px;
|
934 |
-
color: #
|
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%);
|
@@ -958,44 +944,81 @@ def generate_email_html(email_type: str, to: str) -> str:
|
|
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:
|
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 |
}
|
@@ -1008,36 +1031,67 @@ def generate_email_html(email_type: str, to: str) -> str:
|
|
1008 |
<div class="header">
|
1009 |
<div class="logo">ClosetCoach</div>
|
1010 |
</div>
|
1011 |
-
|
1012 |
<!-- Hero Section -->
|
1013 |
<div class="hero-section">
|
1014 |
-
<
|
1015 |
|
1016 |
-
<
|
|
|
|
|
1017 |
|
1018 |
<p class="subheadline">
|
1019 |
-
|
1020 |
</p>
|
1021 |
-
|
1022 |
-
<div class="
|
1023 |
-
<div class="
|
1024 |
-
<div class="
|
1025 |
-
|
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/
|
1034 |
</div>
|
1035 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1036 |
<!-- Footer -->
|
1037 |
<div class="footer">
|
1038 |
<p class="footer-text">
|
1039 |
-
|
1040 |
-
|
1041 |
</p>
|
1042 |
|
1043 |
<p class="footer-text" style="margin-top: 24px;">
|
|
|
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 |
body {
|
854 |
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
|
855 |
background-color: #ffffff;
|
856 |
color: #1d1d1f;
|
857 |
line-height: 1.6;
|
858 |
}
|
|
|
859 |
.email-container {
|
860 |
max-width: 600px;
|
861 |
margin: 0 auto;
|
862 |
background-color: #ffffff;
|
863 |
}
|
|
|
864 |
.header {
|
865 |
text-align: center;
|
866 |
padding: 60px 40px 40px;
|
867 |
}
|
|
|
868 |
.logo {
|
869 |
font-size: 28px;
|
870 |
font-weight: 700;
|
871 |
color: #6b46c1;
|
872 |
letter-spacing: -0.5px;
|
873 |
}
|
|
|
874 |
.hero-section {
|
875 |
text-align: center;
|
876 |
padding: 0 40px 60px;
|
877 |
}
|
|
|
878 |
.hero-image {
|
879 |
width: 100%;
|
880 |
max-width: 280px;
|
|
|
884 |
border-radius: 20px;
|
885 |
box-shadow: 0 20px 40px rgba(107, 70, 193, 0.1);
|
886 |
}
|
887 |
+
.celebration-badge {
|
888 |
+
display: inline-block;
|
889 |
+
background: linear-gradient(135deg, #10b981 0%, #059669 100%);
|
890 |
+
color: #ffffff;
|
891 |
+
padding: 8px 20px;
|
892 |
+
border-radius: 25px;
|
893 |
+
font-size: 14px;
|
894 |
+
font-weight: 600;
|
895 |
+
text-transform: uppercase;
|
896 |
+
letter-spacing: 0.5px;
|
897 |
+
margin-bottom: 30px;
|
898 |
+
}
|
899 |
.headline {
|
900 |
font-size: 36px;
|
901 |
font-weight: 700;
|
|
|
904 |
line-height: 1.2;
|
905 |
letter-spacing: -0.8px;
|
906 |
}
|
|
|
907 |
.subheadline {
|
908 |
font-size: 20px;
|
909 |
font-weight: 400;
|
|
|
914 |
margin-left: auto;
|
915 |
margin-right: auto;
|
916 |
}
|
917 |
+
.highlight-box {
|
918 |
+
background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
|
919 |
+
border-radius: 16px;
|
920 |
+
padding: 32px;
|
921 |
+
margin: 40px 0;
|
922 |
+
border-left: 4px solid #6b46c1;
|
|
|
|
|
|
|
|
|
923 |
}
|
924 |
+
.highlight-text {
|
|
|
925 |
font-size: 18px;
|
926 |
font-weight: 600;
|
927 |
+
color: #1d1d1f;
|
928 |
+
margin-bottom: 12px;
|
929 |
}
|
930 |
+
.highlight-subtext {
|
|
|
931 |
font-size: 16px;
|
932 |
+
color: #64748b;
|
933 |
line-height: 1.5;
|
934 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
935 |
.cta-button {
|
936 |
display: inline-block;
|
937 |
background: linear-gradient(135deg, #6b46c1 0%, #8b5cf6 100%);
|
|
|
944 |
letter-spacing: 0.2px;
|
945 |
transition: all 0.3s ease;
|
946 |
box-shadow: 0 8px 24px rgba(107, 70, 193, 0.3);
|
947 |
+
margin-bottom: 40px;
|
948 |
}
|
|
|
949 |
.cta-button:hover {
|
950 |
transform: translateY(-2px);
|
951 |
box-shadow: 0 12px 32px rgba(107, 70, 193, 0.4);
|
952 |
}
|
953 |
+
.tips-section {
|
954 |
+
background-color: #fafafa;
|
955 |
+
border-radius: 20px;
|
956 |
+
padding: 32px;
|
957 |
+
margin: 40px 0;
|
958 |
+
}
|
959 |
+
.tips-title {
|
960 |
+
font-size: 20px;
|
961 |
+
font-weight: 700;
|
962 |
+
color: #1d1d1f;
|
963 |
+
margin-bottom: 20px;
|
964 |
+
text-align: center;
|
965 |
+
}
|
966 |
+
.tip-item {
|
967 |
+
display: flex;
|
968 |
+
align-items: flex-start;
|
969 |
+
margin-bottom: 16px;
|
970 |
+
padding: 16px;
|
971 |
+
background-color: #ffffff;
|
972 |
+
border-radius: 12px;
|
973 |
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
|
974 |
+
}
|
975 |
+
.tip-icon {
|
976 |
+
width: 24px;
|
977 |
+
height: 24px;
|
978 |
+
background: linear-gradient(135deg, #6b46c1 0%, #8b5cf6 100%);
|
979 |
+
border-radius: 50%;
|
980 |
+
display: flex;
|
981 |
+
align-items: center;
|
982 |
+
justify-content: center;
|
983 |
+
margin-right: 16px;
|
984 |
+
flex-shrink: 0;
|
985 |
+
color: #ffffff;
|
986 |
+
font-weight: 600;
|
987 |
+
font-size: 12px;
|
988 |
+
}
|
989 |
+
.tip-text {
|
990 |
+
font-size: 16px;
|
991 |
+
color: #374151;
|
992 |
+
line-height: 1.5;
|
993 |
+
}
|
994 |
.footer {
|
995 |
text-align: center;
|
996 |
padding: 40px;
|
997 |
border-top: 1px solid #f5f5f7;
|
998 |
margin-top: 40px;
|
999 |
}
|
|
|
1000 |
.footer-text {
|
1001 |
font-size: 14px;
|
1002 |
color: #86868b;
|
1003 |
margin-bottom: 16px;
|
1004 |
}
|
|
|
1005 |
@media (max-width: 480px) {
|
1006 |
.header {
|
1007 |
padding: 40px 20px 20px;
|
1008 |
}
|
|
|
1009 |
.hero-section {
|
1010 |
padding: 0 20px 40px;
|
1011 |
}
|
|
|
1012 |
.headline {
|
1013 |
font-size: 28px;
|
1014 |
}
|
|
|
1015 |
.subheadline {
|
1016 |
font-size: 18px;
|
1017 |
}
|
1018 |
+
.highlight-box, .tips-section {
|
1019 |
+
padding: 24px;
|
1020 |
+
margin: 30px 0;
|
1021 |
+
}
|
1022 |
.footer {
|
1023 |
padding: 30px 20px;
|
1024 |
}
|
|
|
1031 |
<div class="header">
|
1032 |
<div class="logo">ClosetCoach</div>
|
1033 |
</div>
|
1034 |
+
|
1035 |
<!-- Hero Section -->
|
1036 |
<div class="hero-section">
|
1037 |
+
<div class="celebration-badge">🎉 New Subscriber</div>
|
1038 |
|
1039 |
+
<img src="https://huggingface.co/spaces/habulaj/connect/resolve/main/subscriber.png" alt="New subscriber celebration" class="hero-image">
|
1040 |
+
|
1041 |
+
<h1 class="headline">Congratulations! You have a new subscriber</h1>
|
1042 |
|
1043 |
<p class="subheadline">
|
1044 |
+
Someone just discovered your amazing style expertise and decided to follow your fashion journey. Your influence is growing!
|
1045 |
</p>
|
1046 |
+
|
1047 |
+
<div class="highlight-box">
|
1048 |
+
<div class="highlight-text">Your Style Community is Expanding</div>
|
1049 |
+
<div class="highlight-subtext">
|
1050 |
+
This new subscriber will receive notifications about your latest style tips, outfit recommendations, and exclusive content. Keep creating amazing content to engage your growing audience!
|
1051 |
</div>
|
1052 |
</div>
|
|
|
|
|
|
|
|
|
1053 |
|
1054 |
+
<a href="https://ameddes.com/stylist/dashboard" class="cta-button">Open ClosetCoach App</a>
|
1055 |
</div>
|
1056 |
+
|
1057 |
+
<!-- Tips Section -->
|
1058 |
+
<div class="tips-section">
|
1059 |
+
<div class="tips-title">💡 Pro Tips to Engage Your New Subscriber</div>
|
1060 |
+
|
1061 |
+
<div class="tip-item">
|
1062 |
+
<div class="tip-icon">1</div>
|
1063 |
+
<div class="tip-text">
|
1064 |
+
<strong>Welcome them personally:</strong> Send a personalized style tip or greeting to make them feel valued from day one.
|
1065 |
+
</div>
|
1066 |
+
</div>
|
1067 |
+
|
1068 |
+
<div class="tip-item">
|
1069 |
+
<div class="tip-icon">2</div>
|
1070 |
+
<div class="tip-text">
|
1071 |
+
<strong>Share your signature style:</strong> Post content that showcases your unique aesthetic and styling philosophy.
|
1072 |
+
</div>
|
1073 |
+
</div>
|
1074 |
+
|
1075 |
+
<div class="tip-item">
|
1076 |
+
<div class="tip-icon">3</div>
|
1077 |
+
<div class="tip-text">
|
1078 |
+
<strong>Create interactive content:</strong> Ask for their style preferences or favorite trends to boost engagement.
|
1079 |
+
</div>
|
1080 |
+
</div>
|
1081 |
+
|
1082 |
+
<div class="tip-item">
|
1083 |
+
<div class="tip-icon">4</div>
|
1084 |
+
<div class="tip-text">
|
1085 |
+
<strong>Offer exclusive insights:</strong> Share behind-the-scenes content or styling secrets that only your subscribers see.
|
1086 |
+
</div>
|
1087 |
+
</div>
|
1088 |
+
</div>
|
1089 |
+
|
1090 |
<!-- Footer -->
|
1091 |
<div class="footer">
|
1092 |
<p class="footer-text">
|
1093 |
+
Keep inspiring and building your style community!<br>
|
1094 |
+
Your expertise is making a difference in someone's fashion journey.
|
1095 |
</p>
|
1096 |
|
1097 |
<p class="footer-text" style="margin-top: 24px;">
|