import { eg, type TypeFromCodec } from "@cloudflare/util-en-garde"; import { NullableString } from "./common"; import { TempMailboxTtlHours } from "./inboxes"; export const ADMIN_TEMP_INBOX_PAGE_SIZE = 10; const NullableTempMailboxTtlHours = eg.union([TempMailboxTtlHours, eg.null]); export const AdminDomainRequest = eg.object({ domain: eg.string, isActive: eg.boolean.optional, }); export type AdminDomainRequest = TypeFromCodec; export const AdminDomainStatusRequest = eg.object({ isActive: eg.boolean, }); export type AdminDomainStatusRequest = TypeFromCodec; export const AdminDomain = eg.object({ domain: eg.string, isActive: eg.boolean, createdAt: eg.string, inboxCount: eg.number, canDelete: eg.boolean, }); export type AdminDomain = TypeFromCodec; export const AdminDomainsResponse = eg.object({ domains: eg.array(AdminDomain), }); export type AdminDomainsResponse = TypeFromCodec; export const AdminInbox = eg.object({ address: eg.string, domain: eg.string, localPart: eg.string, emailCount: eg.number, }); export type AdminInbox = TypeFromCodec; export const AdminInboxesResponse = eg.object({ inboxes: eg.array(AdminInbox), }); export type AdminInboxesResponse = TypeFromCodec; export const AdminTempInbox = eg.object({ address: eg.string, domain: eg.string, createdAt: eg.string, expiresAt: NullableString, ttlHours: NullableTempMailboxTtlHours, emailCount: eg.number, }); export type AdminTempInbox = TypeFromCodec; export const AdminTempInboxPage = eg.object({ inboxes: eg.array(AdminTempInbox), page: eg.number, pageSize: eg.number, total: eg.number, }); export type AdminTempInboxPage = TypeFromCodec;