<?php

namespace Aerex\BaikalStorage;

use Sabre\VObject\Component\VCalendar as Calendar;

class StorageManager {

  /**
   * @var Storage[]
   */

  private $storages = []; 
    

  /**
   * @var array()
   */
  private $configs;

  public function __construct($configs){
    $this->configs = $configs; 
  }

  public function getStorages() {
    return $this->storages;
  } 

  public function getConfigs() {
    return $this->configs;
  }

  public function addStorage($name, $storage) {
   $this->storages[$name] = $storage; 
  }

  public function import(Calendar $calendar) {
    if (!isset($this->configs)) {
      throw new \Exception('StorageManger was not initialize or configs are not defined'); 
    }
    foreach ($this->configs as $key => $value) {
      $storage = $this->storages[$key];
      if (!isset($storage)){
        throw new \Exception();
      }
      $storage->save($calendar);
    }
  }
}