Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
20 / 20
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
PlanHubspotConfigResource
100.00% covered (success)
100.00%
20 / 20
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 toArray
100.00% covered (success)
100.00%
20 / 20
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace App\Http\Resources\v2;
4
5use Illuminate\Http\Request;
6use Illuminate\Http\Resources\Json\JsonResource;
7
8/**
9 * Resource for transforming PlanHubspotConfig models for API responses.
10 *
11 * @property string $_id The config ID
12 * @property string $plan_id The plan ID
13 * @property string|null $name Display name in HubSpot
14 * @property string|null $last_product Last product name in HubSpot
15 * @property string|null $cancel_subscription_date HubSpot property name for cancel date
16 * @property string|null $payment_status HubSpot property name for payment status
17 * @property string|null $subscription_annual_recurring_revenue HubSpot property name for ARR
18 * @property string|null $subscription_churn_date HubSpot property name for churn date
19 * @property string|null $subscription_expiration_date HubSpot property name for expiration date
20 * @property string|null $subscription_frequency HubSpot property name for billing frequency
21 * @property string|null $subscription_monthly_recurring_revenue HubSpot property name for MRR
22 * @property string|null $subscription_plan_type HubSpot property name for plan type
23 * @property string|null $subscription_start_date HubSpot property name for start date
24 * @property string|null $subscription_status HubSpot property name for subscription status
25 * @property string|null $subscription_status_updated_on HubSpot property name for status update timestamp
26 * @property string|null $user_type HubSpot property name for user type
27 * @property \Carbon\Carbon|null $created_at When the config was created
28 * @property \Carbon\Carbon|null $updated_at When the config was last updated
29 */
30class PlanHubspotConfigResource extends JsonResource
31{
32    /**
33     * Transform the resource into an array.
34     *
35     * @return array<string, mixed>
36     */
37    public function toArray(Request $request): array
38    {
39        return [
40            'id' => (string) $this->_id,
41            'plan_id' => (string) $this->plan_id,
42            'name' => $this->name,
43            'last_product' => $this->last_product,
44            'cancel_subscription_date' => $this->cancel_subscription_date,
45            'payment_status' => $this->payment_status,
46            'subscription_annual_recurring_revenue' => $this->subscription_annual_recurring_revenue,
47            'subscription_churn_date' => $this->subscription_churn_date,
48            'subscription_expiration_date' => $this->subscription_expiration_date,
49            'subscription_frequency' => $this->subscription_frequency,
50            'subscription_monthly_recurring_revenue' => $this->subscription_monthly_recurring_revenue,
51            'subscription_plan_type' => $this->subscription_plan_type,
52            'subscription_start_date' => $this->subscription_start_date,
53            'subscription_status' => $this->subscription_status,
54            'subscription_status_updated_on' => $this->subscription_status_updated_on,
55            'user_type' => $this->user_type,
56            'created_at' => $this->created_at?->timestamp,
57            'updated_at' => $this->updated_at?->timestamp,
58        ];
59    }
60}