import type {
  PrivateRoomMomentsResponse,
  PrivateRoomUnlockResponse,
} from "@/data/dto/private-room";
import type { Result } from "@/utils/result";

export interface GetPrivateRoomMomentsInput {
  character?: string;
  limit?: number;
  cursor?: string | null;
}

export interface IPrivateRoomRepository {
  getMoments(
    input?: GetPrivateRoomMomentsInput,
  ): Promise<Result<PrivateRoomMomentsResponse>>;

  unlockMoment(
    momentId: string,
    expectedCost: number,
  ): Promise<Result<PrivateRoomUnlockResponse>>;
}
