<?php

namespace App\Console\Commands;

use App\Packages\Capsule\Services\CapsuleFeedService;
use App\Packages\Capsule\Transformer\CapsuleArrayTransformer;
use App\Packages\User\Models\User;
use App\Services\GoogleMaps\GoogleGeoService;
use Auth;
use Illuminate\Console\Command;

/**
 * Class FeedCommand
 * @package App\Console\Commands
 */
class FeedCommand extends Command
{
    protected $signature = 'command:feed';

    public function handle()
    {
        $capsulesLeft = 10;
        $capsules = collect();

        /** @var CapsuleFeedService $feedService */
        $feedService = app()->make(CapsuleFeedService::class);

        /** @var User $user */
        $user = User::repository()->first();

        // Past capsules
        $pastCapsules = $feedService->getPastCapsules($user, null, 3);
        $pastCapsules = $pastCapsules->sortBy('open_at');

        $capsules = $capsules->merge($pastCapsules);
        $capsulesLeft -= $pastCapsules->count();


        $futureCapsules = $feedService->getFutureCapsules($user, null, $capsulesLeft);
        $capsules = $capsules->merge($futureCapsules);

        $capsules = $capsules->map(
            function ($capsule) use ($user) {
                return CapsuleArrayTransformer::feedCapsuleArray($capsule, $user);
            }
        );
    }
}













