/frontend/server/src/DAO/Base/ProblemsetIdentities.php

https://github.com/omegaup/omegaup · PHP · 416 lines · 293 code · 10 blank · 113 comment · 9 complexity · 5a2879d395978e6fac2e325c66924a88 MD5 · raw file

  1. <?php
  2. /** ************************************************************************ *
  3. * !ATENCION! *
  4. * *
  5. * Este codigo es generado automáticamente. Si lo modificas, tus cambios *
  6. * serán reemplazados la proxima vez que se autogenere el código. *
  7. * *
  8. * ************************************************************************* */
  9. namespace OmegaUp\DAO\Base;
  10. /** ProblemsetIdentities Data Access Object (DAO) Base.
  11. *
  12. * Esta clase contiene toda la manipulacion de bases de datos que se necesita
  13. * para almacenar de forma permanente y recuperar instancias de objetos
  14. * {@link \OmegaUp\DAO\VO\ProblemsetIdentities}.
  15. * @access public
  16. * @abstract
  17. */
  18. abstract class ProblemsetIdentities {
  19. /**
  20. * Guardar registros.
  21. *
  22. * Este metodo guarda el estado actual del objeto {@link \OmegaUp\DAO\VO\ProblemsetIdentities}
  23. * pasado en la base de datos. La llave primaria indicará qué instancia va
  24. * a ser actualizada en base de datos. Si la llave primara o combinación de
  25. * llaves primarias que describen una fila que no se encuentra en la base de
  26. * datos, entonces replace() creará una nueva fila.
  27. *
  28. * @throws \OmegaUp\Exceptions\NotFoundException si las columnas de la
  29. * llave primaria están vacías.
  30. *
  31. * @param \OmegaUp\DAO\VO\ProblemsetIdentities $Problemset_Identities El
  32. * objeto de tipo {@link \OmegaUp\DAO\VO\ProblemsetIdentities}.
  33. *
  34. * @return int Un entero mayor o igual a cero identificando el número de filas afectadas.
  35. */
  36. final public static function replace(
  37. \OmegaUp\DAO\VO\ProblemsetIdentities $Problemset_Identities
  38. ): int {
  39. if (
  40. empty($Problemset_Identities->identity_id) ||
  41. empty($Problemset_Identities->problemset_id)
  42. ) {
  43. throw new \OmegaUp\Exceptions\NotFoundException('recordNotFound');
  44. }
  45. $sql = '
  46. REPLACE INTO
  47. Problemset_Identities (
  48. `identity_id`,
  49. `problemset_id`,
  50. `access_time`,
  51. `end_time`,
  52. `score`,
  53. `time`,
  54. `share_user_information`,
  55. `privacystatement_consent_id`,
  56. `is_invited`
  57. ) VALUES (
  58. ?,
  59. ?,
  60. ?,
  61. ?,
  62. ?,
  63. ?,
  64. ?,
  65. ?,
  66. ?
  67. );';
  68. $params = [
  69. $Problemset_Identities->identity_id,
  70. $Problemset_Identities->problemset_id,
  71. \OmegaUp\DAO\DAO::toMySQLTimestamp(
  72. $Problemset_Identities->access_time
  73. ),
  74. \OmegaUp\DAO\DAO::toMySQLTimestamp(
  75. $Problemset_Identities->end_time
  76. ),
  77. intval($Problemset_Identities->score),
  78. intval($Problemset_Identities->time),
  79. (
  80. !is_null($Problemset_Identities->share_user_information) ?
  81. intval($Problemset_Identities->share_user_information) :
  82. null
  83. ),
  84. (
  85. !is_null($Problemset_Identities->privacystatement_consent_id) ?
  86. intval($Problemset_Identities->privacystatement_consent_id) :
  87. null
  88. ),
  89. intval($Problemset_Identities->is_invited),
  90. ];
  91. \OmegaUp\MySQLConnection::getInstance()->Execute($sql, $params);
  92. return \OmegaUp\MySQLConnection::getInstance()->Affected_Rows();
  93. }
  94. /**
  95. * Actualizar registros.
  96. *
  97. * @param \OmegaUp\DAO\VO\ProblemsetIdentities $Problemset_Identities El objeto de tipo ProblemsetIdentities a actualizar.
  98. *
  99. * @return int Número de filas afectadas
  100. */
  101. final public static function update(
  102. \OmegaUp\DAO\VO\ProblemsetIdentities $Problemset_Identities
  103. ): int {
  104. $sql = '
  105. UPDATE
  106. `Problemset_Identities`
  107. SET
  108. `access_time` = ?,
  109. `end_time` = ?,
  110. `score` = ?,
  111. `time` = ?,
  112. `share_user_information` = ?,
  113. `privacystatement_consent_id` = ?,
  114. `is_invited` = ?
  115. WHERE
  116. (
  117. `identity_id` = ? AND
  118. `problemset_id` = ?
  119. );';
  120. $params = [
  121. \OmegaUp\DAO\DAO::toMySQLTimestamp(
  122. $Problemset_Identities->access_time
  123. ),
  124. \OmegaUp\DAO\DAO::toMySQLTimestamp(
  125. $Problemset_Identities->end_time
  126. ),
  127. intval($Problemset_Identities->score),
  128. intval($Problemset_Identities->time),
  129. (
  130. is_null($Problemset_Identities->share_user_information) ?
  131. null :
  132. intval($Problemset_Identities->share_user_information)
  133. ),
  134. (
  135. is_null($Problemset_Identities->privacystatement_consent_id) ?
  136. null :
  137. intval($Problemset_Identities->privacystatement_consent_id)
  138. ),
  139. intval($Problemset_Identities->is_invited),
  140. (
  141. is_null($Problemset_Identities->identity_id) ?
  142. null :
  143. intval($Problemset_Identities->identity_id)
  144. ),
  145. (
  146. is_null($Problemset_Identities->problemset_id) ?
  147. null :
  148. intval($Problemset_Identities->problemset_id)
  149. ),
  150. ];
  151. \OmegaUp\MySQLConnection::getInstance()->Execute($sql, $params);
  152. return \OmegaUp\MySQLConnection::getInstance()->Affected_Rows();
  153. }
  154. /**
  155. * Obtener {@link \OmegaUp\DAO\VO\ProblemsetIdentities} por llave primaria.
  156. *
  157. * Este método cargará un objeto {@link \OmegaUp\DAO\VO\ProblemsetIdentities}
  158. * de la base de datos usando sus llaves primarias.
  159. *
  160. * @return ?\OmegaUp\DAO\VO\ProblemsetIdentities Un objeto del tipo
  161. * {@link \OmegaUp\DAO\VO\ProblemsetIdentities} o NULL si no hay tal
  162. * registro.
  163. */
  164. final public static function getByPK(
  165. ?int $identity_id,
  166. ?int $problemset_id
  167. ): ?\OmegaUp\DAO\VO\ProblemsetIdentities {
  168. $sql = '
  169. SELECT
  170. `Problemset_Identities`.`identity_id`,
  171. `Problemset_Identities`.`problemset_id`,
  172. `Problemset_Identities`.`access_time`,
  173. `Problemset_Identities`.`end_time`,
  174. `Problemset_Identities`.`score`,
  175. `Problemset_Identities`.`time`,
  176. `Problemset_Identities`.`share_user_information`,
  177. `Problemset_Identities`.`privacystatement_consent_id`,
  178. `Problemset_Identities`.`is_invited`
  179. FROM
  180. `Problemset_Identities`
  181. WHERE
  182. (
  183. `identity_id` = ? AND
  184. `problemset_id` = ?
  185. )
  186. LIMIT 1;';
  187. $params = [$identity_id, $problemset_id];
  188. $row = \OmegaUp\MySQLConnection::getInstance()->GetRow($sql, $params);
  189. if (empty($row)) {
  190. return null;
  191. }
  192. return new \OmegaUp\DAO\VO\ProblemsetIdentities($row);
  193. }
  194. /**
  195. * Verificar si existe un {@link \OmegaUp\DAO\VO\ProblemsetIdentities} por llave primaria.
  196. *
  197. * Este método verifica la existencia de un objeto {@link \OmegaUp\DAO\VO\ProblemsetIdentities}
  198. * de la base de datos usando sus llaves primarias **sin necesidad de cargar sus campos**.
  199. *
  200. * Este método es más eficiente que una llamada a getByPK cuando no se van a utilizar
  201. * los campos.
  202. *
  203. * @return bool Si existe o no tal registro.
  204. */
  205. final public static function existsByPK(
  206. ?int $identity_id,
  207. ?int $problemset_id
  208. ): bool {
  209. $sql = '
  210. SELECT
  211. COUNT(*)
  212. FROM
  213. `Problemset_Identities`
  214. WHERE
  215. (
  216. `identity_id` = ? AND
  217. `problemset_id` = ?
  218. );';
  219. $params = [$identity_id, $problemset_id];
  220. /** @var int */
  221. $count = \OmegaUp\MySQLConnection::getInstance()->GetOne($sql, $params);
  222. return $count > 0;
  223. }
  224. /**
  225. * Eliminar registros.
  226. *
  227. * Este metodo eliminará el registro identificado por la llave primaria en
  228. * el objeto {@link \OmegaUp\DAO\VO\ProblemsetIdentities} suministrado.
  229. * Una vez que se ha eliminado un objeto, este no puede ser restaurado
  230. * llamando a {@link replace()}, ya que este último creará un nuevo
  231. * registro con una llave primaria distinta a la que estaba en el objeto
  232. * eliminado.
  233. *
  234. * Si no puede encontrar el registro a eliminar,
  235. * {@link \OmegaUp\Exceptions\NotFoundException} será arrojada.
  236. *
  237. * @param \OmegaUp\DAO\VO\ProblemsetIdentities $Problemset_Identities El
  238. * objeto de tipo \OmegaUp\DAO\VO\ProblemsetIdentities a eliminar
  239. *
  240. * @throws \OmegaUp\Exceptions\NotFoundException Se arroja cuando no se
  241. * encuentra el objeto a eliminar en la base de datos.
  242. */
  243. final public static function delete(
  244. \OmegaUp\DAO\VO\ProblemsetIdentities $Problemset_Identities
  245. ): void {
  246. $sql = '
  247. DELETE FROM
  248. `Problemset_Identities`
  249. WHERE
  250. (
  251. `identity_id` = ? AND
  252. `problemset_id` = ?
  253. );';
  254. $params = [
  255. $Problemset_Identities->identity_id,
  256. $Problemset_Identities->problemset_id
  257. ];
  258. \OmegaUp\MySQLConnection::getInstance()->Execute($sql, $params);
  259. if (\OmegaUp\MySQLConnection::getInstance()->Affected_Rows() == 0) {
  260. throw new \OmegaUp\Exceptions\NotFoundException('recordNotFound');
  261. }
  262. }
  263. /**
  264. * Obtener todas las filas.
  265. *
  266. * Esta funcion leerá todos los contenidos de la tabla en la base de datos
  267. * y construirá un arreglo que contiene objetos de tipo
  268. * {@link \OmegaUp\DAO\VO\ProblemsetIdentities}.
  269. * Este método consume una cantidad de memoria proporcional al número de
  270. * registros regresados, así que sólo debe usarse cuando la tabla en
  271. * cuestión es pequeña o se proporcionan parámetros para obtener un menor
  272. * número de filas.
  273. *
  274. * @param ?int $pagina Página a ver.
  275. * @param int $filasPorPagina Filas por página.
  276. * @param ?string $orden Debe ser una cadena con el nombre de una columna en la base de datos.
  277. * @param string $tipoDeOrden 'ASC' o 'DESC' el default es 'ASC'
  278. *
  279. * @return list<\OmegaUp\DAO\VO\ProblemsetIdentities> Un arreglo que contiene objetos del tipo
  280. * {@link \OmegaUp\DAO\VO\ProblemsetIdentities}.
  281. */
  282. final public static function getAll(
  283. ?int $pagina = null,
  284. int $filasPorPagina = 100,
  285. ?string $orden = null,
  286. string $tipoDeOrden = 'ASC'
  287. ): array {
  288. $sql = '
  289. SELECT
  290. `Problemset_Identities`.`identity_id`,
  291. `Problemset_Identities`.`problemset_id`,
  292. `Problemset_Identities`.`access_time`,
  293. `Problemset_Identities`.`end_time`,
  294. `Problemset_Identities`.`score`,
  295. `Problemset_Identities`.`time`,
  296. `Problemset_Identities`.`share_user_information`,
  297. `Problemset_Identities`.`privacystatement_consent_id`,
  298. `Problemset_Identities`.`is_invited`
  299. FROM
  300. `Problemset_Identities`
  301. ';
  302. if (!is_null($orden)) {
  303. $sql .= (
  304. ' ORDER BY `' .
  305. \OmegaUp\MySQLConnection::getInstance()->escape($orden) .
  306. '` ' .
  307. ($tipoDeOrden == 'DESC' ? 'DESC' : 'ASC')
  308. );
  309. }
  310. if (!is_null($pagina)) {
  311. $sql .= (
  312. ' LIMIT ' .
  313. (($pagina - 1) * $filasPorPagina) .
  314. ', ' .
  315. intval($filasPorPagina)
  316. );
  317. }
  318. $allData = [];
  319. foreach (
  320. \OmegaUp\MySQLConnection::getInstance()->GetAll($sql) as $row
  321. ) {
  322. $allData[] = new \OmegaUp\DAO\VO\ProblemsetIdentities(
  323. $row
  324. );
  325. }
  326. return $allData;
  327. }
  328. /**
  329. * Crear registros.
  330. *
  331. * Este metodo creará una nueva fila en la base de datos de acuerdo con los
  332. * contenidos del objeto {@link \OmegaUp\DAO\VO\ProblemsetIdentities}
  333. * suministrado.
  334. *
  335. * @param \OmegaUp\DAO\VO\ProblemsetIdentities $Problemset_Identities El
  336. * objeto de tipo {@link \OmegaUp\DAO\VO\ProblemsetIdentities}
  337. * a crear.
  338. *
  339. * @return int Un entero mayor o igual a cero identificando el número de
  340. * filas afectadas.
  341. */
  342. final public static function create(
  343. \OmegaUp\DAO\VO\ProblemsetIdentities $Problemset_Identities
  344. ): int {
  345. $sql = '
  346. INSERT INTO
  347. `Problemset_Identities` (
  348. `identity_id`,
  349. `problemset_id`,
  350. `access_time`,
  351. `end_time`,
  352. `score`,
  353. `time`,
  354. `share_user_information`,
  355. `privacystatement_consent_id`,
  356. `is_invited`
  357. ) VALUES (
  358. ?,
  359. ?,
  360. ?,
  361. ?,
  362. ?,
  363. ?,
  364. ?,
  365. ?,
  366. ?
  367. );';
  368. $params = [
  369. (
  370. is_null($Problemset_Identities->identity_id) ?
  371. null :
  372. intval($Problemset_Identities->identity_id)
  373. ),
  374. (
  375. is_null($Problemset_Identities->problemset_id) ?
  376. null :
  377. intval($Problemset_Identities->problemset_id)
  378. ),
  379. \OmegaUp\DAO\DAO::toMySQLTimestamp(
  380. $Problemset_Identities->access_time
  381. ),
  382. \OmegaUp\DAO\DAO::toMySQLTimestamp(
  383. $Problemset_Identities->end_time
  384. ),
  385. intval($Problemset_Identities->score),
  386. intval($Problemset_Identities->time),
  387. (
  388. is_null($Problemset_Identities->share_user_information) ?
  389. null :
  390. intval($Problemset_Identities->share_user_information)
  391. ),
  392. (
  393. is_null($Problemset_Identities->privacystatement_consent_id) ?
  394. null :
  395. intval($Problemset_Identities->privacystatement_consent_id)
  396. ),
  397. intval($Problemset_Identities->is_invited),
  398. ];
  399. \OmegaUp\MySQLConnection::getInstance()->Execute($sql, $params);
  400. $affectedRows = \OmegaUp\MySQLConnection::getInstance()->Affected_Rows();
  401. if ($affectedRows == 0) {
  402. return 0;
  403. }
  404. return $affectedRows;
  405. }
  406. }