// src/server/features/paymaster/paymaster.schema.ts
// Zod schemas for paymaster (cash register) validation

import { z } from 'zod';
import {
  paymasterRowSchema,
  createPaymasterRowSchema,
  updatePaymasterRowSchema,
  paymasterListResponseSchema,
  paymasterRowWrapperSchema,
  paymasterTotalsSchema,
  dateBoundariesSchema,
  paymasterPeriodReportSchema,
  type PaymasterRow,
  type CreatePaymasterRow,
  type UpdatePaymasterRow,
  type PaymasterTotals,
  type DateBoundaries,
  type PaymasterPeriodReport,
} from '@shared/contracts/paymaster';

// Re-export schemas from shared contracts
export {
  paymasterRowSchema,
  createPaymasterRowSchema,
  updatePaymasterRowSchema,
  paymasterListResponseSchema,
  paymasterRowWrapperSchema,
  paymasterTotalsSchema,
  dateBoundariesSchema,
  paymasterPeriodReportSchema,
};

// Re-export types from shared contracts
export type {
  PaymasterRow,
  CreatePaymasterRow,
  UpdatePaymasterRow,
  PaymasterTotals,
  DateBoundaries,
  PaymasterPeriodReport,
};

// Local schemas for API responses
export const paymasterRowResponseSchema = paymasterRowSchema;
export const createPaymasterRowInputSchema = createPaymasterRowSchema;
export const updatePaymasterRowInputSchema = updatePaymasterRowSchema;
export const paymasterTotalsResponseSchema = paymasterTotalsSchema;

// Type aliases for backward compatibility
export type PaymasterRowResponse = PaymasterRow;
export type CreatePaymasterRowInput = CreatePaymasterRow;
export type UpdatePaymasterRowInput = UpdatePaymasterRow;
