PageRenderTime 56ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

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

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