import * as plugins from '../../plugins.js'; import { DcRouterDb } from '../classes.dcrouter-db.js'; import type { TGatewayClientType } from '../../../ts_interfaces/data/route-management.js'; import type { IStoredWorkAppMailIdentity } from '../../email/gateway-mail-domain-authority.js'; const getDb = () => DcRouterDb.getInstance().getDb(); /** * Authoritative WorkApp mail identity storage, grouped so one document equals * one distinct gateway-client-owned mail domain. */ @plugins.smartdata.Collection(() => getDb()) export class GatewayMailDomainDoc extends plugins.smartdata.SmartDataDbDoc< GatewayMailDomainDoc, GatewayMailDomainDoc > { @plugins.smartdata.unI() @plugins.smartdata.svDb() public id!: string; @plugins.smartdata.index() @plugins.smartdata.svDb() public ownerGatewayClientType!: TGatewayClientType; @plugins.smartdata.index() @plugins.smartdata.svDb() public ownerGatewayClientId!: string; @plugins.smartdata.index() @plugins.smartdata.svDb() public domain!: string; @plugins.smartdata.svDb() public identities: IStoredWorkAppMailIdentity[] = []; @plugins.smartdata.svDb() public createdAt!: number; @plugins.smartdata.svDb() public updatedAt!: number; }