/** * Build a plan entity based on a json-decoded plan stdClass * * @param stdClass $response The plan data * @return Syspay_Merchant_Entity_Plan The plan object */ public static function buildFromResponse(stdClass $response) { $plan = new self(); $plan->setId(isset($response->id) ? $response->id : null); $plan->setStatus(isset($response->status) ? $response->status : null); $plan->setName(isset($response->name) ? $response->name : null); $plan->setDescription(isset($response->description) ? $response->description : null); $plan->setCurrency(isset($response->currency) ? $response->currency : null); $plan->setTrialAmount(isset($response->trial_amount) ? $response->trial_amount : null); $plan->setTrialPeriod(isset($response->trial_period) ? $response->trial_period : null); $plan->setTrialPeriodUnit(isset($response->trial_period_unit) ? $response->trial_period_unit : null); $plan->setTrialCycles(isset($response->trial_cycles) ? $response->trial_cycles : null); $plan->setBillingAmount(isset($response->billing_amount) ? $response->billing_amount : null); $plan->setBillingPeriod(isset($response->billing_period) ? $response->billing_period : null); $plan->setBillingPeriodUnit(isset($response->billing_period_unit) ? $response->billing_period_unit : null); $plan->setBillingCycles(isset($response->billing_cycles) ? $response->billing_cycles : null); $plan->setInitialAmount(isset($response->initial_amount) ? $response->initial_amount : null); $plan->setRetryMapId(isset($response->retry_map_id) ? $response->retry_map_id : null); $plan->setType(isset($response->type) ? $response->type : null); if (isset($response->created) && !is_null($response->created)) { $plan->setCreated(Syspay_Merchant_Utils::tsToDateTime($response->created)); } return $plan; }