GetApiV3Progress200ResponseDataInner.php 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702
  1. <?php
  2. /**
  3. * GetApiV3Progress200ResponseDataInner
  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.10.15
  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. * GetApiV3Progress200ResponseDataInner 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 GetApiV3Progress200ResponseDataInner 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_progress_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. 'book' => 'int',
  54. 'para' => 'int',
  55. 'lang' => 'string',
  56. 'progress' => 'float',
  57. 'channel_id' => 'string',
  58. 'title' => 'string',
  59. 'last_chapter_completed_at' => 'string',
  60. 'completed_at' => 'string',
  61. 'updated_at' => 'string'
  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. 'book' => null,
  72. 'para' => null,
  73. 'lang' => null,
  74. 'progress' => null,
  75. 'channel_id' => null,
  76. 'title' => null,
  77. 'last_chapter_completed_at' => null,
  78. 'completed_at' => null,
  79. 'updated_at' => null
  80. ];
  81. /**
  82. * Array of nullable properties. Used for (de)serialization
  83. *
  84. * @var boolean[]
  85. */
  86. protected static array $openAPINullables = [
  87. 'book' => false,
  88. 'para' => false,
  89. 'lang' => false,
  90. 'progress' => false,
  91. 'channel_id' => false,
  92. 'title' => true,
  93. 'last_chapter_completed_at' => true,
  94. 'completed_at' => true,
  95. 'updated_at' => false
  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. 'book' => 'book',
  176. 'para' => 'para',
  177. 'lang' => 'lang',
  178. 'progress' => 'progress',
  179. 'channel_id' => 'channel_id',
  180. 'title' => 'title',
  181. 'last_chapter_completed_at' => 'last_chapter_completed_at',
  182. 'completed_at' => 'completed_at',
  183. 'updated_at' => 'updated_at'
  184. ];
  185. /**
  186. * Array of attributes to setter functions (for deserialization of responses)
  187. *
  188. * @var string[]
  189. */
  190. protected static $setters = [
  191. 'book' => 'setBook',
  192. 'para' => 'setPara',
  193. 'lang' => 'setLang',
  194. 'progress' => 'setProgress',
  195. 'channel_id' => 'setChannelId',
  196. 'title' => 'setTitle',
  197. 'last_chapter_completed_at' => 'setLastChapterCompletedAt',
  198. 'completed_at' => 'setCompletedAt',
  199. 'updated_at' => 'setUpdatedAt'
  200. ];
  201. /**
  202. * Array of attributes to getter functions (for serialization of requests)
  203. *
  204. * @var string[]
  205. */
  206. protected static $getters = [
  207. 'book' => 'getBook',
  208. 'para' => 'getPara',
  209. 'lang' => 'getLang',
  210. 'progress' => 'getProgress',
  211. 'channel_id' => 'getChannelId',
  212. 'title' => 'getTitle',
  213. 'last_chapter_completed_at' => 'getLastChapterCompletedAt',
  214. 'completed_at' => 'getCompletedAt',
  215. 'updated_at' => 'getUpdatedAt'
  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('book', $data ?? [], null);
  269. $this->setIfExists('para', $data ?? [], null);
  270. $this->setIfExists('lang', $data ?? [], null);
  271. $this->setIfExists('progress', $data ?? [], null);
  272. $this->setIfExists('channel_id', $data ?? [], null);
  273. $this->setIfExists('title', $data ?? [], null);
  274. $this->setIfExists('last_chapter_completed_at', $data ?? [], null);
  275. $this->setIfExists('completed_at', $data ?? [], null);
  276. $this->setIfExists('updated_at', $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 book
  316. *
  317. * @return int|null
  318. */
  319. public function getBook()
  320. {
  321. return $this->container['book'];
  322. }
  323. /**
  324. * Sets book
  325. *
  326. * @param int|null $book book
  327. *
  328. * @return self
  329. */
  330. public function setBook($book)
  331. {
  332. if (is_null($book)) {
  333. throw new \InvalidArgumentException('non-nullable book cannot be null');
  334. }
  335. $this->container['book'] = $book;
  336. return $this;
  337. }
  338. /**
  339. * Gets para
  340. *
  341. * @return int|null
  342. */
  343. public function getPara()
  344. {
  345. return $this->container['para'];
  346. }
  347. /**
  348. * Sets para
  349. *
  350. * @param int|null $para para
  351. *
  352. * @return self
  353. */
  354. public function setPara($para)
  355. {
  356. if (is_null($para)) {
  357. throw new \InvalidArgumentException('non-nullable para cannot be null');
  358. }
  359. $this->container['para'] = $para;
  360. return $this;
  361. }
  362. /**
  363. * Gets lang
  364. *
  365. * @return string|null
  366. */
  367. public function getLang()
  368. {
  369. return $this->container['lang'];
  370. }
  371. /**
  372. * Sets lang
  373. *
  374. * @param string|null $lang lang
  375. *
  376. * @return self
  377. */
  378. public function setLang($lang)
  379. {
  380. if (is_null($lang)) {
  381. throw new \InvalidArgumentException('non-nullable lang cannot be null');
  382. }
  383. $this->container['lang'] = $lang;
  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 channel_id
  412. *
  413. * @return string|null
  414. */
  415. public function getChannelId()
  416. {
  417. return $this->container['channel_id'];
  418. }
  419. /**
  420. * Sets channel_id
  421. *
  422. * @param string|null $channel_id channel_id
  423. *
  424. * @return self
  425. */
  426. public function setChannelId($channel_id)
  427. {
  428. if (is_null($channel_id)) {
  429. throw new \InvalidArgumentException('non-nullable channel_id cannot be null');
  430. }
  431. $this->container['channel_id'] = $channel_id;
  432. return $this;
  433. }
  434. /**
  435. * Gets title
  436. *
  437. * @return string|null
  438. */
  439. public function getTitle()
  440. {
  441. return $this->container['title'];
  442. }
  443. /**
  444. * Sets title
  445. *
  446. * @param string|null $title title
  447. *
  448. * @return self
  449. */
  450. public function setTitle($title)
  451. {
  452. if (is_null($title)) {
  453. array_push($this->openAPINullablesSetToNull, 'title');
  454. } else {
  455. $nullablesSetToNull = $this->getOpenAPINullablesSetToNull();
  456. $index = array_search('title', $nullablesSetToNull);
  457. if ($index !== FALSE) {
  458. unset($nullablesSetToNull[$index]);
  459. $this->setOpenAPINullablesSetToNull($nullablesSetToNull);
  460. }
  461. }
  462. $this->container['title'] = $title;
  463. return $this;
  464. }
  465. /**
  466. * Gets last_chapter_completed_at
  467. *
  468. * @return string|null
  469. */
  470. public function getLastChapterCompletedAt()
  471. {
  472. return $this->container['last_chapter_completed_at'];
  473. }
  474. /**
  475. * Sets last_chapter_completed_at
  476. *
  477. * @param string|null $last_chapter_completed_at last_chapter_completed_at
  478. *
  479. * @return self
  480. */
  481. public function setLastChapterCompletedAt($last_chapter_completed_at)
  482. {
  483. if (is_null($last_chapter_completed_at)) {
  484. array_push($this->openAPINullablesSetToNull, 'last_chapter_completed_at');
  485. } else {
  486. $nullablesSetToNull = $this->getOpenAPINullablesSetToNull();
  487. $index = array_search('last_chapter_completed_at', $nullablesSetToNull);
  488. if ($index !== FALSE) {
  489. unset($nullablesSetToNull[$index]);
  490. $this->setOpenAPINullablesSetToNull($nullablesSetToNull);
  491. }
  492. }
  493. $this->container['last_chapter_completed_at'] = $last_chapter_completed_at;
  494. return $this;
  495. }
  496. /**
  497. * Gets completed_at
  498. *
  499. * @return string|null
  500. */
  501. public function getCompletedAt()
  502. {
  503. return $this->container['completed_at'];
  504. }
  505. /**
  506. * Sets completed_at
  507. *
  508. * @param string|null $completed_at completed_at
  509. *
  510. * @return self
  511. */
  512. public function setCompletedAt($completed_at)
  513. {
  514. if (is_null($completed_at)) {
  515. array_push($this->openAPINullablesSetToNull, 'completed_at');
  516. } else {
  517. $nullablesSetToNull = $this->getOpenAPINullablesSetToNull();
  518. $index = array_search('completed_at', $nullablesSetToNull);
  519. if ($index !== FALSE) {
  520. unset($nullablesSetToNull[$index]);
  521. $this->setOpenAPINullablesSetToNull($nullablesSetToNull);
  522. }
  523. }
  524. $this->container['completed_at'] = $completed_at;
  525. return $this;
  526. }
  527. /**
  528. * Gets updated_at
  529. *
  530. * @return string|null
  531. */
  532. public function getUpdatedAt()
  533. {
  534. return $this->container['updated_at'];
  535. }
  536. /**
  537. * Sets updated_at
  538. *
  539. * @param string|null $updated_at updated_at
  540. *
  541. * @return self
  542. */
  543. public function setUpdatedAt($updated_at)
  544. {
  545. if (is_null($updated_at)) {
  546. throw new \InvalidArgumentException('non-nullable updated_at cannot be null');
  547. }
  548. $this->container['updated_at'] = $updated_at;
  549. return $this;
  550. }
  551. /**
  552. * Returns true if offset exists. False otherwise.
  553. *
  554. * @param integer|string $offset Offset
  555. *
  556. * @return boolean
  557. */
  558. public function offsetExists(mixed $offset): bool
  559. {
  560. return isset($this->container[$offset]);
  561. }
  562. /**
  563. * Gets offset.
  564. *
  565. * @param integer|string $offset Offset
  566. *
  567. * @return mixed|null
  568. */
  569. #[\ReturnTypeWillChange]
  570. public function offsetGet(mixed $offset)
  571. {
  572. return $this->container[$offset] ?? null;
  573. }
  574. /**
  575. * Sets value based on offset.
  576. *
  577. * @param int|null $offset Offset
  578. * @param mixed $value Value to be set
  579. *
  580. * @return void
  581. */
  582. public function offsetSet($offset, $value): void
  583. {
  584. if (is_null($offset)) {
  585. $this->container[] = $value;
  586. } else {
  587. $this->container[$offset] = $value;
  588. }
  589. }
  590. /**
  591. * Unsets offset.
  592. *
  593. * @param integer|string $offset Offset
  594. *
  595. * @return void
  596. */
  597. public function offsetUnset(mixed $offset): void
  598. {
  599. unset($this->container[$offset]);
  600. }
  601. /**
  602. * Serializes the object to a value that can be serialized natively by json_encode().
  603. * @link https://www.php.net/manual/en/jsonserializable.jsonserialize.php
  604. *
  605. * @return mixed Returns data which can be serialized by json_encode(), which is a value
  606. * of any type other than a resource.
  607. */
  608. #[\ReturnTypeWillChange]
  609. public function jsonSerialize()
  610. {
  611. return ObjectSerializer::sanitizeForSerialization($this);
  612. }
  613. /**
  614. * Gets the string presentation of the object
  615. *
  616. * @return string
  617. */
  618. public function __toString()
  619. {
  620. return json_encode(
  621. ObjectSerializer::sanitizeForSerialization($this),
  622. JSON_PRETTY_PRINT
  623. );
  624. }
  625. /**
  626. * Gets a header-safe presentation of the object
  627. *
  628. * @return string
  629. */
  630. public function toHeaderValue()
  631. {
  632. return json_encode(ObjectSerializer::sanitizeForSerialization($this));
  633. }
  634. }