Update routes/emails.py
Browse files- routes/emails.py +214 -4
routes/emails.py
CHANGED
@@ -393,10 +393,8 @@ def generate_email_html(email_type: str, to: str) -> str:
|
|
393 |
</div>
|
394 |
|
395 |
<p class="next-steps">
|
396 |
-
|
397 |
</p>
|
398 |
-
|
399 |
-
<a href="https://ameddes.com/dashboard" class="cta-button">View Your Dashboard</a>
|
400 |
</div>
|
401 |
|
402 |
<!-- Footer -->
|
@@ -412,10 +410,222 @@ def generate_email_html(email_type: str, to: str) -> str:
|
|
412 |
</div>
|
413 |
</div>
|
414 |
</body>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
415 |
</html>
|
416 |
"""
|
417 |
elif email_type == "goodbye":
|
418 |
-
return
|
419 |
<html>
|
420 |
<body>
|
421 |
<h1>Sentiremos sua falta!</h1>
|
|
|
393 |
</div>
|
394 |
|
395 |
<p class="next-steps">
|
396 |
+
Grab a coffee and relax! Our review process is typically quick, and we'll have you connected with clients in no time.
|
397 |
</p>
|
|
|
|
|
398 |
</div>
|
399 |
|
400 |
<!-- Footer -->
|
|
|
410 |
</div>
|
411 |
</div>
|
412 |
</body>
|
413 |
+
</html>
|
414 |
+
"""
|
415 |
+
elif email_type == "stylistapprove":
|
416 |
+
return """
|
417 |
+
<!DOCTYPE html>
|
418 |
+
<html lang="en">
|
419 |
+
<head>
|
420 |
+
<meta charset="UTF-8">
|
421 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
422 |
+
<title>You're Approved! - ClosetCoach</title>
|
423 |
+
<style>
|
424 |
+
* {
|
425 |
+
margin: 0;
|
426 |
+
padding: 0;
|
427 |
+
box-sizing: border-box;
|
428 |
+
}
|
429 |
+
|
430 |
+
body {
|
431 |
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
|
432 |
+
background-color: #ffffff;
|
433 |
+
color: #1d1d1f;
|
434 |
+
line-height: 1.6;
|
435 |
+
}
|
436 |
+
|
437 |
+
.email-container {
|
438 |
+
max-width: 600px;
|
439 |
+
margin: 0 auto;
|
440 |
+
background-color: #ffffff;
|
441 |
+
}
|
442 |
+
|
443 |
+
.header {
|
444 |
+
text-align: center;
|
445 |
+
padding: 60px 40px 40px;
|
446 |
+
}
|
447 |
+
|
448 |
+
.logo {
|
449 |
+
font-size: 28px;
|
450 |
+
font-weight: 700;
|
451 |
+
color: #6b46c1;
|
452 |
+
letter-spacing: -0.5px;
|
453 |
+
}
|
454 |
+
|
455 |
+
.hero-section {
|
456 |
+
text-align: center;
|
457 |
+
padding: 0 40px 60px;
|
458 |
+
}
|
459 |
+
|
460 |
+
.hero-image {
|
461 |
+
width: 100%;
|
462 |
+
max-width: 280px;
|
463 |
+
height: 200px;
|
464 |
+
object-fit: cover;
|
465 |
+
margin: 0 auto 50px;
|
466 |
+
border-radius: 20px;
|
467 |
+
box-shadow: 0 20px 40px rgba(107, 70, 193, 0.1);
|
468 |
+
}
|
469 |
+
|
470 |
+
.headline {
|
471 |
+
font-size: 36px;
|
472 |
+
font-weight: 700;
|
473 |
+
color: #1d1d1f;
|
474 |
+
margin-bottom: 24px;
|
475 |
+
line-height: 1.2;
|
476 |
+
letter-spacing: -0.8px;
|
477 |
+
}
|
478 |
+
|
479 |
+
.subheadline {
|
480 |
+
font-size: 20px;
|
481 |
+
font-weight: 400;
|
482 |
+
color: #6e6e73;
|
483 |
+
margin-bottom: 30px;
|
484 |
+
line-height: 1.4;
|
485 |
+
max-width: 480px;
|
486 |
+
margin-left: auto;
|
487 |
+
margin-right: auto;
|
488 |
+
}
|
489 |
+
|
490 |
+
.status-box {
|
491 |
+
background-color: #dcfce7;
|
492 |
+
border: 1px solid #22c55e;
|
493 |
+
border-radius: 12px;
|
494 |
+
padding: 20px;
|
495 |
+
margin: 30px 0;
|
496 |
+
max-width: 480px;
|
497 |
+
margin-left: auto;
|
498 |
+
margin-right: auto;
|
499 |
+
}
|
500 |
+
|
501 |
+
.status-title {
|
502 |
+
font-size: 18px;
|
503 |
+
font-weight: 600;
|
504 |
+
color: #166534;
|
505 |
+
margin-bottom: 8px;
|
506 |
+
}
|
507 |
+
|
508 |
+
.status-text {
|
509 |
+
font-size: 16px;
|
510 |
+
color: #166534;
|
511 |
+
line-height: 1.5;
|
512 |
+
}
|
513 |
+
|
514 |
+
.next-steps {
|
515 |
+
font-size: 18px;
|
516 |
+
font-weight: 400;
|
517 |
+
color: #6e6e73;
|
518 |
+
margin: 30px 0;
|
519 |
+
line-height: 1.4;
|
520 |
+
max-width: 480px;
|
521 |
+
margin-left: auto;
|
522 |
+
margin-right: auto;
|
523 |
+
}
|
524 |
+
|
525 |
+
.cta-button {
|
526 |
+
display: inline-block;
|
527 |
+
background: linear-gradient(135deg, #6b46c1 0%, #8b5cf6 100%);
|
528 |
+
color: #ffffff;
|
529 |
+
text-decoration: none;
|
530 |
+
padding: 16px 40px;
|
531 |
+
border-radius: 50px;
|
532 |
+
font-size: 18px;
|
533 |
+
font-weight: 600;
|
534 |
+
letter-spacing: 0.2px;
|
535 |
+
transition: all 0.3s ease;
|
536 |
+
box-shadow: 0 8px 24px rgba(107, 70, 193, 0.3);
|
537 |
+
margin-bottom: 60px;
|
538 |
+
}
|
539 |
+
|
540 |
+
.cta-button:hover {
|
541 |
+
transform: translateY(-2px);
|
542 |
+
box-shadow: 0 12px 32px rgba(107, 70, 193, 0.4);
|
543 |
+
}
|
544 |
+
|
545 |
+
.footer {
|
546 |
+
text-align: center;
|
547 |
+
padding: 40px;
|
548 |
+
border-top: 1px solid #f5f5f7;
|
549 |
+
margin-top: 40px;
|
550 |
+
}
|
551 |
+
|
552 |
+
.footer-text {
|
553 |
+
font-size: 14px;
|
554 |
+
color: #86868b;
|
555 |
+
margin-bottom: 16px;
|
556 |
+
}
|
557 |
+
|
558 |
+
@media (max-width: 480px) {
|
559 |
+
.header {
|
560 |
+
padding: 40px 20px 20px;
|
561 |
+
}
|
562 |
+
|
563 |
+
.hero-section {
|
564 |
+
padding: 0 20px 40px;
|
565 |
+
}
|
566 |
+
|
567 |
+
.headline {
|
568 |
+
font-size: 28px;
|
569 |
+
}
|
570 |
+
|
571 |
+
.subheadline {
|
572 |
+
font-size: 18px;
|
573 |
+
}
|
574 |
+
|
575 |
+
.footer {
|
576 |
+
padding: 30px 20px;
|
577 |
+
}
|
578 |
+
}
|
579 |
+
</style>
|
580 |
+
</head>
|
581 |
+
<body>
|
582 |
+
<div class="email-container">
|
583 |
+
<!-- Header -->
|
584 |
+
<div class="header">
|
585 |
+
<div class="logo">ClosetCoach</div>
|
586 |
+
</div>
|
587 |
+
|
588 |
+
<!-- Hero Section -->
|
589 |
+
<div class="hero-section">
|
590 |
+
<img src="https://huggingface.co/spaces/habulaj/connect/resolve/main/approve.png" alt="Approved illustration" class="hero-image">
|
591 |
+
|
592 |
+
<h1 class="headline">Congratulations! You're approved</h1>
|
593 |
+
|
594 |
+
<p class="subheadline">
|
595 |
+
Your stylist profile has been reviewed and approved. You're now ready to connect with clients and start transforming lives through style.
|
596 |
+
</p>
|
597 |
+
|
598 |
+
<div class="status-box">
|
599 |
+
<div class="status-title">🎉 Account Activated</div>
|
600 |
+
<div class="status-text">
|
601 |
+
Your stylist account is now live and ready to receive client connections. Welcome to the ClosetCoach community!
|
602 |
+
</div>
|
603 |
+
</div>
|
604 |
+
|
605 |
+
<p class="next-steps">
|
606 |
+
Ready to meet your first clients? Start exploring available styling opportunities and build your portfolio with us.
|
607 |
+
</p>
|
608 |
+
|
609 |
+
<a href="https://ameddes.com/onboarding/search" class="cta-button">Start Finding Clients</a>
|
610 |
+
</div>
|
611 |
+
|
612 |
+
<!-- Footer -->
|
613 |
+
<div class="footer">
|
614 |
+
<p class="footer-text">
|
615 |
+
You're receiving this email because your ClosetCoach stylist account has been approved.<br>
|
616 |
+
Time to start your styling journey!
|
617 |
+
</p>
|
618 |
+
|
619 |
+
<p class="footer-text" style="margin-top: 24px;">
|
620 |
+
© 2025 ClosetCoach. All rights reserved.
|
621 |
+
</p>
|
622 |
+
</div>
|
623 |
+
</div>
|
624 |
+
</body>
|
625 |
</html>
|
626 |
"""
|
627 |
elif email_type == "goodbye":
|
628 |
+
return """
|
629 |
<html>
|
630 |
<body>
|
631 |
<h1>Sentiremos sua falta!</h1>
|