<?php

namespace Shopping\Address\Repositories\Presenter;

use League\Fractal\TransformerAbstract;
use Hashids;

class AddressTransformer extends TransformerAbstract
{
    public function transform(\Shopping\Address\Models\Address $address)
    {
        return [
            'id'                => $address->getRouteKey(),
            'key'               => [
                'public'    => $address->getPublicKey(),
                'route'     => $address->getRouteKey(),
            ], 
            'client_id'         => $address->client_id,
            'user_id'           => $address->user_id,
            'user_type'         => $address->user_type,
            'slug'              => $address->slug,
            'name'              => $address->name,
            'phone'             => $address->phone,
            'address_line1'     => $address->address_line1,
            'address_line2'     => $address->address_line2,
            'country_id'        => $address->country_id,
            'state_id'          => $address->state_id,
            'district_id'       => $address->district_id,
            'location_id'       => $address->location_id,
            'postal_code'       => $address->postal_code,
            'default'           => $address->default,
            'deleted_at'        => $address->deleted_at,
            'url'               => [
                'public'    => trans_url('address/'.$address->getPublicKey()),
                'user'      => guard_url('address/address/'.$address->getRouteKey()),
            ], 
            'status'            => trans('app.'.$address->status),
            'created_at'        => format_date($address->created_at),
            'updated_at'        => format_date($address->updated_at),
        ];
    }
}