plank/publisher

View on GitHub
src/Contracts/PublishableAttributes.php

Summary

Maintainability
A
0 mins
Test Coverage
F
0%
<?php

namespace Plank\Publisher\Contracts;

interface PublishableAttributes
{
    /**
     * Resolve the attributes from their draft state
     */
    public function syncAttributesFromDraft(): void;

    /**
     * Publish all draft attributes
     */
    public function publishAttributes(): void;

    /**
     * Copy the published attributes to the model's draft
     */
    public function putAttributesInDraft(): void;

    /**
     * Determine if a column should be excluded from draft attributes on the Model
     */
    public function isExcludedFromDraft(string $column): bool;

    /**
     * Determine if there are any dirty draftable attributes
     */
    public function hasDirtyDraftableAttributes(): bool;

    /**
     * Get the attributes which are dirty as drafts
     */
    public function getDirtyDraftableAttributes(): array;
}