diff --git a/migrations/Version20260519010000.php b/migrations/Version20260519010000.php new file mode 100644 index 0000000..e2bc50a --- /dev/null +++ b/migrations/Version20260519010000.php @@ -0,0 +1,84 @@ +format('Y-m-d H:i:s'); + + $prompts = [ + 'specs_research' => <<<'BODY' +List all known technical specifications for the {{articleType}}: "{{subject}}". +Include: processor, RAM, storage variants, display size and resolution, GPU, battery capacity, +ports, connectivity, weight, dimensions, OS, and any other relevant specs. +If you know this device, be specific and complete. If it is unknown, say so explicitly. +BODY, + + 'ebay_title' => <<<'BODY' +Create a concise eBay listing title (max 80 characters) for this {{typeName}}. +Device: {{deviceLabel}} +Use the most important specifications. Include condition if not "new". +Condition: {{condition}} +{{specsSection}} +Return ONLY the title text, no quotes, no explanation. +BODY, + + 'ebay_description' => <<<'BODY' +Create a professional eBay listing description in German for this {{typeName}}. +Device: {{deviceLabel}} +Include all available specifications in a clear, structured format. +Mention the condition: {{condition}}. +{{conditionNotes}} +{{specsSection}} +Use HTML formatting (ul, li, strong tags). Max 2000 characters. +BODY, + + 'vision_analyze' => <<<'BODY' +Look at this nameplate/label photo of IT hardware. +Extract the manufacturer (brand), model number/designation, and serial number visible on the label. +Do not guess or add information not on the label. +Respond in exactly this format (use empty string if not visible): +MANUFACTURER: +MODEL: +SERIAL: +BODY, + + 'json_coding' => <<<'BODY' +Convert the following hardware specifications to a JSON object. +The JSON must use these exact keys (UUIDs) and follow the indicated value formats: + +{{schema}} +{{missingHint}} +Specifications text: +{{specsText}} + +Return ONLY valid JSON. No explanation. No markdown. No extra text. +JSON: +BODY, + ]; + + foreach ($prompts as $key => $body) { + $this->addSql( + 'INSERT INTO app.prompt_templates (id, key, body, updated_at) VALUES (gen_random_uuid(), :key, :body, :now)', + ['key' => $key, 'body' => $body, 'now' => $now], + ); + } + } + + public function down(Schema $schema): void + { + $this->addSql("DELETE FROM app.prompt_templates WHERE key IN ('specs_research', 'ebay_title', 'ebay_description', 'vision_analyze', 'json_coding')"); + } +}