diff --git a/apps/infoalloggi/TODO b/apps/infoalloggi/TODO index a8051af..445b3a5 100644 --- a/apps/infoalloggi/TODO +++ b/apps/infoalloggi/TODO @@ -13,4 +13,3 @@ AFTER MVP: - Report andamento props: Generate a Report with selected user review, analytics and other data for the apartment owner - Infoalloggi.AI: Pagina area riservata "Infoalloggi.it AI" o "la mia ricerca Infoalloggi" robe cosí in cui il sistema fa una ricerca personalizzata, elemento marketizzabile - Document scan: Document scan for upload - - indirizzo autocomplete nomatim: diff --git a/apps/infoalloggi/emails/interruzione.tsx b/apps/infoalloggi/emails/interruzione.tsx new file mode 100644 index 0000000..b0c9a96 --- /dev/null +++ b/apps/infoalloggi/emails/interruzione.tsx @@ -0,0 +1,33 @@ +import { Heading, Row, Section, Text } from "@react-email/components"; +import Base from "./base"; +export type Interruzione_NewMail = { + mailType: "interruzione"; +}; + +const Interruzione = () => { + return ( + + <> + + Interruzione servizio InfoAlloggi + +
+ + Gentile Cliente, + + Il servizio di ricerca è stato interrotto su tua richiesta, + pertanto non c'è nessun saldo da effettuare. + + + Restiamo a disposizione per qualsiasi necessità, per una nuova + ricerca o per altre informazioni. + + Cordiali saluti + +
+ + + ); +}; + +export default Interruzione; diff --git a/apps/infoalloggi/src/server/controllers/servizio.controller.ts b/apps/infoalloggi/src/server/controllers/servizio.controller.ts index 2e4f935..56baaaf 100644 --- a/apps/infoalloggi/src/server/controllers/servizio.controller.ts +++ b/apps/infoalloggi/src/server/controllers/servizio.controller.ts @@ -927,17 +927,13 @@ export const interruzioneServizio = async (servizioId: ServizioServizioId) => { // NOTIFICHE EMAIL INTERRUZIONE SERVIZIO const utente = await getUser({ db, userId: servizio.user_id }); + await NewMail({ template: { - mailType: "generic", - props: { - noreply: true, - testo: `Abbiamo ricevuto la tua richiesta di interruzione del servizio di ricerca affitto per la tipologia ${servizio.tipologia}. Il servizio è stato interrotto con successo.`, - title: `Servizio Ricerca Affitto ${servizio.tipologia} interrotto`, - }, + mailType: "interruzione", }, mail: { - subject: `Servizio Ricerca Affitto ${servizio.tipologia} interrotto`, + subject: `Servizio Ricerca Affitto ${servizio.tipologia} interrotto.`, to: utente.email, }, userId: utente.id, @@ -948,7 +944,7 @@ export const interruzioneServizio = async (servizioId: ServizioServizioId) => { mailType: "generic", props: { link: { - href: `${env.BASE_URL}/area-riservata/admin/user-view/ricerca/${servizio.user_id}#${servizioId}`, + href: `${env.BASE_URL}/area-riservata/admin/user-view/servizio/${servizio.user_id}/${servizioId}`, label: "Vai al servizio", }, noreply: true, @@ -1072,7 +1068,7 @@ export const userSendConfermaIntent = async ({ mailType: "generic", props: { link: { - href: `${env.BASE_URL}/area-riservata/admin/user-view/ricerca/${servizio.user_id}#${servizioId}-${annuncioId}`, + href: `${env.BASE_URL}/area-riservata/admin/user-view/ricerca/${servizio.user_id}`, label: "Visualizza Annuncio", }, noreply: true, @@ -1210,7 +1206,7 @@ export const userAccettaConferma = async ({ mailType: "generic", props: { link: { - href: `${env.BASE_URL}/area-riservata/admin/user-view/ricerca/${servizio.user_id}#${servizioId}-${annuncioId}`, + href: `${env.BASE_URL}/area-riservata/admin/user-view/servizio/${servizio.user_id}/${servizioId}`, label: "Vai al servizio", }, noreply: true, diff --git a/apps/infoalloggi/src/server/services/mailer.ts b/apps/infoalloggi/src/server/services/mailer.ts index d570364..1afa84a 100644 --- a/apps/infoalloggi/src/server/services/mailer.ts +++ b/apps/infoalloggi/src/server/services/mailer.ts @@ -12,6 +12,8 @@ import EmailContattoInteressato, { } from "emails/email-interessato"; import type { Generic_NewMail } from "emails/gereric-email"; import Generic from "emails/gereric-email"; +import type { Interruzione_NewMail } from "emails/interruzione"; +import Interruzione from "emails/interruzione"; import type { Invito_NewMail } from "emails/invito"; import Invito from "emails/invito"; import type { PagamentoConferma_NewMail } from "emails/pagamento-conferma"; @@ -94,7 +96,8 @@ export type MailsTemplates = | SchedaContatto_NewMail | Invito_NewMail | ServizioAttivato_NewMail - | AvvisoInterruzione_NewMail; + | AvvisoInterruzione_NewMail + | Interruzione_NewMail; export const genMail = async ({ ...mail }: MailsTemplates) => { let mailComponent: JSX.Element | null = null; @@ -186,6 +189,10 @@ export const genMail = async ({ ...mail }: MailsTemplates) => { mailComponent = AvvisoInterruzione(); title = "Avviso Interruzione"; break; + case "interruzione": + mailComponent = Interruzione(); + title = "Interruzione servizio"; + break; default: console.error(`Tipo di email non valido: ${mail satisfies never}`); return { html: "", title: "Email non valido/modello obsoleto" };