register('venta_id', (new Implement\Repository\Mapper()) ->setProperty('venta') ->setFunction(function($data) { return $this->ventaRepository->fetchById($data['venta_id']); })); return $this->parseData(new Model\MediosPago\Toku\Subscription(), $data, $map); } public function save(Define\Model $model): Model\MediosPago\Toku\Subscription { $model->id = $this->saveNew( ['venta_id', 'toku_id', 'created_at'], [$model->venta->id, $model->toku_id, (new DateTimeImmutable())->format('Y-m-d H:i:s.u')] ); return $model; } public function edit(Define\Model $model, array $new_data): Model\MediosPago\Toku\Subscription { return $this->update($model, ['venta_id', 'toku_id', 'updated_at'], array_merge($new_data, ['updated_at' => (new DateTimeImmutable())->format('Y-m-d H:i:s.u')])); } public function fetchByVenta(int $venta_id): Model\MediosPago\Toku\Subscription { $query = $this->connection->getQueryBuilder() ->select() ->from($this->getTable()) ->where('venta_id = :venta_id'); return $this->fetchOne($query, compact('venta_id')); } }