- rackHeight: 50..150 (aski yuksekligi, cm). rackEnabled=true ise gerekli; default 60. ### Standart Olculer (tezgah) - widthX, lengthZ, heightY, spacingZ, rackHeight: 10'un kati - legHeight: 5'in kati Ornek dogru cikti (`60x200 cm tezgah, aski takimlik var, aski yuksekligi 60 cm`): {"widthX":60,"lengthZ":200,"heightY":72,"legHeight":12,"spacingZ":100,"rackEnabled":true,"rackHeight":60} Ornek dogru cikti (`70x200 tezgah hazirla` — minimum tarif): {"widthX":70,"lengthZ":200,"heightY":72,"legHeight":12,"spacingZ":100,"rackEnabled":true,"rackHeight":60} ═══════════════════════════════════════════════════════════════ ## DAVRANIS 1. Kullanici net boyut vermediyse → mantikli bir standart olcuden tasarim oner. 2. Yakinlasik boyut verdiyse → standart olcuye yuvarla, sohbette **%5 indirim** avantajini KISA belirt: "480x420 cm olarak tasarladim — OkiFix standart olcusu, **%5 ek indirim** aldin. Tam degerde israr edersen iptal olur, soyle yeter." 3. Kullanici tam deger ISRAR EDERSE → kullaniciyi dinle, israr ETME. 4. MEVCUT TASARIM varsa: sadece kullanicinin belirttigi parametreleri degistir, digerlerine dokunma. 5. Tarif gordugunde DOGRU TOOL'U CAGIR (yukaridaki tabloya bak). Soru sorma, tasarla. 6. Masa/tezgah icin ASLA cati/kapi/pencere/cephe sorma — bu parametreler sadece BINA icin gecerli. ## KAPSAM SINIRI Sen SADECE OkiFix bina/masa/tezgah parametrelerini ayarlamak icin varsin. Kullanici bunlarin DISINDA bir sey isterse (kendi hakkinda soru, sohbet, kod yazma, baska konu) tool CAGIRMA, kisaca (max 25 kelime) Turkce cevap ver: "Ben OkiFix bina, masa veya tezgah tasarimi icin buradayim. Lutfen tasarlamak istedigin urunu tarif et."$current PROMPT; } // ─── TOOL SCHEMA: BINA ────────────────────────────────────────────────────── function evcik_ai_building_tool_schema(): array { return [ 'name' => 'set_building_config', 'description' => 'Kullanici tarifine gore OkiFix BINA parametrelerini dondur (depo, ev, garaj, baraka, vb). Mevcut bina varsa sadece degisen alanlari icer.', 'input_schema' => [ 'type' => 'object', 'properties' => [ 'widthX' => [ 'type' => 'integer', 'minimum' => 100, 'maximum' => 2000, 'description' => 'Bina eni (cm)' ], 'lengthZ' => [ 'type' => 'integer', 'minimum' => 100, 'maximum' => 2000, 'description' => 'Bina boyu (cm)' ], 'heightY' => [ 'type' => 'integer', 'minimum' => 100, 'maximum' => 600, 'description' => 'Tavan yuksekligi (cm)' ], 'roofType' => [ 'type' => 'string', 'enum' => [ 'flat', 'single_slope', 'gable' ] ], 'slopeAngle' => [ 'type' => 'number', 'enum' => [ 11.25, 22.5, 45 ] ], 'slopeDirection' => [ 'type' => 'string', 'enum' => [ 'width', 'length' ] ], 'roofElevation' => [ 'type' => 'integer', 'minimum' => 0, 'maximum' => 300 ], 'eaveEnabled' => [ 'type' => 'boolean' ], 'eaveFront' => [ 'type' => 'integer', 'minimum' => 0, 'maximum' => 200 ], 'eaveBack' => [ 'type' => 'integer', 'minimum' => 0, 'maximum' => 200 ], 'eaveLeft' => [ 'type' => 'integer', 'minimum' => 0, 'maximum' => 200 ], 'eaveRight' => [ 'type' => 'integer', 'minimum' => 0, 'maximum' => 200 ], 'openings' => [ 'type' => 'array', 'items' => [ 'type' => 'object', 'required' => [ 'type', 'wall', 'width', 'height' ], 'properties' => [ 'type' => [ 'type' => 'string', 'enum' => [ 'door', 'window' ] ], 'wall' => [ 'type' => 'string', 'enum' => [ 'front', 'back', 'left', 'right' ] ], 'width' => [ 'type' => 'integer', 'minimum' => 40, 'maximum' => 400 ], 'height' => [ 'type' => 'integer', 'minimum' => 40, 'maximum' => 400 ], 'offsetAlongWall' => [ 'type' => 'integer', 'minimum' => 0 ], 'sillHeight' => [ 'type' => 'integer', 'minimum' => 0, 'maximum' => 300 ], 'panelStyle' => [ 'type' => 'string', 'enum' => [ 'single', 'double' ] ], ], ], ], ], ], ]; } // ─── TOOL SCHEMA: MASA ────────────────────────────────────────────────────── function evcik_ai_table_tool_schema(): array { return [ 'name' => 'set_table_config', 'description' => 'Kullanici tarifine gore OkiFix MASA parametrelerini dondur (calisma masasi, sehpa, yemek masasi, desk). Mevcut masa varsa sadece degisen alanlari icer.', 'input_schema' => [ 'type' => 'object', 'properties' => [ 'widthX' => [ 'type' => 'integer', 'minimum' => 30, 'maximum' => 200, 'description' => 'Masa genisligi (cm)' ], 'lengthZ' => [ 'type' => 'integer', 'minimum' => 30, 'maximum' => 400, 'description' => 'Masa uzunlugu (cm)' ], 'heightY' => [ 'type' => 'integer', 'minimum' => 30, 'maximum' => 120, 'description' => 'Masa yuksekligi (cm). Default 75.' ], ], ], ]; } // ─── TOOL SCHEMA: TEZGAH ──────────────────────────────────────────────────── function evcik_ai_workbench_tool_schema(): array { return [ 'name' => 'set_workbench_config', 'description' => 'Kullanici tarifine gore OkiFix TEZGAH parametrelerini dondur (calisma tezgahi, atolye tezgahi, workbench). Mevcut tezgah varsa sadece degisen alanlari icer.', 'input_schema' => [ 'type' => 'object', 'properties' => [ 'widthX' => [ 'type' => 'integer', 'minimum' => 30, 'maximum' => 100, 'description' => 'Tezgah eni (cm). X yonunde aralik bolmesi yok.' ], 'lengthZ' => [ 'type' => 'integer', 'minimum' => 60, 'maximum' => 400, 'description' => 'Tezgah boyu (cm)' ], 'heightY' => [ 'type' => 'integer', 'minimum' => 60, 'maximum' => 110, 'description' => 'Tezgah yuksekligi (cm). Default 72.' ], 'legHeight' => [ 'type' => 'integer', 'minimum' => 5, 'maximum' => 30, 'description' => 'Ayak yuksekligi (cm). Default 12.' ], 'spacingZ' => [ 'type' => 'integer', 'minimum' => 30, 'maximum' => 200, 'description' => 'Boyuna aralik (cm). Default 100.' ], 'rackEnabled' => [ 'type' => 'boolean', 'description' => 'Aski takimlik var mi.' ], 'rackHeight' => [ 'type' => 'integer', 'minimum' => 50, 'maximum' => 150, 'description' => 'Aski yuksekligi (cm). Default 60.' ], ], ], ]; } // ─── OPSIYONEL: WP ADMIN MENU (Secenek B kullanilirsa) ────────────────────── add_action( 'admin_menu', function () { add_options_page( 'Evcik AI', 'Evcik AI', 'manage_options', 'evcik-ai-settings', 'evcik_ai_settings_page' ); } ); function evcik_ai_settings_page(): void { if ( ! current_user_can( 'manage_options' ) ) return; if ( isset( $_POST['evcik_ai_save'] ) && check_admin_referer( 'evcik_ai_save' ) ) { $key = sanitize_text_field( $_POST['evcik_anthropic_key'] ?? '' ); if ( $key !== '' ) { update_option( 'evcik_anthropic_key', $key ); } echo '
Kaydedildi.
wp-config.php icinde EVCIK_ANTHROPIC_KEY tanimli. Bu arayuzdeki alan devre disi.
' . intval( $used_today ) . ' / ' . intval( $budget ) . ' token
'; echo '