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

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