GetApiV3TipitakaChapterChannelsBookPara200ResponseDataInner.php 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695
  1. <?php
  2. /**
  3. * GetApiV3TipitakaChapterChannelsBookPara200ResponseDataInner
  4. *
  5. * PHP version 8.1
  6. *
  7. * @category Class
  8. * @package WikipaliApi
  9. * @author OpenAPI Generator team
  10. * @link https://openapi-generator.tech
  11. */
  12. /**
  13. * MINT API
  14. *
  15. * International Academy Of Pali Tipitaka(国际巴利三藏学院) 由 `php openapi/scripts/generate.php` 依据 api-v13 的路由与控制器源码生成。 响应统一封装为 `{ok, message, data}`;`ok=false` 时 `message` 为错误信息。
  16. *
  17. * The version of the OpenAPI document: 2026.11.9
  18. * Generated by: https://openapi-generator.tech
  19. * Generator version: 7.25.0
  20. */
  21. /**
  22. * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  23. * https://openapi-generator.tech
  24. * Do not edit the class manually.
  25. */
  26. namespace WikipaliApi\Model;
  27. use \ArrayAccess;
  28. use \WikipaliApi\ObjectSerializer;
  29. /**
  30. * GetApiV3TipitakaChapterChannelsBookPara200ResponseDataInner Class Doc Comment
  31. *
  32. * @category Class
  33. * @package WikipaliApi
  34. * @author OpenAPI Generator team
  35. * @link https://openapi-generator.tech
  36. * @implements \ArrayAccess<string, mixed>
  37. */
  38. class GetApiV3TipitakaChapterChannelsBookPara200ResponseDataInner implements ModelInterface, ArrayAccess, \JsonSerializable
  39. {
  40. public const DISCRIMINATOR = null;
  41. /**
  42. * The original name of the model.
  43. *
  44. * @var string
  45. */
  46. protected static $openAPIModelName = 'get_api_v3_tipitaka_chapter_channels_book_para__200_response_data_inner';
  47. /**
  48. * Array of property to type mappings. Used for (de)serialization
  49. *
  50. * @var string[]
  51. */
  52. protected static $openAPITypes = [
  53. 'id' => 'string',
  54. 'book' => 'int',
  55. 'para' => 'int',
  56. 'progress' => 'float',
  57. 'progress_line' => 'int[]',
  58. 'views' => 'int',
  59. 'updated_at' => 'string',
  60. 'channel' => '\WikipaliApi\Model\GetApiV3TipitakaChapterChannelsBookPara200ResponseDataInnerChannel',
  61. 'studio' => '\WikipaliApi\Model\GetApiV3TipitakaChapterChannelsBookPara200ResponseDataInnerStudio'
  62. ];
  63. /**
  64. * Array of property to format mappings. Used for (de)serialization
  65. *
  66. * @var string[]
  67. * @phpstan-var array<string, string|null>
  68. * @psalm-var array<string, string|null>
  69. */
  70. protected static $openAPIFormats = [
  71. 'id' => null,
  72. 'book' => null,
  73. 'para' => null,
  74. 'progress' => null,
  75. 'progress_line' => null,
  76. 'views' => null,
  77. 'updated_at' => null,
  78. 'channel' => null,
  79. 'studio' => null
  80. ];
  81. /**
  82. * Array of nullable properties. Used for (de)serialization
  83. *
  84. * @var boolean[]
  85. */
  86. protected static array $openAPINullables = [
  87. 'id' => false,
  88. 'book' => false,
  89. 'para' => false,
  90. 'progress' => false,
  91. 'progress_line' => true,
  92. 'views' => false,
  93. 'updated_at' => false,
  94. 'channel' => false,
  95. 'studio' => true
  96. ];
  97. /**
  98. * If a nullable field gets set to null, insert it here
  99. *
  100. * @var boolean[]
  101. */
  102. protected array $openAPINullablesSetToNull = [];
  103. /**
  104. * Array of property to type mappings. Used for (de)serialization
  105. *
  106. * @return array
  107. */
  108. public static function openAPITypes()
  109. {
  110. return self::$openAPITypes;
  111. }
  112. /**
  113. * Array of property to format mappings. Used for (de)serialization
  114. *
  115. * @return array
  116. */
  117. public static function openAPIFormats()
  118. {
  119. return self::$openAPIFormats;
  120. }
  121. /**
  122. * Array of nullable properties
  123. *
  124. * @return array
  125. */
  126. protected static function openAPINullables(): array
  127. {
  128. return self::$openAPINullables;
  129. }
  130. /**
  131. * Array of nullable field names deliberately set to null
  132. *
  133. * @return boolean[]
  134. */
  135. private function getOpenAPINullablesSetToNull(): array
  136. {
  137. return $this->openAPINullablesSetToNull;
  138. }
  139. /**
  140. * Setter - Array of nullable field names deliberately set to null
  141. *
  142. * @param boolean[] $openAPINullablesSetToNull
  143. */
  144. private function setOpenAPINullablesSetToNull(array $openAPINullablesSetToNull): void
  145. {
  146. $this->openAPINullablesSetToNull = $openAPINullablesSetToNull;
  147. }
  148. /**
  149. * Checks if a property is nullable
  150. *
  151. * @param string $property
  152. * @return bool
  153. */
  154. public static function isNullable(string $property): bool
  155. {
  156. return self::openAPINullables()[$property] ?? false;
  157. }
  158. /**
  159. * Checks if a nullable property is set to null.
  160. *
  161. * @param string $property
  162. * @return bool
  163. */
  164. public function isNullableSetToNull(string $property): bool
  165. {
  166. return in_array($property, $this->getOpenAPINullablesSetToNull(), true);
  167. }
  168. /**
  169. * Array of attributes where the key is the local name,
  170. * and the value is the original name
  171. *
  172. * @var string[]
  173. */
  174. protected static $attributeMap = [
  175. 'id' => 'id',
  176. 'book' => 'book',
  177. 'para' => 'para',
  178. 'progress' => 'progress',
  179. 'progress_line' => 'progress_line',
  180. 'views' => 'views',
  181. 'updated_at' => 'updated_at',
  182. 'channel' => 'channel',
  183. 'studio' => 'studio'
  184. ];
  185. /**
  186. * Array of attributes to setter functions (for deserialization of responses)
  187. *
  188. * @var string[]
  189. */
  190. protected static $setters = [
  191. 'id' => 'setId',
  192. 'book' => 'setBook',
  193. 'para' => 'setPara',
  194. 'progress' => 'setProgress',
  195. 'progress_line' => 'setProgressLine',
  196. 'views' => 'setViews',
  197. 'updated_at' => 'setUpdatedAt',
  198. 'channel' => 'setChannel',
  199. 'studio' => 'setStudio'
  200. ];
  201. /**
  202. * Array of attributes to getter functions (for serialization of requests)
  203. *
  204. * @var string[]
  205. */
  206. protected static $getters = [
  207. 'id' => 'getId',
  208. 'book' => 'getBook',
  209. 'para' => 'getPara',
  210. 'progress' => 'getProgress',
  211. 'progress_line' => 'getProgressLine',
  212. 'views' => 'getViews',
  213. 'updated_at' => 'getUpdatedAt',
  214. 'channel' => 'getChannel',
  215. 'studio' => 'getStudio'
  216. ];
  217. /**
  218. * Array of attributes where the key is the local name,
  219. * and the value is the original name
  220. *
  221. * @return array
  222. */
  223. public static function attributeMap()
  224. {
  225. return self::$attributeMap;
  226. }
  227. /**
  228. * Array of attributes to setter functions (for deserialization of responses)
  229. *
  230. * @return array
  231. */
  232. public static function setters()
  233. {
  234. return self::$setters;
  235. }
  236. /**
  237. * Array of attributes to getter functions (for serialization of requests)
  238. *
  239. * @return array
  240. */
  241. public static function getters()
  242. {
  243. return self::$getters;
  244. }
  245. /**
  246. * The original name of the model.
  247. *
  248. * @return string
  249. */
  250. public function getModelName()
  251. {
  252. return self::$openAPIModelName;
  253. }
  254. /**
  255. * Associative array for storing property values
  256. *
  257. * @var mixed[]
  258. */
  259. protected $container = [];
  260. /**
  261. * Constructor
  262. *
  263. * @param mixed[]|null $data Associated array of property values
  264. * initializing the model
  265. */
  266. public function __construct(?array $data = null)
  267. {
  268. $this->setIfExists('id', $data ?? [], null);
  269. $this->setIfExists('book', $data ?? [], null);
  270. $this->setIfExists('para', $data ?? [], null);
  271. $this->setIfExists('progress', $data ?? [], null);
  272. $this->setIfExists('progress_line', $data ?? [], null);
  273. $this->setIfExists('views', $data ?? [], null);
  274. $this->setIfExists('updated_at', $data ?? [], null);
  275. $this->setIfExists('channel', $data ?? [], null);
  276. $this->setIfExists('studio', $data ?? [], null);
  277. }
  278. /**
  279. * Sets $this->container[$variableName] to the given data or to the given default Value; if $variableName
  280. * is nullable and its value is set to null in the $fields array, then mark it as "set to null" in the
  281. * $this->openAPINullablesSetToNull array
  282. *
  283. * @param string $variableName
  284. * @param array $fields
  285. * @param mixed $defaultValue
  286. */
  287. private function setIfExists(string $variableName, array $fields, $defaultValue): void
  288. {
  289. if (self::isNullable($variableName) && array_key_exists($variableName, $fields) && is_null($fields[$variableName])) {
  290. $this->openAPINullablesSetToNull[] = $variableName;
  291. }
  292. $this->container[$variableName] = $fields[$variableName] ?? $defaultValue;
  293. }
  294. /**
  295. * Show all the invalid properties with reasons.
  296. *
  297. * @return array invalid properties with reasons
  298. */
  299. public function listInvalidProperties()
  300. {
  301. $invalidProperties = [];
  302. return $invalidProperties;
  303. }
  304. /**
  305. * Validate all the properties in the model
  306. * return true if all passed
  307. *
  308. * @return bool True if all properties are valid
  309. */
  310. public function valid()
  311. {
  312. return count($this->listInvalidProperties()) === 0;
  313. }
  314. /**
  315. * Gets id
  316. *
  317. * @return string|null
  318. */
  319. public function getId()
  320. {
  321. return $this->container['id'];
  322. }
  323. /**
  324. * Sets id
  325. *
  326. * @param string|null $id id
  327. *
  328. * @return self
  329. */
  330. public function setId($id)
  331. {
  332. if (is_null($id)) {
  333. throw new \InvalidArgumentException('non-nullable id cannot be null');
  334. }
  335. $this->container['id'] = $id;
  336. return $this;
  337. }
  338. /**
  339. * Gets book
  340. *
  341. * @return int|null
  342. */
  343. public function getBook()
  344. {
  345. return $this->container['book'];
  346. }
  347. /**
  348. * Sets book
  349. *
  350. * @param int|null $book book
  351. *
  352. * @return self
  353. */
  354. public function setBook($book)
  355. {
  356. if (is_null($book)) {
  357. throw new \InvalidArgumentException('non-nullable book cannot be null');
  358. }
  359. $this->container['book'] = $book;
  360. return $this;
  361. }
  362. /**
  363. * Gets para
  364. *
  365. * @return int|null
  366. */
  367. public function getPara()
  368. {
  369. return $this->container['para'];
  370. }
  371. /**
  372. * Sets para
  373. *
  374. * @param int|null $para para
  375. *
  376. * @return self
  377. */
  378. public function setPara($para)
  379. {
  380. if (is_null($para)) {
  381. throw new \InvalidArgumentException('non-nullable para cannot be null');
  382. }
  383. $this->container['para'] = $para;
  384. return $this;
  385. }
  386. /**
  387. * Gets progress
  388. *
  389. * @return float|null
  390. */
  391. public function getProgress()
  392. {
  393. return $this->container['progress'];
  394. }
  395. /**
  396. * Sets progress
  397. *
  398. * @param float|null $progress progress
  399. *
  400. * @return self
  401. */
  402. public function setProgress($progress)
  403. {
  404. if (is_null($progress)) {
  405. throw new \InvalidArgumentException('non-nullable progress cannot be null');
  406. }
  407. $this->container['progress'] = $progress;
  408. return $this;
  409. }
  410. /**
  411. * Gets progress_line
  412. *
  413. * @return int[]|null
  414. */
  415. public function getProgressLine()
  416. {
  417. return $this->container['progress_line'];
  418. }
  419. /**
  420. * Sets progress_line
  421. *
  422. * @param int[]|null $progress_line progress_line
  423. *
  424. * @return self
  425. */
  426. public function setProgressLine($progress_line)
  427. {
  428. if (is_null($progress_line)) {
  429. array_push($this->openAPINullablesSetToNull, 'progress_line');
  430. } else {
  431. $nullablesSetToNull = $this->getOpenAPINullablesSetToNull();
  432. $index = array_search('progress_line', $nullablesSetToNull);
  433. if ($index !== FALSE) {
  434. unset($nullablesSetToNull[$index]);
  435. $this->setOpenAPINullablesSetToNull($nullablesSetToNull);
  436. }
  437. }
  438. $this->container['progress_line'] = $progress_line;
  439. return $this;
  440. }
  441. /**
  442. * Gets views
  443. *
  444. * @return int|null
  445. */
  446. public function getViews()
  447. {
  448. return $this->container['views'];
  449. }
  450. /**
  451. * Sets views
  452. *
  453. * @param int|null $views views
  454. *
  455. * @return self
  456. */
  457. public function setViews($views)
  458. {
  459. if (is_null($views)) {
  460. throw new \InvalidArgumentException('non-nullable views cannot be null');
  461. }
  462. $this->container['views'] = $views;
  463. return $this;
  464. }
  465. /**
  466. * Gets updated_at
  467. *
  468. * @return string|null
  469. */
  470. public function getUpdatedAt()
  471. {
  472. return $this->container['updated_at'];
  473. }
  474. /**
  475. * Sets updated_at
  476. *
  477. * @param string|null $updated_at updated_at
  478. *
  479. * @return self
  480. */
  481. public function setUpdatedAt($updated_at)
  482. {
  483. if (is_null($updated_at)) {
  484. throw new \InvalidArgumentException('non-nullable updated_at cannot be null');
  485. }
  486. $this->container['updated_at'] = $updated_at;
  487. return $this;
  488. }
  489. /**
  490. * Gets channel
  491. *
  492. * @return \WikipaliApi\Model\GetApiV3TipitakaChapterChannelsBookPara200ResponseDataInnerChannel|null
  493. */
  494. public function getChannel()
  495. {
  496. return $this->container['channel'];
  497. }
  498. /**
  499. * Sets channel
  500. *
  501. * @param \WikipaliApi\Model\GetApiV3TipitakaChapterChannelsBookPara200ResponseDataInnerChannel|null $channel channel
  502. *
  503. * @return self
  504. */
  505. public function setChannel($channel)
  506. {
  507. if (is_null($channel)) {
  508. throw new \InvalidArgumentException('non-nullable channel cannot be null');
  509. }
  510. $this->container['channel'] = $channel;
  511. return $this;
  512. }
  513. /**
  514. * Gets studio
  515. *
  516. * @return \WikipaliApi\Model\GetApiV3TipitakaChapterChannelsBookPara200ResponseDataInnerStudio|null
  517. */
  518. public function getStudio()
  519. {
  520. return $this->container['studio'];
  521. }
  522. /**
  523. * Sets studio
  524. *
  525. * @param \WikipaliApi\Model\GetApiV3TipitakaChapterChannelsBookPara200ResponseDataInnerStudio|null $studio studio
  526. *
  527. * @return self
  528. */
  529. public function setStudio($studio)
  530. {
  531. if (is_null($studio)) {
  532. array_push($this->openAPINullablesSetToNull, 'studio');
  533. } else {
  534. $nullablesSetToNull = $this->getOpenAPINullablesSetToNull();
  535. $index = array_search('studio', $nullablesSetToNull);
  536. if ($index !== FALSE) {
  537. unset($nullablesSetToNull[$index]);
  538. $this->setOpenAPINullablesSetToNull($nullablesSetToNull);
  539. }
  540. }
  541. $this->container['studio'] = $studio;
  542. return $this;
  543. }
  544. /**
  545. * Returns true if offset exists. False otherwise.
  546. *
  547. * @param integer|string $offset Offset
  548. *
  549. * @return boolean
  550. */
  551. public function offsetExists(mixed $offset): bool
  552. {
  553. return isset($this->container[$offset]);
  554. }
  555. /**
  556. * Gets offset.
  557. *
  558. * @param integer|string $offset Offset
  559. *
  560. * @return mixed|null
  561. */
  562. #[\ReturnTypeWillChange]
  563. public function offsetGet(mixed $offset)
  564. {
  565. return $this->container[$offset] ?? null;
  566. }
  567. /**
  568. * Sets value based on offset.
  569. *
  570. * @param int|null $offset Offset
  571. * @param mixed $value Value to be set
  572. *
  573. * @return void
  574. */
  575. public function offsetSet($offset, $value): void
  576. {
  577. if (is_null($offset)) {
  578. $this->container[] = $value;
  579. } else {
  580. $this->container[$offset] = $value;
  581. }
  582. }
  583. /**
  584. * Unsets offset.
  585. *
  586. * @param integer|string $offset Offset
  587. *
  588. * @return void
  589. */
  590. public function offsetUnset(mixed $offset): void
  591. {
  592. unset($this->container[$offset]);
  593. }
  594. /**
  595. * Serializes the object to a value that can be serialized natively by json_encode().
  596. * @link https://www.php.net/manual/en/jsonserializable.jsonserialize.php
  597. *
  598. * @return mixed Returns data which can be serialized by json_encode(), which is a value
  599. * of any type other than a resource.
  600. */
  601. #[\ReturnTypeWillChange]
  602. public function jsonSerialize()
  603. {
  604. return ObjectSerializer::sanitizeForSerialization($this);
  605. }
  606. /**
  607. * Gets the string presentation of the object
  608. *
  609. * @return string
  610. */
  611. public function __toString()
  612. {
  613. return json_encode(
  614. ObjectSerializer::sanitizeForSerialization($this),
  615. JSON_PRETTY_PRINT
  616. );
  617. }
  618. /**
  619. * Gets a header-safe presentation of the object
  620. *
  621. * @return string
  622. */
  623. public function toHeaderValue()
  624. {
  625. return json_encode(ObjectSerializer::sanitizeForSerialization($this));
  626. }
  627. }