---
title: "Dátový model a surové dáta — Git for Laravel | Roundly"
description: "Objekty nezávislé od platformy s normalizovaným ResourceState, únikovou cestou raw() pre polia mimo modelu a čistým výstupom do poľa a JSON."
url: https://roundly-consulting.com/sk/open-source/navody/git-for-laravel/datovy-model
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Git for Laravel](https://roundly-consulting.com/sk/open-source/navody/git-for-laravel.md)

# Dátový model a surové dáta

Každý objekt zdroja je nezávislý od platformy: nesie ProviderName, z ktorého pochádza, normalizovaný enum ResourceState namiesto surového reťazca open/opened/OPEN a metódu raw(), ktorá vráti presný dekódovaný payload platformy pre akékoľvek pole, ktoré objekt nemodeluje. raw sa nikdy neserializuje do toArray() ani toJson():

```php
use RoundlyConsulting\Git\Enums\ResourceState;

$pr = Git::github()->repo('acme/api')->pullRequest(1)->get();

$pr->state;                          // ResourceState::Open — identical across GitHub/GitLab/Bitbucket
$pr->state === ResourceState::Merged;
$pr->draft;                          // bool
$pr->provider;                       // ProviderName::Github
$pr->raw()['mergeable'];             // any unmodelled provider field, still reachable

$pr->toArray();                      // canonical shape — raw is never serialized
$pr->toJson();
```

## Mapovanie stavov

Pull requesty a issues normalizujú stav na každej platforme rovnako; nerozpoznané hodnoty sa namiesto výnimky zmenia na Unknown a pôvodný reťazec zostáva dostupný cez raw():

| ResourceState | GitHub | GitLab | Bitbucket |
| --- | --- | --- | --- |
| `Open` | open | opened | OPEN |
| `Closed` | closed | closed, locked | DECLINED, SUPERSEDED |
| `Merged` | merged | merged | MERGED |
| `Unknown` | čokoľvek iné | čokoľvek iné | čokoľvek iné |

Stav konceptu (draft) je samostatná booleovská hodnota — PullRequest::$draft, ktorú balík na všetkých troch platformách číta z poľa draft, z REST API aj z webhookov — nie stav.

## Head commit, viditeľnosť a odkazy

PullRequest::$headSha a $headRepository (owner/name repozitára s head vetvou — pri pull requeste z forku repozitár forku) a Repository::$private, $language a $webUrl môžu byť null a plnia sa z REST aj webhook payloadov. V konštruktore sú za raw, takže pozičné volania new PullRequest(…) a new Repository(…) fungujú ďalej, a každé z nich je v toArray() aj v JSON:

| Pole | GitHub | GitLab | Bitbucket |
| --- | --- | --- | --- |
| `PullRequest::$headSha` | `head.sha` | sha (REST), last\_commit.id (hook) | source.commit.hash — skrátený 12-znakový hash |
| `PullRequest::$headRepository` | head.repo.full\_name (null pri zmazanom forku) | null — nesie sa len id projektu | `source.repository.full_name` |
| `Repository::$private` | `private` | visibility iné ako public — internal sa počíta za súkromný; visibility\_level z hooku sa číta rovnako | `is_private` |
| `Repository::$language` | `language` | null — v payloade projektu chýba | language (prázdne → null) |
| `Repository::$webUrl` | `html_url` | `web_url` | `links.html.href` |

## Enumy

Každý enum — Feature, ProviderName, ResourceState, MergeMethod, ReviewEvent, DiffSide, CommentTarget, ComparisonStatus, ActivityType, WorkflowStatus a WorkflowConclusion — zdieľa pomocné metódy z enums-for-laravel: values(), labels(), options(), validationRule() a vyhľadávanie prípadov:

```php
use RoundlyConsulting\Git\Enums\ProviderName;

ProviderName::values();           // Collection: github, gitlab, bitbucket
ProviderName::options();          // {value, label, name} options for a select
ProviderName::validationRule();   // "in:github,gitlab,bitbucket"
ProviderName::Github->label();    // "GitHub"

$request->validate(['provider' => ['required', ProviderName::validationRule()]]);
```

## Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

[Ďalšie spôsoby podpory vrátane kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/git-for-laravel.md)
