import { z } from 'zod'; export namespace RecurrentNotificationCommand { export const RequestSchema = z .object({ Id: z.string(), AccountId: z.string(), Description: z.string(), Email: z.string(), Amount: z.coerce.number(), Currency: z.string(), // "RUB", "USD", "EUR", "GBP" RequireConfirmation: z.coerce.boolean(), StartDate: z.string(), // ISO‐8601 datetime in UTC, e.g. "2025-07-21T14:30:00Z" Interval: z.string(), // "Week", "Month", "Year" Period: z.coerce.number(), Status: z.string(), SuccessfulTransactionsNumber: z.coerce.number(), FailedTransactionsNumber: z.coerce.number(), MaxPeriods: z.coerce.number().optional(), LastTransactionDate: z.string().optional(), // "yyyy-MM-dd HH:mm:ss" NextTransactionDate: z.string().optional(), // "yyyy-MM-dd HH:mm:ss" }) .transform((data) => ({ id: data.Id, accountId: data.AccountId, description: data.Description, email: data.Email, amount: data.Amount, currency: data.Currency, requireConfirmation: data.RequireConfirmation, startDate: data.StartDate, interval: data.Interval, period: data.Period, status: data.Status, successfulTransactionsNumber: data.SuccessfulTransactionsNumber, failedTransactionsNumber: data.FailedTransactionsNumber, maxPeriods: data.MaxPeriods, lastTransactionDate: data.LastTransactionDate, nextTransactionDate: data.NextTransactionDate, })); export type Request = z.infer; export const ResponseSchema = z.object({ code: z.number(), }); export type Response = z.infer; }