• File: CountryController.php
  • Full Path: /var/www/imaliapi/app/Http/Controllers/Api/Auth/CountryController.php
  • Date Modified: 04/15/2024 8:53 PM
  • File size: 2.42 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php

namespace App\Http\Controllers\Api\Auth;

use App\Country;
use App\District;
use App\Http\Controllers\Controller;
use App\Imali\RamoActivity;
use App\Province;
use Illuminate\Http\Request;

class CountryController extends Controller
{
    //
    // get countries list
    public function getCoutry()
    {

        // $countries = Country::query()
        //     ->with('provinces')
        //     // ->orderBy('countries.created_at', 'desc')
        //     ->select('countries.*')
        //     ->get();

        // return response()->json(['data' => $countries], 200);


        $paises = Country::query()
            ->with('provinces.districts')
            ->select('countries.*')
            ->get();

        foreach ($paises as $pais) {
            $nomePais = $pais->name;

            // Acessa as províncias associadas ao país
            $provincias = $pais->provinces;

            foreach ($provincias as $provincia) {
                $nomeProvincia = $provincia->name;

                // Acessa os distritos associados à província
                $distritos = $provincia->districts;

                foreach ($distritos as $distrito) {
                    $nomeDistrito = $distrito->name;
                }
            }
        }

        // Retorna $paises
        // return $paises;

        return response()->json(['data' => $paises], 200);
    }


    // obter lista de provincias dum Pais
    public function getProvinces($id)
    {
        $province = Province::query()
            // ->with('districts')
            ->select('provinces.*')
            ->orderBy('provinces.created_at', 'desc')
            ->where('countries_id', $id)
            ->get();

        return response()->json(['data' => $province], 200);
    }


    // obter lista de distritos duma provincia
    public function getDistricts($id)
    {
        $districts = District::query()
            // ->with('districts')
            ->select('districts.*')
            ->orderBy('districts.created_at', 'desc')
            ->where('provinces_id', $id)
            ->get();

        return response()->json(['data' => $districts], 200);
    }

	// obter lista de Ramos de actividades
    public function getActivityBranch()
    {
        $getActivityBranch = RamoActivity::query()
            ->select('ramo_activities.*')
            ->orderBy('ramo_activities.nome', 'asc')
            ->get();

        return response()->json(['data' => $getActivityBranch], 200);
    }
}