import { MailDeliverer } from "./mail.ts"; import { DbService } from "./db.ts"; import { DovecotMailDeliverer } from "./dovecot.ts"; import { AwsContext } from "./aws/base.ts"; import { AwsMailDeliverer } from "./aws/deliver.ts"; export abstract class MailTrafficHandler { constructor( public readonly receiver: MailDeliverer, public readonly sender: MailDeliverer, ) {} } export class AwsRelayTrafficHandler extends MailTrafficHandler { constructor( private readonly db: DbService, private readonly aws: AwsContext, ) { super(new DovecotMailDeliverer(), new AwsMailDeliverer(aws)); } }