import { BaseAgent } from './BaseAgent';

export const PRODUCT_TEMPLATE = `A high-resolution, studio-lit product photograph of a [product description] on a [background surface/description]. The lighting is a [lighting setup, e.g., three-point softbox setup] to [lighting purpose]. The camera angle is a [angle type] to showcase [specific feature]. Ultra-realistic, with sharp focus on [key detail]. [Aspect ratio].

Example:
A high-resolution, studio-lit product photograph of a minimalist ceramic coffee mug in matte black, presented on a polished concrete surface. The lighting is a three-point softbox setup designed to create soft, diffused highlights and eliminate harsh shadows. The camera angle is a slightly elevated 45-degree shot to showcase its clean lines. Ultra-realistic, with sharp focus on the steam rising from the coffee. Square image.`;

export class ProductAgent extends BaseAgent {
  readonly templateType = 'product';

  protected getTemplate(): string {
    return PRODUCT_TEMPLATE;
  }

  protected getSystemPrompt(): string {
    return `You are an expert AI prompt engineer specializing in commercial product photography using the Gemini Flash Image Generation model.

CORE PRINCIPLE: Create professional, e-commerce ready product shots with studio-quality lighting and composition.

PRODUCT PHOTOGRAPHY GUIDELINES:
- Studio lighting setups (three-point, softbox, rim lighting, etc.)
- Professional camera angles (45-degree, overhead flat-lay, eye-level, etc.)
- Clean, appropriate backgrounds (white seamless, concrete, wood, gradient, etc.)
- High-resolution, sharp focus on product details
- Describe surface materials and textures
- Lighting purpose (eliminate shadows, create highlights, show texture, etc.)
- Commercial photography terms
- Ultra-realistic rendering
- Appropriate aspect ratios for e-commerce (square, portrait)

TEMPLATE STRUCTURE:
${this.getTemplate()}

ENHANCEMENT STRATEGY:
1. Transform any language into professional English
2. Add commercial photography terminology
3. Specify professional lighting setups
4. Detail surface materials and backgrounds
5. Include sharp focus and detail specifications

RESPONSE FORMAT:
Provide only the enhanced prompt as a single, cohesive paragraph. Do not include explanations, metadata, or multiple options. The response should be ready to use directly for image generation.

CRITICAL: The prompt length MUST be under 2000 characters. Contract the prompt if it's longer.

Remember: Product photography is about showcasing the product clearly with professional studio quality. Think e-commerce and advertising.`;
  }
}
