<?php
    /*
     * vars:
     *  - string $tableName
     *  - string $tableDesc
     *  - string $queryClass
     *  - string $modelClass
     *  - string $parentClass
     *  - string $parentClassFq
     *  - string $entityNotFoundExceptionClass
     *  - string $unqualifiedClassName
     * 
     *  - bool $addTimestamp
     *  - string $propelVersion
     * 
     *  - Column[] $columns
     *  - string[] $relationNames (both ref and backref)
     *  - string[] $relatedTableQueryClassNames 
     */
?>

/**
 * Base class that represents a query for the `<?= $tableName ?>` table.
 *
<?php if ($tableDesc): ?>
 * <?= $tableDesc ?> 
 *
<?php endif; ?>
<?php if ($addTimestamp): ?>
 * This class was autogenerated by Propel <?= $propelVersion ?> on:
 *
 * <?= strftime('%c') ?> 
 *
<?php endif; ?>
<?php foreach($columns as $column):?>
 * @method static orderBy<?= $column->getPhpName() ?>($order = \Propel\Runtime\ActiveQuery\Criteria::ASC) Order by the <?= $column->getName() ?> column
<?php endforeach;?>
 *
<?php foreach($columns as $column):?>
 * @method static groupBy<?= $column->getPhpName() ?>() Group by the <?= $column->getName() ?> column
<?php endforeach;?>
 *
 * @method static leftJoin($relation) Adds a LEFT JOIN clause to the query
 * @method static rightJoin($relation) Adds a RIGHT JOIN clause to the query
 * @method static innerJoin($relation) Adds a INNER JOIN clause to the query
 *
 * @method static leftJoinWith($relation) Adds a LEFT JOIN clause and with to the query
 * @method static rightJoinWith($relation) Adds a RIGHT JOIN clause and with to the query
 * @method static innerJoinWith($relation) Adds a INNER JOIN clause and with to the query
 *
<?php foreach($relationNames as $relationName):?>
 * @method static leftJoin<?= $relationName ?>($relationAlias = null) Adds a LEFT JOIN clause to the query using the <?= $relationName ?> relation
 * @method static rightJoin<?= $relationName ?>($relationAlias = null) Adds a RIGHT JOIN clause to the query using the <?= $relationName ?> relation
 * @method static innerJoin<?= $relationName ?>($relationAlias = null) Adds a INNER JOIN clause to the query using the <?= $relationName ?> relation
 *
 * @method static joinWith<?= $relationName ?>($joinType = \Propel\Runtime\ActiveQuery\Criteria::INNER_JOIN) Adds a join clause and with to the query using the <?= $relationName ?> relation
 *
 * @method static leftJoinWith<?= $relationName ?>() Adds a LEFT JOIN clause and with to the query using the <?= $relationName ?> relation
 * @method static rightJoinWith<?= $relationName ?>() Adds a RIGHT JOIN clause and with to the query using the <?= $relationName ?> relation
 * @method static innerJoinWith<?= $relationName ?>() Adds a INNER JOIN clause and with to the query using the <?= $relationName ?> relation
 *
<?php endforeach; ?>
 * @method <?= $modelClass ?>|null findOne(\Propel\Runtime\Connection\ConnectionInterface|null $con = null) Return the first <?= $modelClass ?> matching the query
 * @method <?= $modelClass ?> findOneOrCreate(\Propel\Runtime\Connection\ConnectionInterface|null $con = null) Return the first <?= $modelClass ?> matching the query, or a new <?= $modelClass ?> object populated from the query conditions when no match is found
 *
<?php foreach($columns as $column):?>
 * @method <?= $modelClass ?>|null findOneBy<?= $column->getPhpName() ?>(<?= $column->getPhpType() ?> $<?= $column->getName() ?>) Return the first <?= $modelClass ?> filtered by the <?= $column->getName() ?> column
<?php endforeach;?>
 *
 * @method <?= $modelClass ?> requirePk($key, \Propel\Runtime\Connection\ConnectionInterface|null $con = null) Return the <?= $modelClass ?> by primary key and throws <?= $entityNotFoundExceptionClass ?> when not found
 * @method <?= $modelClass ?> requireOne(\Propel\Runtime\Connection\ConnectionInterface|null $con = null) Return the first <?= $modelClass ?> matching the query and throws <?= $entityNotFoundExceptionClass ?> when not found
 *
<?php foreach($columns as $column):?>
 * @method <?= $modelClass ?> requireOneBy<?= $column->getPhpName() ?>(<?= $column->getPhpType() ?> $<?= $column->getName() ?>) Return the first <?= $modelClass ?> filtered by the <?= $column->getName() ?> column and throws <?= $entityNotFoundExceptionClass ?> when not found
<?php endforeach;?>
 *
 * @method <?= $objectCollectionType ?>|array<<?= $modelClass ?>>|\Propel\Runtime\Collection\Collection<<?= $modelClass ?>> find(\Propel\Runtime\Connection\ConnectionInterface|null $con = null) Return <?= $modelClass ?> objects based on current ModelCriteria
 * @method <?= $objectCollectionType ?> findObjects(\Propel\Runtime\Connection\ConnectionInterface|null $con = null) Get <?= $modelClass ?> objects in ObjectCollection
 *
<?php foreach($columns as $column):?>
 * @method array<<?= $modelClass ?>>|\Propel\Runtime\Collection\Collection<<?= $modelClass ?>> findBy<?= $column->getPhpName() ?>(<?= $column->getTypeHint() ?: $column->resolveQualifiedType() ?>|array<<?= $column->resolveQualifiedType() ?>> $<?= $column->getName() ?>) Return <?= $modelClass ?> objects filtered by the <?= $column->getName() ?> column
<?php endforeach;?>
 *
 * @method array<<?= $modelClass ?>>|\Propel\Runtime\Util\PropelModelPager<mixed> paginate($page = 1, $maxPerPage = 10, \Propel\Runtime\Connection\ConnectionInterface|null $con = null) Issue a SELECT query based on the current ModelCriteria and uses a page and a maximum number of results per page to compute an offset and a limit
 *
 * @template ParentQuery of \Propel\Runtime\ActiveQuery\ModelCriteria|null = null
 * @extends <?= $parentClassFq ?><ParentQuery>
 */
abstract class <?= $unqualifiedClassName ?> extends <?= $parentClass ?> 
{<?php
// omit newline
