IResourceMetadata.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <?php
  2. /**
  3. * @copyright 2019, Georg Ehrke <oc.list@georgehrke.com>
  4. *
  5. * @author Georg Ehrke <oc.list@georgehrke.com>
  6. *
  7. * @license GNU AGPL version 3 or any later version
  8. *
  9. * This program is free software: you can redistribute it and/or modify
  10. * it under the terms of the GNU Affero General Public License as
  11. * published by the Free Software Foundation, either version 3 of the
  12. * License, or (at your option) any later version.
  13. *
  14. * This program is distributed in the hope that it will be useful,
  15. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17. * GNU Affero General Public License for more details.
  18. *
  19. * You should have received a copy of the GNU Affero General Public License
  20. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  21. *
  22. */
  23. namespace OCP\Calendar\Resource;
  24. /**
  25. * Interface IResourceMetadata
  26. *
  27. * This interface provides keys for common metadata.
  28. * Resource Backends are not limited to this list and can provide
  29. * any metadata they want.
  30. *
  31. * @since 17.0.0
  32. */
  33. interface IResourceMetadata {
  34. /**
  35. * Type of resource
  36. *
  37. * Allowed values for this key include:
  38. * - projector
  39. * - tv
  40. * - vehicle
  41. * - other
  42. *
  43. * @since 17.0.0
  44. */
  45. public const RESOURCE_TYPE = '{http://nextcloud.com/ns}resource-type';
  46. /**
  47. * If resource is of type vehicle, this describes the type of vehicle
  48. *
  49. * Allowed values:
  50. * - bicycle
  51. * - scooter
  52. * - motorbike
  53. * - car
  54. * - plane
  55. * - helicopter
  56. * - other
  57. *
  58. * @since 17.0.0
  59. */
  60. public const VEHICLE_TYPE = '{http://nextcloud.com/ns}resource-vehicle-type';
  61. /**
  62. * Make of the vehicle
  63. *
  64. * @since 17.0.0
  65. */
  66. public const VEHICLE_MAKE = '{http://nextcloud.com/ns}resource-vehicle-make';
  67. /**
  68. * Model of the vehicle
  69. *
  70. * @since 17.0.0
  71. */
  72. public const VEHICLE_MODEL = '{http://nextcloud.com/ns}resource-vehicle-model';
  73. /**
  74. * Whether or not the car is electric
  75. *
  76. * use '1' for electric, '0' for non-electric
  77. *
  78. * @since 17.0.0
  79. */
  80. public const VEHICLE_IS_ELECTRIC = '{http://nextcloud.com/ns}resource-vehicle-is-electric';
  81. /**
  82. * Range of vehicle with a full tank
  83. *
  84. * @since 17.0.0
  85. */
  86. public const VEHICLE_RANGE = '{http://nextcloud.com/ns}resource-vehicle-range';
  87. /**
  88. * Seating capacity of the vehicle
  89. *
  90. * @since 17.0.0
  91. */
  92. public const VEHICLE_SEATING_CAPACITY = '{http://nextcloud.com/ns}resource-vehicle-seating-capacity';
  93. /**
  94. * Contact information about the person who is responsible to administer / maintain this resource
  95. * This key stores a textual description of name and possible ways to contact the person
  96. *
  97. * @since 17.0.0
  98. */
  99. public const CONTACT_PERSON = '{http://nextcloud.com/ns}resource-contact-person';
  100. /**
  101. * Link to the vcard of the contact person
  102. *
  103. * @since 17.0.0
  104. */
  105. public const CONTACT_PERSON_VCARD = '{http://nextcloud.com/ns}resource-contact-person-vcard';
  106. }