import CatalogMemberTraits from "./CatalogMemberTraits";
import MappableTraits from "./MappableTraits";
import mixTraits from "../mixTraits";
import UrlTraits from "./UrlTraits";
import { traitClass } from "../Trait";
import CesiumIonTraits from "./CesiumIonTraits";

@traitClass({
  description: `Creates a Cesium terrain item in the catalog from url.`,
  example: {
    type: "cesium-terrain",
    description:
      "This product is a terrain, it provides a representation of the earth's surface with which to apply data in Digital Twin Victoria. The terrain has been generated by transforming Vicmap Elevation digital elevation models (DEMs) into a quantized-mesh terrain tileset. The combined Vicmap elevation extent is embedded in ‘Cesium World Terrain’. These DEMs include ‘Vicmap Elevation DEM 10m’ which provides a base for state-wide coverage. Where available 1m DEMs have been embedded over the ‘Vicmap Elevation DEM 10m’ product.",
    url: "https://storage.googleapis.com/vic-datasets-public/85b71982-f5fe-4093-b4e4-fd2e50198fba/v2",
    name: "A Vic Terrain",
    id: "some-unique-id"
  }
})
export default class CesiumTerrainCatalogItemTraits extends mixTraits(
  UrlTraits,
  MappableTraits,
  CatalogMemberTraits,
  CesiumIonTraits
) {}
