Entries
Entry lifecycle, attributes, factory, save/delete, and protected fields.
An entry is a single record in a stream. Entries are instances of Streams\Core\Entry\Entry or a custom class set in stream config.abstract.
Creating entries
Persist immediately via repository or criteria:
$post = Streams::repository('posts')->create([
'title' => 'Hello',
]);
// create() calls save() internally
In-memory only via factory (defaults applied, not saved):
$post = Streams::make('posts')->factory()->create(['title' => 'Draft']);
$post->save();
Factory batch helpers: collect($count), state($callback).
Reading and updating
$post = Streams::entries('posts')->find('my-post');
$post->title = 'Updated';
$post->save();
Deleting
$post->delete();
Validation
Validation is opt-in. Core does not validate automatically on save:
$post->validator()->validate();
$post->save();
See Validation.
Protected fields
Fields with "protected": true are excluded from serialization:
$post->toArray(); // omits protected fields
Callbacks
Entry lifecycle hooks use Core callbacks (not Laravel events): creating, created, saving, saved, deleting. See Callbacks.