<?php
namespace SabaiApps\Directories\Component\Entity\Feature;

use SabaiApps\Directories\Component\Entity\Model\Bundle;
use SabaiApps\Directories\Component\Entity\Type\IEntity;

interface IFeature {

	public function entityFeatureInfo( $key = null );
	public function entityFeatureDefaultSettings( Bundle $bundle );
	public function entityFeatureSupports( Bundle $bundle );
	public function entityFeatureSettingsForm( Bundle $bundle, array $settings, array $parents = array() );
	public function entityFeatureIsEnabled( Bundle $bundle, array $settings );
	public function entityFeatureOnEntityForm( Bundle $bundle, array $settings, array &$form, ?IEntity $entity = null, $isAdmin = false );
	public function entityFeatureOnEntityFieldValues( IEntity $entity, Bundle $bundle, array $settings );
}
