export type ApiResponse<T = unknown> = {
  success: boolean;
  data?: T;
  error?: { code: string; message: string };
};

export type PrizeInfo = {
  id: string;
  name: string;
  description: string | null;
  stock: number;
  enabled: boolean;
};

export type StampWithStatus = {
  id: string;
  name: string;
  note: string | null;
  imageColor: string;
  imageGrey: string;
  sortOrder: number;
  collected: boolean;
  collectedAt: string | null;
  redeemed: boolean;
  prize: PrizeInfo | null;
};

export type RedemptionRecord = {
  id: string;
  stampId: string;
  stampName: string;
  prizeName: string;
  redeemedAt: string;
};

export type ArticleSummary = {
  id: string;
  title: string;
  subtitle: string | null;
  coverImage: string;
  sortOrder: number;
};

export type ArticleDetail = {
  id: string;
  title: string;
  subtitle: string | null;
  body: string;
  coverImage: string;
  caption: string | null;
  sortOrder: number;
};

export type MusicSummary = {
  id: string;
  title: string;
  subtitle: string | null;
  audioFile: string;
  sortOrder: number;
};

export type MusicDetail = {
  id: string;
  title: string;
  subtitle: string | null;
  audioFile: string;
  sortOrder: number;
};
