/**
 * Zod schemas for club API routes.
 */

import { z } from 'zod';

const uuidSchema = z.uuid('Must be a valid UUID');
// ---------------------------------------------------------------------------
// GET /api/club/memberships
// ---------------------------------------------------------------------------

export const membershipSchema = z.object({
  id: uuidSchema,
  userId: uuidSchema,
  vendorId: uuidSchema,
  joinedViaOrderLineId: uuidSchema,
  joinedAt: z.iso.datetime(),
  isActive: z.boolean(),
  /** Enriched vendor display name */
  vendorDisplayName: z.string().optional(),
  /** Enriched vendor logo URL */
  vendorLogoUrl: z.url().nullable().optional(),
});

export type Membership = z.infer<typeof membershipSchema>;

export const listMembershipsResponseSchema = z.object({
  ok: z.literal(true),
  memberships: z.array(membershipSchema),
});

export type ListMembershipsResponse = z.infer<typeof listMembershipsResponseSchema>;
