<?php

class UnitOfMeasure extends Model
{
  static function GetModelDesc(): ModelDesc
  {
    $Desc = new ModelDesc(self::GetClassName());
    $Desc->AddString('Unit');
    $Desc->AddString('Name');
    return $Desc;
  }
}

class Action extends Model
{
  static function GetModelDesc(): ModelDesc
  {
    $Desc = new ModelDesc(self::GetClassName());
    $Desc->AddString('Title');
    $Desc->AddReference('Type', ActionType::GetClassName());
    $Desc->AddString('URL');
    $Desc->AddReference('Group', ActionGroup::GetClassName());
    $Desc->AddReference('Icon', ActionIcon::GetClassName());
    $Desc->AddReference('PermissionOperation', PermissionOperation::GetClassName());
    $Column = $Desc->AddBoolean('Enable');
    $Column->Default = true;
    return $Desc;
  }
}

class ActionIcon extends Model
{
  static function GetModelDesc(): ModelDesc
  {
    $Desc = new ModelDesc(self::GetClassName());
    $Desc->AddString('Name');
    return $Desc;
  }
}

class ActionGroup extends Model
{
  static function GetModelDesc(): ModelDesc
  {
    $Desc = new ModelDesc(self::GetClassName());
    $Desc->AddString('Name');
    return $Desc;
  }
}

class ActionType extends Model
{
  static function GetModelDesc(): ModelDesc
  {
    $Desc = new ModelDesc(self::GetClassName());
    $Desc->AddString('Name');
    return $Desc;
  }
}

class Language extends Model
{
  static function GetModelDesc(): ModelDesc
  {
    $Desc = new ModelDesc(self::GetClassName());
    $Desc->AddString('Name');
    return $Desc;
  }
}

class Country extends Model
{
  static function GetModelDesc(): ModelDesc
  {
    $Desc = new ModelDesc(self::GetClassName());
    $Desc->AddString('Name');
    return $Desc;
  }
}
