import type {
  PrivateZonePostsResponse,
  PrivateZonePostUnlockResponse,
} from "@/data/schemas/private-zone";
import type { Result } from "@/utils/result";

export interface GetPrivateZonePostsInput {
  characterId: string;
  limit?: number;
  cursor?: string | null;
}

export interface IPrivateZonePostRepository {
  getPosts(
    input: GetPrivateZonePostsInput,
  ): Promise<Result<PrivateZonePostsResponse>>;
  unlockPost(
    postId: string,
    expectedCost: number,
  ): Promise<Result<PrivateZonePostUnlockResponse>>;
}
