<?php
Route::group(['prefix' => '/v1', 'as' => 'auth.'], function () {
    Route::post('login', 'Auth\Api\SecurityController@login')->name('login');
    Route::post('registration', 'Auth\Api\SecurityController@register')->name('registration');
    Route::post('logout', 'Auth\Api\SecurityController@logout')->name('logout')->middleware('auth:api');
    Route::post('reset', 'Auth\Api\SecurityController@resetPassword')->name('reset');
    Route::post('facebook-login', 'Auth\Api\SecurityController@facebookLogin')->name('facebook_login');
    Route::post('google-login', 'Auth\Api\SecurityController@googleLogin')->name('google_login');
    Route::post('residential-complexes-price/{id}', 'Admin\ResidentialComplexesController@generateGeneralPrices')->name('residential_complexes.price');
});
Route::group(['prefix' => '/v1', 'namespace' => 'Api', 'as' => 'api.'], function () {
    Route::get('district-statistics', 'HomeController@districtStatistics')->name('district-statistics');
    Route::get('home/residential-complex', 'HomeController@residentialComplexes')->name('residential-complexes');
    Route::get('home/developers', 'HomeController@developers')->name('developers');

    Route::get('marker-filter/{RCCode}', 'HomeController@markerFilter')->name('marker-filter');
//    Route::get('send-sms', 'HomeController@sendSms')->name('send-sms');

    Route::group(['prefix' => '/promotion', 'as' => 'subscribe.'], function () {
        Route::post('', 'PromotionController@index')->name('promotion-index');
    });

    Route::post('promotion-list', 'PromotionController@promotions')->name('promotion-list');

    Route::post('banner', 'BannerController@show')->name('banner-show');

    Route::post('seo-content', 'SeoContentController@show')->name('seo-content');

    Route::group(['prefix' => '/developers', 'as' => 'developers.'], function () {
        Route::post('/', 'DeveloperController@index')->name('index');
        Route::get('/{slug}', 'DeveloperController@show')->name('show');
        Route::post('/{slug}/residential-complexes', 'DeveloperController@developerResidentialComplexes')
            ->name('developer_rc_list');
    });

    Route::resource('customer_ratings', 'CustomerRatingsController', ['except' => ['create', 'edit']]);

    Route::group(['prefix' => '/course_of_construction', 'as' => 'course_of_construction.'], function () {
//        Route::post('/{slug}/rc', 'CourseOfConstructionController@show')->name('subscribe');
    });

    Route::group(['prefix' => '/newsletter-subscription', 'as' => 'newsletter-subscription.'], function () {
        Route::post('/subscribe', 'SubscriptionController@subscribe')->name('filter');
    });

    Route::group(['prefix' => '/customer-appeal', 'as' => 'customer-appeal.'], function () {
        Route::post('/', 'CustomerAppealsController@store')->name('appeal');
        Route::get('/question', 'CustomerAppealsController@question')->name('question');
    });

    Route::post('/presentation-phone', 'PresentationPhoneController@create')->name('presentation-phone');

    Route::post('/search', 'SearchController@search')->name('search');
    Route::post('/search-all', 'SearchController@searchAll')->name('search-all');

    Route::group(['prefix' => '/subscribe', 'as' => 'subscribe.'], function () {
        Route::post('/list-developer', 'UserWishlistController@listSubscribedUserToDeveloper')
            ->name('list-developer');
        Route::post('/list-rc', 'UserWishlistController@listSubscribedUserResidentialComplex')
            ->name('list-rc');
    });

    Route::get('planning/{id}', 'PlanningsController@show')->name('planning.show');

    Route::group(['prefix' => 'residential-complex', 'as' => 'residential-complexes.'], function () {
        Route::get('{slug}/planning-filter', 'PlanningsController@filter')->name('filter-params');
        Route::post('{slug}/course-of-construction', 'CourseOfConstructionController@show')
            ->name('course-of-construction');
        Route::get('/filter-parameters', 'ResidentialComplexesController@getFilterParameters')
            ->name('getFilterParameters');
        Route::get('/filter', 'ResidentialComplexesController@filter')->name('filter');
        Route::get('/locations', 'ResidentialComplexesController@allCoordinates')->name('allCoordinates');

        Route::get('/{slug}', 'ResidentialComplexesController@show')->name('show');

        Route::post('{slug}/planning', 'PlanningsController@index')->name('index');
    });
});

Route::group(['prefix' => '/v1', 'middleware' => ['auth:api'], 'namespace' => 'Api', 'as' => 'api.'], function () {
    Route::group(['prefix' => '/subscribe', 'as' => 'subscribe.'], function () {
        Route::post('/rc', 'UserWishlistController@subscribeUserResidentialComplex')->name('rc');
        Route::post('/update-rc', 'UserWishlistController@updateSubscribedUserResidentialComplex')->name('update-rc');

        Route::post('/developer', 'UserWishlistController@subscribeUserToDeveloper')->name('developer');
        Route::post('/update-developer', 'UserWishlistController@updateSubscribedUserToDeveloper')
            ->name('update-developer');

        Route::post('/filter', 'UserWishlistController@storeUserFilter')->name('filter')->middleware(['auth:api']);
        Route::post('/item-ids', 'UserWishlistController@showUserSubscribedItemIds')->name('item-ids');
        Route::post('/item-delete', 'UserWishlistController@deleteSubscribedItems')->name('delete-item');
        Route::get('/list-filter', 'UserWishlistController@showUserFilter')
            ->name('list-filter');
        Route::delete('/filter/{id}', 'UserWishlistController@deleteUserFilter')
            ->name('delete-filter');
    });

    Route::group(['prefix' => '/user', 'as' => 'user.'], function () {
        Route::get('/', 'UserController@show')->name('show');
        Route::post('/', 'UserController@edit')->name('edit');
    });
});
Route::group(['prefix' => '/v1', 'namespace' => 'Api\V1\Crud', 'as' => 'api.crud.'], function () {
    Route::resource('regions', 'RegionsController', ['except' => ['create', 'edit']]);
    Route::resource('cities', 'CitiesController', ['except' => ['create', 'edit']]);

    Route::resource('discricts', 'DiscrictsController', ['except' => ['create', 'edit']]);
    Route::get('discrict/lviv', 'DiscrictsController@districtOfLviv')->name('districts.lviv');
    Route::get('city-districts', 'DiscrictsController@districtsOfCity')->name('districts.city');

    Route::post('/planning/status/{id}', 'PlanningsController@changeStatus')->name('planning.status');

    Route::resource('streets', 'StreetsController', ['except' => ['create', 'edit']]);
//    Route::resource('marker_types', 'MarkerTypesController', ['except' => ['create', 'edit']]);
//    Route::resource('markers', 'MarkersController', ['except' => ['create', 'edit']]);
//    Route::resource('baners', 'BannersController', ['except' => ['create', 'edit']]);
//    Route::resource('seo_contents', 'SeoContentsController', ['except' => ['create', 'edit']]);
//    Route::resource('street_names', 'StreetNamesController', ['except' => ['create', 'edit']]);
//    Route::resource('technology_buildings', 'TechnologyBuildingsController', ['except' => ['create', 'edit']]);
//    Route::resource('heatings', 'HeatingsController', ['except' => ['create', 'edit']]);
//    Route::resource('class_housings', 'ClassHousingsController', ['except' => ['create', 'edit']]);
//    Route::resource('stage_of_constructions', 'StageOfConstructionsController', ['except' => ['create', 'edit']]);
//    Route::resource('banks', 'BanksController', ['except' => ['create', 'edit']]);
//    Route::resource('room_counts', 'RoomCountsController', ['except' => ['create', 'edit']]);
//    Route::resource('room_types', 'RoomTypesController', ['except' => ['create', 'edit']]);
//    Route::resource('other_options', 'OtherOptionsController', ['except' => ['create', 'edit']]);
//    Route::resource('developers', 'DevelopersController', ['except' => ['create', 'edit']]);
//    Route::resource('residental_complex_icons', 'ResidentalComplexIconsController', ['except' => ['create', 'edit']]);
//    Route::resource('type_properties', 'TypePropertiesController', ['except' => ['create', 'edit']]);
//    Route::resource('floors', 'FloorsController', ['except' => ['create', 'edit']]);
//    Route::resource('residential_complexes', 'ResidentialComplexesController', ['except' => ['create', 'edit']]);
//    Route::resource('customer_ratings', 'CustomerRatingsController', ['except' => ['create', 'edit']]);
//    Route::resource('secret_buyer_ratings', 'SecretBuyerRatingsController', ['except' => ['create', 'edit']]);
//    Route::resource('document_types', 'DocumentTypesController', ['except' => ['create', 'edit']]);
//    Route::resource('documents', 'DocumentsController', ['except' => ['create', 'edit']]);
////    Route::resource('promotions', 'PromotionsController', ['except' => ['create', 'edit']]);
//    Route::resource('course_of_constructions', 'CourseOfConstructionsController', ['except' => ['create', 'edit']]);
//    Route::resource('filters', 'FiltersController', ['except' => ['create', 'edit']]);
//    Route::resource('section_types', 'SectionTypesController', ['except' => ['create', 'edit']]);
//    Route::resource('sections', 'SectionsController', ['except' => ['create', 'edit']]);
//
//    Route::resource('planning_flors', 'PlanningFlorsController', ['except' => ['create', 'edit']]);
//    Route::resource('wishlist_user_residental_coms', 'WishlistUserResidentalComsController',
//        ['except' => ['create', 'edit']]);
//    Route::resource('residential_complex_characters', 'ResidentialComplexCharactersController',
//        ['except' => ['create', 'edit']]);
//    Route::resource('wishlist_user_developers', 'WishlistUserDevelopersController', ['except' => ['create', 'edit']]);
});
//Route::group(['prefix' => 'admin/v1', 'namespace' => 'Api\V1', 'as' => 'api.crud'], function () {
//    Route::post('/planning/status/{id}', 'PlanningsController@changeStatus')->name('planning.status');
//});
