<?php

namespace App\Console\Commands\Converters;

use Illuminate\Support\Arr;
use Illuminate\Support\Carbon;
use Illuminate\Support\Str;
use App\Models\MstCity;
use App\Models\MstPrefecture;
use App\Models\MstTown;
use App\Models\RelationInterior;
use App\Models\RelationExterior;
use App\Models\RelationVendorArticle;

class AtHomeHouseConverter
{
    public static function convert($article)
    {
        $data = [];
        // 物件種目
        $PROPERTY_OPTIONS = [
            4 => '0201', 5 => '0202'
        ];

        $property = Arr::get($PROPERTY_OPTIONS, $article->property ?? '');
        $data['bukkenShumokuCode'] = $property;

        // 建物名
        $data['tatemonoName'] = $article->name_portal;

        // 所在地
        $zipParts = explode('-', $article->zip);
        $data['shinYubinNumber1'] = Arr::get($zipParts, 0);
        $data['shinYubinNumber2'] = Arr::get($zipParts, 1);

        $prefecture = MstPrefecture::getName($article->address1);
        $city = MstCity::getName($article->address1, $article->address2);
        $town = MstTown::getName($article->address1, $article->address2, $article->address3);

        $prefectureName = optional($prefecture)->name;
        $cityName = optional($city)->name;
        $townName = optional($town)->name;

        $prefectureCode = AtHomeConverter::getPrefectureCode($prefectureName);
        $cityCode = AtHomeConverter::getCityCode($prefectureCode, $cityName);
        $townCode = AtHomeConverter::getTownCode($prefectureCode, $cityCode, $townName, $article->address4);

        $data['todofukenName'] = $prefectureName;

        $data['shozaichiCode1'] = $cityCode ?? '';
        $data['shikugunName'] = $cityName;

        if($townCode) {
            $data['shozaichiCode2'] = $townCode->town_id;
            $data['chosonName'] = $townCode->town_name;
        } else {
            $data['shozaichiCode2'] = '';
            $data['chosonName'] = $townName;
        }

        $replaceArr  = ['−' => '' , '　' => '', ' ' => '' ];
        $address4 = strtr($article->address4, $replaceArr);

        $data['banchi'] = Str::limit($address4, 30, '');
        if (empty($data["banchi"])) {
            $data["banchi"] = "未選択";
        }
        if(strpos($data['banchi'], '丁目')){
            $explodesAdrr4 = explode('丁目', $address4);
            $data['banchi'] = $explodesAdrr4[1] ?? '';
        }
        $data['chizuKensakuHikokaiFlag'] = '';
        if(is_numeric($article->lat) && is_numeric($article->lng)) {
            $data['chizuIchiKakuninZumiFlag'] = 'false';
            $data['matchingLevel'] = 'E';
            $data['idoDaihyoIchi'] = 0;
            $data['keidoDaihyoIchi'] = 0;
            $data['idoGeocoder'] = $article->lat;
            $data['keidoGeocoder'] = $article->lng;
            $data['idoChizu'] = $article->lat;
            $data['keidoChizu'] = $article->lng;
        } else {
            //$data['chizuKensakuHikokaiFlag'] = 'true';
        }
        // 建物構造
        $CONSTRUCTION_OPTIONS = [
            1 => '01', 2 => '02', 3 => '03', 4 => '04', 5 => '05',
            6 => '06', 7 => '07', 8 => '08', 9 => '09'
        ];
        $construction = Arr::get($CONSTRUCTION_OPTIONS, $article->construction ?? '');
        $data['tatemonoKozoCode'] = $construction;

        if($article->construction == 11){
            $data['tatemonoKozoSonota'] = 'RCB造';
            $data['tatemonoKozoCode'] = '10';
        }
        if($article->construction == 10){
            $data['tatemonoKozoSonota'] = 'WRC造';
            $data['tatemonoKozoCode'] = '10';
        }
        $floor = $article->floor;
        $data['chijoKaiso'] = is_numeric($floor) && $floor > 0 ? $floor : null;

        $underground = $article->underground;
        $data['chikaKaiso'] = is_numeric($underground) && $underground > 0 ? $underground : null;

        $data['kokudohoCode']  =  '';
        if($article->kokudoho == 1){
            $data['kokudohoCode'] = 11;
        }
        if($article->kokudoho == 2){
            $data['kokudohoCode'] = 12;
        }
        // 築年月

        //if($article->occupied == 1 && $article->property_sub == 1){

        $ageYear = $article->age_year;
        $ageMonth = $article->age_month;

        $data['chikuNengetsuYyyy'] = is_numeric($ageYear) ? $ageYear : 1900;

        if($ageYear > 9999) {
            $ageYearDate = Carbon::create(1900, 1, 1)
                ->addDays($ageYear);

            $data['chikuNengetsuYyyy'] = $ageYearDate->year;
        }

        $data['chikuNengetsuMm'] = is_numeric($ageMonth) && $ageMonth <= 12 ? $ageMonth : 1;
        $data['chikugoMinyukyoFlag'] = '';
        $data['shinchikuChukoKubun'] = '';
        if(is_numeric($data['chikuNengetsuYyyy'])) {
            $nowDate = Carbon::now();
            $nowDate1 = Carbon::now();
            $lastDate = $nowDate1->subYear();

            $ageDate = Carbon::create($data['chikuNengetsuYyyy'], $data['chikuNengetsuMm']);

            if($ageDate->gt($lastDate) && $article->property_sub == 1) {
                $data['shinchikuChukoKubun'] = 'true';
                $data['chikugoMinyukyoFlag'] = '';
            }


            //if(($ageDate->gt($lastDate) && $ageDate->lt($nowDate)) && $article->property_sub == 2 && $article->occupied == 1) {
            if($nowDate->diffInDays($ageDate) > 365 && $article->property_sub == 2 && $article->occupied == 1) {
                $data['chikugoMinyukyoFlag'] = 'true';
                $data['shinchikuChukoKubun'] = '';
            }
        }
        //dd($data);
        $data['tatemonoHihyojiFlag'] = 1;
        $data['gotoHihyojiFlag'] = 1;

        //if($article->property_sub == 1){
            //$data['shinchikuChukoKubun'] = 'true';
            //$data['chikugoMinyukyoFlag'] = '';
            //$data['chikuNengetsuYyyy'] = date('Y');
            //$data['chikuNengetsuMm'] = '';
        //}

        // 交通
        if ($article->main_traffic == 1 &&
            !empty($article->main_traffic_line) &&
            !empty($article->main_traffic_station) &&
            is_numeric($article->main_traffic_time)) {
//            $trafficLineName = $article->main_traffic_line;
//            $trafficStationName = $article->main_traffic_station;
//            $trafficStationName = str_replace('JR', 'ＪＲ', $trafficStationName);
//            if($trafficStationName == '瓦ケ浜'){
//                $trafficStationName = '瓦ヶ浜';
//            }
//            if($trafficStationName == '石破'){
//                $trafficStationName = '石場';
//            }
//            $trafficLineCode = '';
//            $trafficStationCode = '';
//            if(!empty($trafficLine)){
//                $trafficLineCode = $trafficLine->line_id;
//                $trafficLineName = $trafficLine->line_name;
//                foreach ($trafficLine as $trafficStation){
//                    if(strpos($trafficStationName, $trafficStation->station_name) !== false){
//                        $trafficStationCode = $trafficStation->station_id;
//                        break;
//                    }
//                }
//            }

            $trafficLine = AtHomeConverter::getTrafficLineCode($article->main_traffic_line, $article->main_traffic_station);
            $data['denshaRiyoEnsenName'] = $trafficLine->line_name ?? '';
            $data['denshaRiyoEnsenCode'] =  $trafficLine->line_id ?? '';
            $data['denshaRiyoEkiName'] = $trafficLine->station_name ?? '';
            $data['denshaRiyoEkiCode'] = $trafficLine->station_id ?? '';
            $data['denshaRiyoEkiToho'] = $article->main_traffic_time;
        }

        if(empty($data['denshaRiyoEnsenCode']) || empty($data['denshaRiyoEkiCode'])) {
            $data['denshaRiyoEnsenName'] = '';
            $data['denshaRiyoEkiName'] = '';
            $data['denshaRiyoEnsenCode'] = '';
            $data['denshaRiyoEkiCode'] = '';
            $data['denshaRiyoEkiToho'] = '';
        }

        if ($article->main_traffic == 2 &&
            !empty($article->main_traffic_bus_time) &&
            !empty($article->main_traffic_bus) &&
            is_numeric($article->main_traffic_bus_walk)) {

//            $trafficLineName = $article->main_traffic_line;
//            $trafficStationName = $article->main_traffic_station;
//
//            $trafficStationName = str_replace('JR', 'ＪＲ', $trafficStationName);
//            if($trafficStationName == '瓦ケ浜'){
//                $trafficStationName = '瓦ヶ浜';
//            }
//            if($trafficStationName == '石破'){
//                $trafficStationName = '石場';
//            }

//            $trafficLineCode = '';
//            $trafficStationCode = '';
//            if(!empty($trafficLine)){
//                $trafficLineCode = $trafficLine[0]->line_id;
//                $trafficLineName = $trafficLine[0]->line_name;
//                foreach ($trafficLine as $trafficStation){
//                    if(strpos($trafficStationName, $trafficStation->station_name) !== false){
//                        $trafficStationCode = $trafficStation->station_id;
//                        break;
//                    }
//                }
//            }

            $trafficLine = AtHomeConverter::getTrafficLineCode($article->main_traffic_line, $article->main_traffic_station);
            $data['denshaRiyoEnsenName'] = $trafficLine->line_name ?? '';
            $data['denshaRiyoEnsenCode'] = $trafficLine->line_id ?? '';;
            $data['denshaRiyoEkiName'] = $trafficLine->station_name ?? '';
            $data['denshaRiyoEkiCode'] = $trafficLine->station_id ?? '';;

            $data['busRiyoBusJosha'] = $article->main_traffic_bus_time;
            $data['busRiyoBusteiName'] = $article->main_traffic_bus;
            $data['busRiyoBusteiTohoFun'] = $article->main_traffic_bus_walk;
        }

        // 利用駅１
        if ($article->sub_traffic1 == 1 &&
            !empty($article->sub_traffic1_line) &&
            !empty($article->sub_traffic1_station) &&
            is_numeric($article->sub_traffic1_time)) {
//            $trafficLineName = $article->sub_traffic1_line;
//            $trafficStationName = $article->sub_traffic1_station;
//
//            $trafficStationName = str_replace('JR', 'ＪＲ', $trafficStationName);
//            if($trafficStationName == '瓦ケ浜'){
//                $trafficStationName = '瓦ヶ浜';
//            }
//            if($trafficStationName == '石破'){
//                $trafficStationName = '石場';
//            }

            $trafficLine = AtHomeConverter::getTrafficLineCode($article->sub_traffic1_line, $article->sub_traffic1_station);
//            $trafficLineCode = '';
//            $trafficStationCode = '';
//            if(!empty($trafficLine)){
//                $trafficLineCode = $trafficLine[0]->line_id;
//                $trafficLineName = $trafficLine[0]->line_name;
//                foreach ($trafficLine as $trafficStation){
//                    if(strpos($trafficStationName, $trafficStation->station_name) !== false){
//                        $trafficStationCode = $trafficStation->station_id;
//                        break;
//                    }
//                }
//            }

            $data['riyoEki1EnsenName'] = $trafficLine->line_name == 'ＪＲ東海道本線(米原～神戸)' ? 'ＪＲ東海道本線' : ($trafficLine->line_name ?? '');
            $data['riyoEki1EnsenCode'] = $trafficLine->line_id ?? '';
            $data['riyoEki1EkiName'] = $trafficLine->station_name ?? '';
            $data['riyoEki1EkiCode'] = $trafficLine->station_id ?? '';
            $data['riyoEki1EkiToho'] = $article->sub_traffic1_time;

//            if(empty($trafficLineCode) || empty($trafficStationCode)) {
//                $data['riyoEki1EnsenCode'] = '';
//                $data['riyoEki1EkiCode'] = '';
//            }
        }

        if ($article->sub_traffic1 == 2 &&
            !empty($article->sub_traffic1_bus_time) &&
            !empty($article->sub_traffic1_bus) &&
            is_numeric($article->sub_traffic1_bus_walk)) {
//            $trafficLineName = $article->sub_traffic1_line;
//            $trafficStationName = $article->sub_traffic1_station;
//
//            $trafficStationName = str_replace('JR', 'ＪＲ', $trafficStationName);
//            if($trafficStationName == '瓦ケ浜'){
//                $trafficStationName = '瓦ヶ浜';
//            }
//            if($trafficStationName == '石破'){
//                $trafficStationName = '石場';
//            }

            $trafficLine = AtHomeConverter::getTrafficLineCode($article->sub_traffic1_line, $article->sub_traffic1_station);
//            $trafficLineCode = '';
//            $trafficStationCode = '';
//            if(!empty($trafficLine)){
//                $trafficLineCode = $trafficLine[0]->line_id;
//                $trafficLineName = $trafficLine[0]->line_name;
//                foreach ($trafficLine as $trafficStation){
//                    if(strpos($trafficStationName, $trafficStation->station_name) !== false){
//                        $trafficStationCode = $trafficStation->station_id;
//                        break;
//                    }
//                }
//            }

            $data['riyoEki1EnsenName'] = $trafficLine->line_name == 'ＪＲ東海道本線(米原～神戸)' ? 'ＪＲ東海道本線' : ($trafficLine->line_name ?? '');
            $data['riyoEki1EnsenCode'] = $trafficLine->line_id ?? '';
            $data['riyoEki1EkiName'] = $trafficLine->station_name ?? '';
            $data['riyoEki1EkiCode'] = $trafficLine->station_id ?? '';

            $data['busRiyo1BusJosha'] = $article->sub_traffic1_bus_time;
            $data['busRiyo1BusteiName'] = $article->sub_traffic1_bus;
            $data['busRiyo1BusteiTohoFun'] = $article->sub_traffic1_bus_walk;
        }

        // 利用駅２
        if ($article->sub_traffic2 == 1 &&
            !empty($article->sub_traffic2_line) &&
            !empty($article->sub_traffic2_station) &&
            is_numeric($article->sub_traffic2_time)) {
//            $trafficLineName = $article->sub_traffic2_line;
//            $trafficStationName = $article->sub_traffic2_station;
//
//            $trafficStationName = str_replace('JR', 'ＪＲ', $trafficStationName);
//            if($trafficStationName == '瓦ケ浜'){
//                $trafficStationName = '瓦ヶ浜';
//            }
//            if($trafficStationName == '石破'){
//                $trafficStationName = '石場';
//            }

            $trafficLine = AtHomeConverter::getTrafficLineCode($article->sub_traffic2_line, $article->sub_traffic2_station);
//            $trafficLineCode = '';
//            $trafficStationCode = '';
//            if(!empty($trafficLine)){
//                $trafficLineCode = $trafficLine[0]->line_id;
//                $trafficLineName = $trafficLine[0]->line_name;
//                foreach ($trafficLine as $trafficStation){
//                    if(strpos($trafficStationName, $trafficStation->station_name) !== false){
//                        $trafficStationCode = $trafficStation->station_id;
//                        break;
//                    }
//                }
//            }

            $data['riyoEki2EnsenName'] = $trafficLine->line_name ?? '';
            $data['riyoEki2EnsenCode'] = $trafficLine->line_id ?? '';
            $data['riyoEki2EkiName'] = $trafficLine->station_name ?? '';
            $data['riyoEki2EkiCode'] = $trafficLine->station_id ?? '';
            $data['riyoEki2EkiToho'] = $article->sub_traffic2_time;

        }

        if ($article->sub_traffic2 == 2 &&
            !empty($article->sub_traffic2_bus_time) &&
            !empty($article->sub_traffic2_bus) &&
            is_numeric($article->sub_traffic2_bus_walk)) {

//            $trafficLineName = $article->sub_traffic2_line;
//            $trafficStationName = $article->sub_traffic2_station;
//
//            $trafficStationName = str_replace('JR', 'ＪＲ', $trafficStationName);
//            if($trafficStationName == '瓦ケ浜'){
//                $trafficStationName = '瓦ヶ浜';
//            }
//            if($trafficStationName == '石破'){
//                $trafficStationName = '石場';
//            }

            $trafficLine = AtHomeConverter::getTrafficLineCode($article->sub_traffic2_line, $article->sub_traffic2_station);
//            $trafficLineCode = '';
//            $trafficStationCode = '';
//            if(!empty($trafficLine)){
//                $trafficLineCode = $trafficLine[0]->line_id;
//                $trafficLineName = $trafficLine[0]->line_name;
//                foreach ($trafficLine as $trafficStation){
//                    if(strpos($trafficStationName, $trafficStation->station_name) !== false){
//                        $trafficStationCode = $trafficStation->station_id;
//                        break;
//                    }
//                }
//            }

            $data['riyoEki2EnsenName'] = $trafficLine->line_name ?? "";
            $data['riyoEki2EnsenCode'] = $trafficLine->line_id ?? "";
            $data['riyoEki2EkiName'] = $trafficLine->station_name ?? "";
            $data['riyoEki2EkiCode'] = $trafficLine->station_id ?? "";

            $data['busRiyo2BusJosha'] = $article->sub_traffic2_bus_time;
            $data['busRiyo2BusteiName'] = $article->sub_traffic2_bus;
            $data['busRiyo2BusteiTohoFun'] = $article->sub_traffic2_bus_walk;
        }

        // 施工会社

        // リフォーム（水回り）
        $data['reformNaisoSonota'] = '';

        $data['reformMizumawariKubun'] = '';
        $data['reformMizumawariYyyy'] = '';
        $data['reformMizumawariMm'] = '';

        $data['reformNaisoKubun'] = '';
        $data['reformNaisoYyyy'] = '';
        $data['reformNaisoMm'] = '';
        if($article->interior != 1) {

            $interior_place = RelationInterior::where('article_id', $article->building_id)->get();

            if ($interior_place) {
                foreach ($interior_place as $v) {
                    if($v->item_id==6) {
                        $data['reformNaisoCode'][] = 3;
                    }
                    if($v->item_id==5) {
                        $data['reformNaisoCode'][] = 4;
                    }
                    if($v->item_id == 7){
                        $data['reformNaisoSonota'] = $article->interior_place;
                    }
                    if($v->item_id == 4 || $v->item_id == 5 || $v->item_id == 6 || $v->item_id == 7){
                        if($article->interior == 3) {
                            $data['reformNaisoKubun'] = 2;
                        }else{
                            $data['reformNaisoKubun'] = 1;
                        }
                        if($v->item_id == 4){
                            $data['reformNaisoCode'][] = 5;
                        }
                        $data['reformNaisoYyyy'] = $article->interior_year;
                        $data['reformNaisoMm'] = $article->interior_month;
                    }
                    if($v->item_id == 1 || $v->item_id == 2 || $v->item_id == 3){
                        if($article->interior == 3) {
                            $data['reformMizumawariKubun'] = 2;
                        }else{
                            $data['reformMizumawariKubun'] = 1;
                        }
                        $data['reformMizumawariYyyy'] = $article->interior_year;
                        $data['reformMizumawariMm'] = $article->interior_month;
                    }
                }
                if(!isset($data['reformNaisoCode'])){
                    $data['reformNaisoCode'][] = "";
                }
            }else{
                $data['reformNaisoCode'][] = "";
            }
        }

        $interiorPlaces = RelationInterior::where('article_id', $article->building_id)
            ->pluck('item_id');

        if(!$interiorPlaces->isEmpty()) {
            $data['reformMizumawariCode'] = [];

            foreach($interiorPlaces as $interiorPlace) {
                if($interiorPlace < 4) {
                    $data['reformMizumawariCode'][] = $interiorPlace + 1;
                }
            }
        }

        $data['reformMizumawariSonota'] = '';
        // リフォーム（内装）
        if($article->interior == 2 || $article->interior == 3){
            $data['reformMizumawariSonota'] = Str::limit($article->interior_text, 200, '');
            $data['reformNaisoSonota'] = $data['reformMizumawariSonota'];
        }

        $exteriors = $article->exteriors;
        if(count($exteriors)){
            foreach ($exteriors as $exterior) {
                if($exterior->item_id == 3){
                    $data['reformGaisoSonota'] = Str::limit($article->exterior_text, 200, '');
                    break;
                }

            }
        }

        // リフォーム（内装）

        // リフォーム（外装）
        if($article->exterior != 1) {
            $data['reformGaisoKubun'] = $article->exterior - 1;
            $data['reformGaisoYyyy'] = $article->exterior_year;
            $data['reformGaisoMm'] = $article->exterior_month;
        }

        $exteriorPlaces = RelationExterior::where('article_id', $article->building_id)
            ->pluck('item_id');

        if(!$exteriorPlaces->isEmpty()) {
            $data['reformGaisoCode'] = [];

            foreach($exteriorPlaces as $exteriorPlace) {
                if($exteriorPlace < 3) {
                    $data['reformGaisoCode'][] = $exteriorPlace;
                }
            }
        }

        // 価格
        //$data['bukkenKakaku'] = $article->price;
        if($article->tax == 1){
            $data['bukkenKakaku'] = $article->price;
            $data['shohizeiGaku'] = '';
        }else{
            //$price_tax = $article->price;
            //$price = $article->price - $article->price/110;
            $tax = $article->price/11;
            $data['bukkenKakaku'] = $article->price;
            $data['shohizeiGaku'] = round($tax, 1);
        }

        // 土地権利
        $LEASEHOLD_KIND_OPTIONS = [
            1 => '03', 2 => '06', 3 => '07', 4 => '07',
            5 => '02', 6 => '04', 7 => '05', 8 => '05'
        ];

        if(in_array($article->land_right, [2, 3])) {
            $leaseholdKind = Arr::get($LEASEHOLD_KIND_OPTIONS, $article->leasehold_kind ?? '');
            $data['tochiKenriCode'] = $leaseholdKind;

            if($article->land_rent == 1) {
                $data['shakuchiryo'] = '';
                //if($article->land_rent_unit == 1){
                $data['shakuchiryo'] = $article->land_rent_val;
                //}
            } else {
                $data['shakuchiryoNashiFlag'] = 'true';
            }
            if($article->leasehold_period == 2 || $article->leasehold_period == 1) {
                $data['tochiKenriShakuchiKikanYyyy'] = $article->leasehold_period_year;
                $data['tochiKenriShakuchiKikanMm'] = $article->leasehold_period_month;
            }else{
                $data['tochiKenriShakuchiKikanYyyy'] = '';
                $data['tochiKenriShakuchiKikanMm'] = '';
            }
            if($article->deposit_cost == 1) {
                $data['tochiKenriHoshokin'] = $article->deposit_cost_val;
            }

            if($article->right_cost == 1) {
                $data['tochiKenriKenrikin'] = $article->right_cost_val;
            }
        } else {
            $data['tochiKenriCode'] = '01';
        }

        // 駐車場
        $PARKING_OPTIONS = [
            1 => '01', 8 => '03', 9 => '03', 10 => '03',
            11 => '03', 12 => '03', 13 => '04'
        ];

        $parking = Arr::get($PARKING_OPTIONS, $article->parking ?? '');
        $data['chushajoCode'] = $parking;
        $data['chushajoMuryoFlag'] = 'true';

        // その他一時金
        $costIndex = 0;
        if($article->broadcasting == 1) {
            if($article->broadcasting_presence == 1) {
                $data['sonotaIchijikinIchiranElement['.$costIndex.'].ichijikinName'] = '有線放送に係る費用（初期費用）';
                $data['sonotaIchijikinIchiranElement['.$costIndex.'].ichijikinKingaku'] = $article->broadcasting_cost;
                $costIndex++;
            }

            if($article->broadcasting_fixed_presence == 1) {
                $data['sonotaIchijikinIchiranElement['.$costIndex.'].ichijikinName'] = '有線放送に係る費用（初期費用）';
                $data['sonotaIchijikinIchiranElement['.$costIndex.'].ichijikinKingaku'] = $article->broadcasting_fixed_cost;
                $costIndex++;
            }
        }

        if($article->internet == 1) {
            if($article->internet_presence == 1) {
                $data['sonotaIchijikinIchiranElement['.$costIndex.'].ichijikinName'] = 'インターネットに係る費用（初期費用）';
                $data['sonotaIchijikinIchiranElement['.$costIndex.'].ichijikinKingaku'] = $article->internet_cost;
                $costIndex++;
            }

            if($article->internet_fixed_presence == 1) {
                $data['sonotaIchijikinIchiranElement['.$costIndex.'].ichijikinName'] = 'インターネットに係る費用（初期費用）';
                $data['sonotaIchijikinIchiranElement['.$costIndex.'].ichijikinKingaku'] = $article->internet_fixed_cost;
                $costIndex++;
            }
        }

        if($article->catv == 1) {
            if($article->catv_presence == 1) {
                $data['sonotaIchijikinIchiranElement['.$costIndex.'].ichijikinName'] = 'CATVに係る費用（初期費用）';
                $data['sonotaIchijikinIchiranElement['.$costIndex.'].ichijikinKingaku'] = $article->catv_cost;
                $costIndex++;
            }

            if($article->catv_fixed_presence == 1) {
                $data['sonotaIchijikinIchiranElement['.$costIndex.'].ichijikinName'] = 'CATVに係る費用（初期費用）';
                $data['sonotaIchijikinIchiranElement['.$costIndex.'].ichijikinKingaku'] = $article->catv_fixed_cost;
                $costIndex++;
            }
        }

        $COUNCIL_NAMES = [
            1 => '町会費', 2 => '町内会費', 3 => '自治会費'
        ];

        if($article->council > 0 &&
            $article->council_presence == 1) {
            $councilName = Arr::get($COUNCIL_NAMES, $article->council ?? '');

            $data['sonotaIchijikinIchiranElement['.$costIndex.'].ichijikinName'] = '町会費など'.(!empty($councilName) ? '（'.$councilName.'）' : '');
            $data['sonotaIchijikinIchiranElement['.$costIndex.'].ichijikinKingaku'] = $article->council_cost;
            $costIndex++;
        }

        //$data['sonotaIchijikinUmuFlag'] = $costIndex > 0 ? 0 : 1;
        $data['sonotaIchijikinUmuFlag'] = '';

        // ランニングコスト
        $ANOTHER_COST_UNIT_OPTIONS = [
            1 => 1, 2 => 2, 3 => 2
        ];

        if (!empty($article->another_cost_name1) &&
            is_numeric($article->another_cost1) &&
            is_numeric($article->another_cost_unit1)) {
            $data['sonotaRunningIchiranElement[0].sonotaRunningName'] = '';
            $data['sonotaRunningIchiranElement[0].sonotaRunningGetsugaku'] = '';

            $anotherCodeUnit1 = Arr::get($ANOTHER_COST_UNIT_OPTIONS, $article->another_cost_unit1 ?? '');
            $data['sonotaRunningIchiranElement[0].sonotaRunningShiharaiTani'] = '';
        }

        if (!empty($article->another_cost_name2) &&
            is_numeric($article->another_cost2) &&
            is_numeric($article->another_cost_unit2)) {
            $data['sonotaRunningIchiranElement[1].sonotaRunningName'] = '';
            $data['sonotaRunningIchiranElement[1].sonotaRunningGetsugaku'] = '';

            $anotherCodeUnit2 = Arr::get($ANOTHER_COST_UNIT_OPTIONS, $article->another_cost_unit2 ?? '');
            $data['sonotaRunningIchiranElement[1].sonotaRunningShiharaiTani'] = '';
        }

        // 温泉
        if(in_array($article->spring, [1, 2])) {
            //$data['onsenHikikomiJokyoCode'] = [1, 2, 3];
            //$data['onsenHikikomiZumiCode'] = [1, 2];
            //$data['onsenRiyoKeitaiCode'] = [1, 2, 3, 4, 5];

            if($article->spring_presence == 1) {
                $data['onsenHiyoTo'] = $article->spring_cost;
            }
        }

        // 土地面積
        if($article->land_area != 0) {
            $data['tochiKeisokuHoshiki'] = $article->land_area;
        }

        $data['tochiMenseki'] = $article->land_area_val;

        //地目
        switch ($article->ground) {
            case 1:
                $data['chimokuCode'] = "01";
                break;
            case 2:
                $data['chimokuCode'] = "02";
                break;
            case 3:
                $data['chimokuCode'] = "03";
                break;
            case 4:
                $data['chimokuCode'] = "04";
                break;
            case 5:
                $data['chimokuCode'] = "05";
                break;
            case 6:
                $data['chimokuCode'] = "10";
                break;
            case 7:
                $data['chimokuCode'] = "09";
                break;
            default:
                $data['chimokuCode'] = "";
                break;
        }

        //設備・機能
        $data['setsubiTokkiKubunJikoCode'] = [];
        // 私道負担面積
        if($article->road_burden != 3) {
            if($article->road_burden != 0) {
                $data['shidoFutanKubun'] = 2;
                $data['shidoMenseki'] = $article->road_burden_area;
                $data['shidofutanFutanwariaiBunshi'] = $article->road_numerator;
                $data['shidofutanFutanwariaiBunbo'] = $article->road_denominator;
                if($article->road_burden == 1){
                    $data['shidofutanFutanwariaiBunshi'] = '';
                    $data['shidofutanFutanwariaiBunbo'] = '';
                }
            } else {
                $data['shidoFutanKubun'] = 1;
            }
        }
        //おすすめコメント
        $data['staffComment'] = $article->athome_comment;
        $data['baibaiSenyoCatchcopy'] = $article->athome_appeal;
        //管理番号
        $data['jishaKanriNumber'] = $article->building_id;

        if($article->total_unit == null || $article->total_unit == 1){
            $data['bunjoJutakuUmu'] = 0;
        }else{
            $data['bunjoJutakuUmu'] = 0;
            //$data['bunjoJutakuHanbaiKosu'] = $article->total_unit > 5 ? 5 : $article->total_unit;
        }
        $data['openHouseUmuFlag'] = '';
        $data['openHouseKikanFromYyyy'] = '';
        $data['openHouseKikanFromMm'] = '';
        $data['openHouseKikanFromDd'] = '';
        $data['openHouseKikanToYyyy'] = '';
        $data['openHouseKikanToMm'] = '';
        $data['openHouseKikanToDd'] = '';
        if($article->event_category == 1 || $article->event_category == 2 || $article->event_category == 3 || $article->event_category == 4 || $article->event_category == 5 || $article->event_schedule == 3 || $article->event_schedule == 4) {
            $data['openHouseUmuFlag'] = 1;
        }
        if($article->event_schedule == 3){
            $eventDays = explode(',', $article->event_day);
            $eventDays[0] = str_replace('/', '-', $eventDays[0]);
            $eventDay = explode('-', $eventDays[0]);
            $data['openHouseKikanFromYyyy'] = $eventDay[0] ?? '';
            $data['openHouseKikanFromMm'] = $eventDay[1] ?? '';
            $data['openHouseKikanFromDd'] = $eventDay[2] ?? '';
        }
        if($article->event_schedule == 4){
            if($article->from_event != null){
                $article->from_event = str_replace('/', '-', $article->from_event);
                $eventDay = explode('-', $article->from_event);
                $data['openHouseKikanFromYyyy'] = $eventDay[0] ?? '';
                $data['openHouseKikanFromMm'] = $eventDay[1] ?? '';
                $data['openHouseKikanFromDd'] = $eventDay[2] ?? '';
            }
            if($article->to_event != null){
                $article->to_event = str_replace('/', '-', $article->to_event);
                $eventDayTo = explode('-', $article->to_event);
                $data['openHouseKikanToYyyy'] = $eventDayTo[0] ?? '';
                $data['openHouseKikanToMm'] = $eventDayTo[1] ?? '';
                $data['openHouseKikanToDd'] = $eventDayTo[2] ?? '';
            }

        }
        $data['openHouseTimeFromHh'] = '';
        $data['openHouseTimeFromMm'] = '';
        $data['openHouseTimeToHh'] = '';
        $data['openHouseTimeToMm'] = '';
        if($article->from_hour != null && $article->to_hour != null){
            $data['openHouseTimeFromHh'] = $article->from_hour;
            $data['openHouseTimeFromMm'] = $article->from_minute;
            $data['openHouseTimeToHh'] = $article->to_hour;
            $data['openHouseTimeToMm'] = $article->to_minute;
        }
        $cmt = '';
        if($article->reservation == 1){
            $cmt .= '予約制';
        }
        if($article->event_comment!= ''){
           $cmt .= ','.$article->event_comment;
        }
        $data['openHouseNaiyo'] = Str::limit($cmt, 30, '');

        //備考
        $data['athomeBiko'] = '';
        // セットバック
        if(in_array($article->set, [2, 3])) {
            if($article->set == 3){
                $data['tochimensekiSetbackSumiFlag'] = 'true';
            }else{
                $data['tochimensekiSetbackYoFlag'] = 'true';
            }
            $data['tochimensekiSetbackMenseki'] = $article->set_area;
        }

        // 建ぺい率
        $data['kenpeiRitsu'] = $article->building_rate > 100 ? 100 : $article->building_rate;

        // 容積率
        $data['yosekiRitsu'] = $article->volume_rate;

        // 接道状況
        $LAND_DIRECTION_OPTIONS = [
            1 => '01', 2 => '02', 3 => '03', 4 => '04',
            5 => '05', 6 => '06', 7 => '07', 8 => '08',
        ];

        foreach(range(1, 3) as $i) {
            $landDirection = Arr::get($LAND_DIRECTION_OPTIONS, $article->{'land_direction'.$i} ?? '');
            $data['setsudoJokyoIchiranElement['.($i -  1).'].setsudoJokyoHoi'] = $landDirection;

            $roadWidth = $article->{'road_width'.$i};
            $roadWidth = is_numeric($roadWidth) ? number_format($roadWidth, 1) : null;
            $data['setsudoJokyoIchiranElement['.($i -  1).'].setsudoJokyoHaba'] = $roadWidth;

            if(!empty($article->{'land_kind'.$i})) {
                $data['setsudoJokyoIchiranElement['.($i -  1).'].setsudoJokyoKodoShidoKubun'] = $article->{'land_kind'.$i};
            }

            $frontage = $article->{'frontage'.$i};
            $frontage = is_numeric($frontage) ? number_format($frontage, 1) : null;
            $data['setsudoJokyoIchiranElement['.($i -  1).'].setsudoJokyoSetsumen'] = $frontage;
        }

        // 都市計画
        $CITY_PLAN_OPTIONS = [
            1 => '01', 2 => '02', 3 => '03', 4 => '04', 5 => '05'
        ];

        $cityPlan = Arr::get($CITY_PLAN_OPTIONS, $article->city_plan ?? '');
        $data['toshiKeikakuCode'] = $cityPlan;

        // 用途地域
        $USE_AREA_OPTIONS = [
            1 => '11', 10 => '12', 11 => '13', 2 => '14', 12 => '15',
            3 => '16', 13 => '17', 4 => '04', 5 => '05', 6 => '06',
            7 => '07', 8 => '08', 14 => '18', 99 => '09',
        ];

        $useArea = Arr::get($USE_AREA_OPTIONS, $article->use_area ?? '');
        $data['yotoChikiCode'] = $useArea;

        if ($article->use_area != $article->land_use) {
            $data['yotoChikiCode2'] = Arr::get($USE_AREA_OPTIONS, $article->land_use ?? '');
        }
        /*if(!empty($article->land_use) && $article->use_area != $article->land_use) {
            $landUse = Arr::get($USE_AREA_OPTIONS, $article->land_use ?? '');
            $data['yotoChikiCode'] = $landUse;
        }*/

        // 地目
        if($article->land_condition1 == 1){
            $data['chiseiCode'] = "05";
        }

        //	国土法
        if($article->kokudoho == 1){
            $data['kokudohoCode'] = 11;
        }else if($article->kokudoho == 2){
            $data['kokudohoCode'] = 12;
        }



        // 地勢
        if($article->section == '' || $article->section == 1){
            $data['bunjoTakuchiUmu'] = 0;
        }else{
            $data['bunjoTakuchiUmu'] = 1;
            $data['hanbaiKosu'] = $article->section;
        }
        // 間取り
        $data['madoriHeyasu'] = $article->floor_plan;

        $FLOOR_PLAN_TYPE_OPTIONS = [
            1 => '03', 2 => '05', 4 => '02', 5 => '06',
            6 => '07', 7 => '04', 8 => '08', 9 => '09',
        ];

        $floorPlanType = Arr::get($FLOOR_PLAN_TYPE_OPTIONS, $article->floor_plan_type ?? '', '01');
        $data['madoriCode'] = $floorPlanType;

        // 建物面積
        $data['tatemonoMenseki'] = $article->total_area_val;

        // バルコニー

        // 現況
        $CURRENT_STATUS_OPTIONS = [
            1 => '01', 2 => '04', 3 => '13', 4 => '02', 5 => '05', 6 => '07', 7 => '09', 8 => '10', 9 => '11', 0 => '13'
        ];

        $currentStatus = Arr::get($CURRENT_STATUS_OPTIONS, $article->current_status ?? '');
        $data['genkyoCode'] = $currentStatus;
        //if($article->current_status == 9){
            $data['kenchikuKakuninNumber'] = $article->architecture_no;
        //}

        // 引渡し
        $MOVE_IN_OPTION = [
            1 => '01', 2 => '02', 3 => '04'
        ];

        $moveIn = Arr::get($MOVE_IN_OPTION, $article->move_in ?? '');
        $data['hikiwatashiCode'] = $moveIn;

        $data['hikiwatashiYyyy'] = '';
        $data['hikiwatashiMm'] = '';
        $data['hikiwatashiDd'] = '';
        $data['hikiwatashiJikiKubun'] = '';
        if($article->move_in == 3) {
            $data['hikiwatashiYyyy'] = $article->move_in_year;
            $data['hikiwatashiMm'] = $article->move_in_month;
//            $data['hikiwatashiDd'] = 30;
        }

        // 取引態様
        $COMPANY_MANNER_OPTIONS = [
            1 => '01', 2 => '01', 3 => '05', 4 => '04',
            5 => '06', 6 => '03', 7 => '08', 9 => '08'
        ];

        $companyManner = Arr::get($COMPANY_MANNER_OPTIONS, $article->company_manner ?? '');
        $data['torihikitaiyoCode'] = $companyManner;
        $data['sakimonoKubun'] = '';
        $data['sakimonoYyyy'] = '';
        $data['sakimonoMm'] = '';
        $data['sakimonoDd'] = '';
        $data['sakimonoMotozukeShogo'] = '';
        $data['sakimonoMotozukeTantosha'] = '';
        $data['sakimonoMotozukeTel'] = '';
        $data['kyakuzukeHoshuNashiFlag'] = 'true';
        if($article->company_manner == 9){
            $data['sakimonoKubun'] = 'true';

            $vendor = RelationVendorArticle::getVendorDataByRainsNo($article->building_id)->first();

            $data['sakimonoMotozukeShogo'] = $vendor->name;
            $data['sakimonoMotozukeTantosha'] = $vendor->charge;
            $data['sakimonoMotozukeTel'] = $vendor->vendor_tel1;
            if($article->conf_day!=''){
                $ad_day = explode('-', $article->conf_day);

                $data['sakimonoYyyy'] = $ad_day[0];
                $data['sakimonoMm'] = $ad_day[1];
                $data['sakimonoDd'] = $ad_day[2];
            }
            $data['kyakuzukeHoshuNashiFlag'] = '';
        }

        if ($article->land_delivery == 1) {
            $data['hikiwatashiCode'] = '';
        }
        // 画像１
        // 種別
        // キャプション
        // 画像２～
        // 種別
        // キャプション
        // 周辺環境１
        // 周辺環境１
        // 周辺環境１
        // 周辺環境１

        // 客付手数料
        //$data['kyakuzukeHoshuNashiFlag'] = 'true';
        $data['ekiJidoshaFun'] = "";
        $data['sonotaKotsuShudan'] = 1;

        return $data;
    }
}
