/**
 * Stub ImageApprovalAgent - Phase 2 default.
 *
 * Search engine images: returns approve with confidence 0.5 so they auto-approve
 * per FDS §12.4 (LLM auto-approval for search-engine images). Real model is a
 * future swap.
 *
 * Uploaded images: always returns needs_review with confidence 0 so they land
 * in the human moderation queue. Conservative default - no uploads skip review
 * until a real content-screening model is wired.
 */

import type {
  ImageApprovalAgent,
  SearchEngineImageReviewInput,
  SearchEngineImageReviewResult,
  UploadedImageReviewInput,
  UploadedImageReviewResult,
} from '../types.js';

export class StubImageApprovalAgent implements ImageApprovalAgent {
  async reviewSearchEngineImage(
    _input: SearchEngineImageReviewInput,
  ): Promise<SearchEngineImageReviewResult> {
    return {
      decision: 'approve',
      confidence: 0.5,
      reason: 'stub: search-engine images auto-approved in Phase 2',
    };
  }

  async reviewUploadedImage(_input: UploadedImageReviewInput): Promise<UploadedImageReviewResult> {
    return {
      decision: 'needs_review',
      confidence: 0,
      flags: ['stub: manual review required until real model is deployed'],
    };
  }
}
