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

https://github.com/omegaup/omegaup · PHP · 297 lines · 174 code · 10 blank · 113 comment · 9 complexity · 78878571c76f77832bc5c91f663c02cd 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. /** RunCounts 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\RunCounts}.
  15. * @access public
  16. * @abstract
  17. */
  18. abstract class RunCounts {
  19. /**
  20. * Guardar registros.
  21. *
  22. * Este metodo guarda el estado actual del objeto {@link \OmegaUp\DAO\VO\RunCounts}
  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\RunCounts $Run_Counts El
  32. * objeto de tipo {@link \OmegaUp\DAO\VO\RunCounts}.
  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\RunCounts $Run_Counts
  38. ): int {
  39. if (
  40. empty($Run_Counts->date)
  41. ) {
  42. throw new \OmegaUp\Exceptions\NotFoundException('recordNotFound');
  43. }
  44. $sql = '
  45. REPLACE INTO
  46. Run_Counts (
  47. `date`,
  48. `total`,
  49. `ac_count`
  50. ) VALUES (
  51. ?,
  52. ?,
  53. ?
  54. );';
  55. $params = [
  56. $Run_Counts->date,
  57. intval($Run_Counts->total),
  58. intval($Run_Counts->ac_count),
  59. ];
  60. \OmegaUp\MySQLConnection::getInstance()->Execute($sql, $params);
  61. return \OmegaUp\MySQLConnection::getInstance()->Affected_Rows();
  62. }
  63. /**
  64. * Actualizar registros.
  65. *
  66. * @param \OmegaUp\DAO\VO\RunCounts $Run_Counts El objeto de tipo RunCounts a actualizar.
  67. *
  68. * @return int Número de filas afectadas
  69. */
  70. final public static function update(
  71. \OmegaUp\DAO\VO\RunCounts $Run_Counts
  72. ): int {
  73. $sql = '
  74. UPDATE
  75. `Run_Counts`
  76. SET
  77. `total` = ?,
  78. `ac_count` = ?
  79. WHERE
  80. (
  81. `date` = ?
  82. );';
  83. $params = [
  84. intval($Run_Counts->total),
  85. intval($Run_Counts->ac_count),
  86. $Run_Counts->date,
  87. ];
  88. \OmegaUp\MySQLConnection::getInstance()->Execute($sql, $params);
  89. return \OmegaUp\MySQLConnection::getInstance()->Affected_Rows();
  90. }
  91. /**
  92. * Obtener {@link \OmegaUp\DAO\VO\RunCounts} por llave primaria.
  93. *
  94. * Este método cargará un objeto {@link \OmegaUp\DAO\VO\RunCounts}
  95. * de la base de datos usando sus llaves primarias.
  96. *
  97. * @return ?\OmegaUp\DAO\VO\RunCounts Un objeto del tipo
  98. * {@link \OmegaUp\DAO\VO\RunCounts} o NULL si no hay tal
  99. * registro.
  100. */
  101. final public static function getByPK(
  102. ?string $date
  103. ): ?\OmegaUp\DAO\VO\RunCounts {
  104. $sql = '
  105. SELECT
  106. `Run_Counts`.`date`,
  107. `Run_Counts`.`total`,
  108. `Run_Counts`.`ac_count`
  109. FROM
  110. `Run_Counts`
  111. WHERE
  112. (
  113. `date` = ?
  114. )
  115. LIMIT 1;';
  116. $params = [$date];
  117. $row = \OmegaUp\MySQLConnection::getInstance()->GetRow($sql, $params);
  118. if (empty($row)) {
  119. return null;
  120. }
  121. return new \OmegaUp\DAO\VO\RunCounts($row);
  122. }
  123. /**
  124. * Verificar si existe un {@link \OmegaUp\DAO\VO\RunCounts} por llave primaria.
  125. *
  126. * Este método verifica la existencia de un objeto {@link \OmegaUp\DAO\VO\RunCounts}
  127. * de la base de datos usando sus llaves primarias **sin necesidad de cargar sus campos**.
  128. *
  129. * Este método es más eficiente que una llamada a getByPK cuando no se van a utilizar
  130. * los campos.
  131. *
  132. * @return bool Si existe o no tal registro.
  133. */
  134. final public static function existsByPK(
  135. ?string $date
  136. ): bool {
  137. $sql = '
  138. SELECT
  139. COUNT(*)
  140. FROM
  141. `Run_Counts`
  142. WHERE
  143. (
  144. `date` = ?
  145. );';
  146. $params = [$date];
  147. /** @var int */
  148. $count = \OmegaUp\MySQLConnection::getInstance()->GetOne($sql, $params);
  149. return $count > 0;
  150. }
  151. /**
  152. * Eliminar registros.
  153. *
  154. * Este metodo eliminará el registro identificado por la llave primaria en
  155. * el objeto {@link \OmegaUp\DAO\VO\RunCounts} suministrado.
  156. * Una vez que se ha eliminado un objeto, este no puede ser restaurado
  157. * llamando a {@link replace()}, ya que este último creará un nuevo
  158. * registro con una llave primaria distinta a la que estaba en el objeto
  159. * eliminado.
  160. *
  161. * Si no puede encontrar el registro a eliminar,
  162. * {@link \OmegaUp\Exceptions\NotFoundException} será arrojada.
  163. *
  164. * @param \OmegaUp\DAO\VO\RunCounts $Run_Counts El
  165. * objeto de tipo \OmegaUp\DAO\VO\RunCounts a eliminar
  166. *
  167. * @throws \OmegaUp\Exceptions\NotFoundException Se arroja cuando no se
  168. * encuentra el objeto a eliminar en la base de datos.
  169. */
  170. final public static function delete(
  171. \OmegaUp\DAO\VO\RunCounts $Run_Counts
  172. ): void {
  173. $sql = '
  174. DELETE FROM
  175. `Run_Counts`
  176. WHERE
  177. (
  178. `date` = ?
  179. );';
  180. $params = [
  181. $Run_Counts->date
  182. ];
  183. \OmegaUp\MySQLConnection::getInstance()->Execute($sql, $params);
  184. if (\OmegaUp\MySQLConnection::getInstance()->Affected_Rows() == 0) {
  185. throw new \OmegaUp\Exceptions\NotFoundException('recordNotFound');
  186. }
  187. }
  188. /**
  189. * Obtener todas las filas.
  190. *
  191. * Esta funcion leerá todos los contenidos de la tabla en la base de datos
  192. * y construirá un arreglo que contiene objetos de tipo
  193. * {@link \OmegaUp\DAO\VO\RunCounts}.
  194. * Este método consume una cantidad de memoria proporcional al número de
  195. * registros regresados, así que sólo debe usarse cuando la tabla en
  196. * cuestión es pequeña o se proporcionan parámetros para obtener un menor
  197. * número de filas.
  198. *
  199. * @param ?int $pagina Página a ver.
  200. * @param int $filasPorPagina Filas por página.
  201. * @param ?string $orden Debe ser una cadena con el nombre de una columna en la base de datos.
  202. * @param string $tipoDeOrden 'ASC' o 'DESC' el default es 'ASC'
  203. *
  204. * @return list<\OmegaUp\DAO\VO\RunCounts> Un arreglo que contiene objetos del tipo
  205. * {@link \OmegaUp\DAO\VO\RunCounts}.
  206. */
  207. final public static function getAll(
  208. ?int $pagina = null,
  209. int $filasPorPagina = 100,
  210. ?string $orden = null,
  211. string $tipoDeOrden = 'ASC'
  212. ): array {
  213. $sql = '
  214. SELECT
  215. `Run_Counts`.`date`,
  216. `Run_Counts`.`total`,
  217. `Run_Counts`.`ac_count`
  218. FROM
  219. `Run_Counts`
  220. ';
  221. if (!is_null($orden)) {
  222. $sql .= (
  223. ' ORDER BY `' .
  224. \OmegaUp\MySQLConnection::getInstance()->escape($orden) .
  225. '` ' .
  226. ($tipoDeOrden == 'DESC' ? 'DESC' : 'ASC')
  227. );
  228. }
  229. if (!is_null($pagina)) {
  230. $sql .= (
  231. ' LIMIT ' .
  232. (($pagina - 1) * $filasPorPagina) .
  233. ', ' .
  234. intval($filasPorPagina)
  235. );
  236. }
  237. $allData = [];
  238. foreach (
  239. \OmegaUp\MySQLConnection::getInstance()->GetAll($sql) as $row
  240. ) {
  241. $allData[] = new \OmegaUp\DAO\VO\RunCounts(
  242. $row
  243. );
  244. }
  245. return $allData;
  246. }
  247. /**
  248. * Crear registros.
  249. *
  250. * Este metodo creará una nueva fila en la base de datos de acuerdo con los
  251. * contenidos del objeto {@link \OmegaUp\DAO\VO\RunCounts}
  252. * suministrado.
  253. *
  254. * @param \OmegaUp\DAO\VO\RunCounts $Run_Counts El
  255. * objeto de tipo {@link \OmegaUp\DAO\VO\RunCounts}
  256. * a crear.
  257. *
  258. * @return int Un entero mayor o igual a cero identificando el número de
  259. * filas afectadas.
  260. */
  261. final public static function create(
  262. \OmegaUp\DAO\VO\RunCounts $Run_Counts
  263. ): int {
  264. $sql = '
  265. INSERT INTO
  266. `Run_Counts` (
  267. `date`,
  268. `total`,
  269. `ac_count`
  270. ) VALUES (
  271. ?,
  272. ?,
  273. ?
  274. );';
  275. $params = [
  276. $Run_Counts->date,
  277. intval($Run_Counts->total),
  278. intval($Run_Counts->ac_count),
  279. ];
  280. \OmegaUp\MySQLConnection::getInstance()->Execute($sql, $params);
  281. $affectedRows = \OmegaUp\MySQLConnection::getInstance()->Affected_Rows();
  282. if ($affectedRows == 0) {
  283. return 0;
  284. }
  285. return $affectedRows;
  286. }
  287. }