-
-
O projektu
-
Chceš se dozvědět více o projektu Skautské hospodaření online? Poznat jeho historii nebo vytvářet jeho budoucnoust?
+
+
+
+

+
+
+
Propojení se skautIsem
+
Integrace se skautským informačním systémem. Nepotřebujete žádnou další registraci.
+
+
+
+
+

+
+
+
Správa dokladů online
+
Jednoduše vložíte skeny všech účtenek a faktur přímo k akci.
+
+
+
+
+
-
-
-
-
+
+
+
+

+
+
+
Centralizace dat
+
Všechna finanční data na jednom místě
+
+
+
+
+

+
+
+
Bezpečnost
+
Přístupová práva a zálohování dat
+
+
+
+
+

+
+
+
Integrace
+
Napojení na skautIs, propojení s FIO bankovním účtem a Gmailem
+
+
+
+
+

+
+
+
Podpora
+
On-line podpora a školení, nápověda a video návody k systému.
+
+
-
-
+
+
O projektu
+
+
+ Projekt Skautské hospodaření online představuje centrální platformu navrženou pro zjednodušení a digitalizaci finanční administrativy skautských jednotek. Jeho cílem je nahradit roztříštěnou evidenci v tabulkách či papírové podobě a nabídnout vedoucím a hospodářům jednotný a bezpečný systém. Klíčovou součástí je například modul pro správu hospodaření akcí, který pokrývá vše od vedení online pokladní knihy, přes digitalizaci dokladů a evidenci plateb účastníků, až po automatické generování závěrečných zpráv. Celý systém tak šetří čas, zvyšuje přehlednost a poskytuje spolehlivé podklady pro řízení jednotky i pro kontrolní orgány.
+
+
+
Hlavní přínosy
+
+ - jednoduchý a srozumitelný i pro začínající hospodáře,
+ - online dostupný přes internet,
+ - lze spolupracovat ve více lidech,
+ - načítá data se základními informacemi o akcích a členech ze skautISu,
+ - výstupy lze využít do účetnictví,
+ - vytváří historický archiv všech údajů k akcím se snadnou dohledatelností.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/templates/Default/reinforcement.latte b/app/templates/Default/reinforcement.latte
index 83318c44e..decf4eb90 100644
--- a/app/templates/Default/reinforcement.latte
+++ b/app/templates/Default/reinforcement.latte
@@ -1,4 +1,4 @@
-{block title}Posily pro skatského hospodaření{/block}
+{block title}Posily pro skautské hospodaření{/block}
{block #content}
@@ -7,42 +7,43 @@
Posily
- Po 13 letech už mi dochází síly a hledám další posily. Celý kód je pod MIT licencí veřejný, tedy jak si projekt
- rozjet najdeš na Githubu
- a co je v plánu je v Issues.
+ Celý kód je pod MIT licencí veřejný, jak rozjet projekt
+ najdeš na Githubu
+ a co je v plánu, je v Issues.
Koho hledáme? Zapojit se lze různě. Můžeš programovat backend v Nette či pomoct s TypeScriptem na Frontendu.
- Rozsah práce? Práce je nekonečno, ale tady pomůže i realizace pár menších issues.
+ Rozsah práce? Práce je nekonečno, ale pomůže i realizace pár menších issues.
Nette vyvojář
- Celý projekt je v Nette a na migrační scripty používá Doctrine migrations. Nasazování je automatizované po merge requestu.
+ Celý projekt je v Nette a na migrační scripty používá Doctrine migrations. Nasazování je automatizované po merge requestu.
Kromě přidávání nových funkcí by určitě pomohlo aktualizovat knihovny, abychom drželi projekt bezpečný.
Frontend vývojář
- Na projektu jsou různé vychytávky psané v Typescriptu, tedy jejich správa a rozvoj.
- Je možné přejít i na novější Bootstrap, ale nevidím v tom přidanou hodnotu nyní.
+ Na projektu jsou různé vychytávky psané v Typescriptu, tedy jejich správa a rozvoj.
+ Je možné přejít i na novější Bootstrap, ale nevidím v tom nyní přidanou hodnotu.
Uživatelská podpora (+ socialní sítě)
- Občas někdo potřebuje pomoct (1-2 za měsíc) a hodí se když to s ním vyřeší někdo jiný než programátor,
- aby mohl svůj čas věnovat rozvoji kódu. Dlouhodobě nikdo nepíše návodu ani posty s vychytávkama a novinkama
- na Facebook, což by rozšířilo o projektu povědomí.
+ Občas někdo potřebuje pomoct (1-2x za měsíc) a hodí se, když to s ním vyřeší někdo jiný než programátor,
+ aby mohl svůj čas věnovat rozvoji kódu.
+ Dlouhodobě nikdo nepíše návody ani posty s vychytávkami a novinkami
+ na Facebook, což by rozšířilo povědomí o projektu.
Donátor
Přispěním libovolné částky můžeš někomu zpříjemnit práci na projektu, kde vždy většina času bude dobrovolnická.
- Seznam přispěvků najdeš zde
+ Seznam přispěvků najdeš zde.
Kontakt
- sinacek(zavinac)skaut(tecka)cz
+ hskauting(zavinac)skaut(tecka)cz
Facebook
diff --git a/build.xml b/build.xml
deleted file mode 100644
index 29cc91d0d..000000000
--- a/build.xml
+++ /dev/null
@@ -1,269 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ${env.CONFIG_GOOGLE_CREDENTIALS}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/composer.json b/composer.json
index 4acf9a448..03012b713 100644
--- a/composer.json
+++ b/composer.json
@@ -2,7 +2,7 @@
"name": "skaut/skautske_hospodareni",
"type": "project",
"require": {
- "php": ">= 8.1",
+ "php": ">= 8.2",
"ext-iconv": "*",
"ext-simplexml": "*",
"beberlei/assert": "^2.9",
@@ -13,6 +13,7 @@
"consistence-community/consistence-doctrine": "^2.1",
"contributte/console": "^0.9",
"contributte/console-extra": "^0.7.2",
+ "contributte/scheduler": "^0.7.3",
"fmasa/messenger": "^2.0",
"fmasa/sentry-breadcrumbs-monolog-handler": "^2.3",
"google/apiclient": "^2.15.1",
@@ -21,7 +22,7 @@
"heureka/bank-account-validator": "1.2.*",
"http-interop/http-factory-guzzle": "^1.2",
"kdyby/forms-replicator": "^2.0",
- "latte/latte": " ~2.11",
+ "latte/latte": " ~3.0",
"league/flysystem": "^3.21",
"maennchen/zipstream-php": "^3.1",
"mhujer/fio-api-php": "^5.0",
@@ -43,14 +44,15 @@
"nettrine/migrations": "^v0.8",
"nextras/mail-panel": "^v2.5",
"php-http/guzzle7-adapter": "^1.0",
- "phpoffice/phpspreadsheet": "^4.1",
+ "phpoffice/phpspreadsheet": "^5.1",
"ramsey/uuid": "^4.2",
"sentry/sentry": "^3.4",
"skaut/dependent-select-box": "dev-master",
"skaut/psr6-caching": "^0.3.0@dev",
"skautis/nette": "^2.2",
"skautis/skautis": "~2.3",
- "thecodingmachine/safe": "^2.4",
+ "symfony/cache": "^6.4",
+ "thecodingmachine/safe": "^3.3",
"tracy/tracy": "~2.9",
"ublaboo/datagrid": "^v6.9",
"vlucas/phpdotenv": "^5.5",
@@ -63,9 +65,8 @@
"codeception/module-db": "^2.0",
"codeception/module-webdriver": "^2.0",
"contributte/codeception": "^1.3.1",
- "doctrine/coding-standard": "^12.0",
+ "doctrine/coding-standard": "^13.0",
"league/flysystem-memory": "^3.10",
- "phing/phing": "^2.17.2",
"php-vcr/php-vcr": "^1.4",
"phpstan/extension-installer": "^1.1",
"phpstan/phpstan": "^1.5",
@@ -91,7 +92,69 @@
"prefer-stable": true,
"minimum-stability": "dev",
"scripts": {
- "post-update-cmd": "Google_Task_Composer::cleanup"
+ "post-update-cmd": "Google_Task_Composer::cleanup",
+
+
+ "main": [
+ "composer install --no-interaction",
+ "@static-analysis",
+ "@coding-standard",
+ "@schema:validate",
+ "@tests"
+ ],
+
+
+ "tests:init": [
+ "bin/console nette:cache:purge || true",
+ "bin/console migrations:drop-all-tables-views --no-interaction",
+ "bin/console migrations:migrate --no-interaction"
+ ],
+ "tests:unit": "vendor/bin/codecept run unit",
+ "tests:integration": "vendor/bin/codecept run integration",
+ "tests:acceptance": [
+ "bin/console nette:cache:purge || true",
+ "bin/console migrations:drop-all-tables-views --no-interaction",
+ "bin/console migrations:migrate --no-interaction",
+ "bin/console orm:generate-proxies --no-interaction",
+ "vendor/bin/codecept run acceptance -vv"
+ ],
+ "tests": [
+ "@tests:init",
+ "@tests:unit",
+ "@tests:integration",
+ "@tests:acceptance"
+ ],
+ "tests-with-coverage": "php -d zend_extension=xdebug.so -d xdebug.mode=coverage vendor/bin/codecept run unit,integration --coverage-xml",
+
+
+ "static-analysis": [
+ "bin/console nette:cache:purge || true",
+ "php -d memory_limit=2G vendor/bin/phpstan analyse -l 6 -c phpstan.neon app tests --no-progress"
+ ],
+ "coding-pretty": "vendor/bin/phpcbf app",
+ "coding-standard": [
+ "vendor/bin/phpcbf app tests",
+ "vendor/bin/phpcs"
+ ],
+ "coding-standard-ci": "vendor/bin/phpcs",
+
+
+ "schema:validate": "bin/console orm:validate-schema --skip-sync",
+ "proxies:generate": "bin/console orm:generate-proxies --no-interaction",
+
+
+ "fix": [
+ "@coding-standard",
+ "@static-analysis"
+ ],
+ "app-init": [
+ "composer install --no-interaction",
+ "cp app/config/config.sample.local.neon app/config/config.local.neon || true",
+ "bin/console nette:cache:purge || true",
+ "yarn install",
+ "yarn build",
+ "bin/console migrations:migrate --no-interaction"
+ ]
},
"extra": {
"google/apiclient-services": [
diff --git a/composer.lock b/composer.lock
index 156009a34..52e240c23 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "8b05a75157285681db08dd196f45a339",
+ "content-hash": "9947d46982d53c862ad4bdc5f9b2a7b2",
"packages": [
{
"name": "beberlei/assert",
@@ -117,16 +117,16 @@
},
{
"name": "brick/math",
- "version": "0.12.1",
+ "version": "0.13.1",
"source": {
"type": "git",
"url": "https://github.com/brick/math.git",
- "reference": "f510c0a40911935b77b86859eb5223d58d660df1"
+ "reference": "fc7ed316430118cc7836bf45faff18d5dfc8de04"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/brick/math/zipball/f510c0a40911935b77b86859eb5223d58d660df1",
- "reference": "f510c0a40911935b77b86859eb5223d58d660df1",
+ "url": "https://api.github.com/repos/brick/math/zipball/fc7ed316430118cc7836bf45faff18d5dfc8de04",
+ "reference": "fc7ed316430118cc7836bf45faff18d5dfc8de04",
"shasum": ""
},
"require": {
@@ -135,7 +135,7 @@
"require-dev": {
"php-coveralls/php-coveralls": "^2.2",
"phpunit/phpunit": "^10.1",
- "vimeo/psalm": "5.16.0"
+ "vimeo/psalm": "6.8.8"
},
"type": "library",
"autoload": {
@@ -165,7 +165,7 @@
],
"support": {
"issues": "https://github.com/brick/math/issues",
- "source": "https://github.com/brick/math/tree/0.12.1"
+ "source": "https://github.com/brick/math/tree/0.13.1"
},
"funding": [
{
@@ -173,20 +173,20 @@
"type": "github"
}
],
- "time": "2023-11-29T23:19:16+00:00"
+ "time": "2025-03-29T13:50:30+00:00"
},
{
"name": "cakephp/chronos",
- "version": "3.1.0",
+ "version": "3.2.0",
"source": {
"type": "git",
"url": "https://github.com/cakephp/chronos.git",
- "reference": "786d69e1ee4b735765cbdb5521b9603e9b98d650"
+ "reference": "6c820947bc1372a250288ab164ec1b3bb7afab39"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/cakephp/chronos/zipball/786d69e1ee4b735765cbdb5521b9603e9b98d650",
- "reference": "786d69e1ee4b735765cbdb5521b9603e9b98d650",
+ "url": "https://api.github.com/repos/cakephp/chronos/zipball/6c820947bc1372a250288ab164ec1b3bb7afab39",
+ "reference": "6c820947bc1372a250288ab164ec1b3bb7afab39",
"shasum": ""
},
"require": {
@@ -232,7 +232,7 @@
"issues": "https://github.com/cakephp/chronos/issues",
"source": "https://github.com/cakephp/chronos"
},
- "time": "2024-07-18T03:18:04+00:00"
+ "time": "2025-06-28T11:35:59+00:00"
},
{
"name": "clue/stream-filter",
@@ -302,16 +302,16 @@
},
{
"name": "composer/ca-bundle",
- "version": "1.5.6",
+ "version": "1.5.8",
"source": {
"type": "git",
"url": "https://github.com/composer/ca-bundle.git",
- "reference": "f65c239c970e7f072f067ab78646e9f0b2935175"
+ "reference": "719026bb30813accb68271fee7e39552a58e9f65"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/ca-bundle/zipball/f65c239c970e7f072f067ab78646e9f0b2935175",
- "reference": "f65c239c970e7f072f067ab78646e9f0b2935175",
+ "url": "https://api.github.com/repos/composer/ca-bundle/zipball/719026bb30813accb68271fee7e39552a58e9f65",
+ "reference": "719026bb30813accb68271fee7e39552a58e9f65",
"shasum": ""
},
"require": {
@@ -358,7 +358,7 @@
"support": {
"irc": "irc://irc.freenode.org/composer",
"issues": "https://github.com/composer/ca-bundle/issues",
- "source": "https://github.com/composer/ca-bundle/tree/1.5.6"
+ "source": "https://github.com/composer/ca-bundle/tree/1.5.8"
},
"funding": [
{
@@ -368,13 +368,9 @@
{
"url": "https://github.com/composer",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/composer/composer",
- "type": "tidelift"
}
],
- "time": "2025-03-06T14:30:56+00:00"
+ "time": "2025-08-20T18:49:47+00:00"
},
{
"name": "composer/pcre",
@@ -521,21 +517,21 @@
},
{
"name": "consistence-community/consistence-doctrine",
- "version": "2.1.3",
+ "version": "2.1.4",
"source": {
"type": "git",
"url": "https://github.com/consistence-community/consistence-doctrine.git",
- "reference": "55a356a004107bcb7a513e08457a6c69371796cc"
+ "reference": "5727c9bb1e5bb21d6bccb9620ee825c87a4216a1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/consistence-community/consistence-doctrine/zipball/55a356a004107bcb7a513e08457a6c69371796cc",
- "reference": "55a356a004107bcb7a513e08457a6c69371796cc",
+ "url": "https://api.github.com/repos/consistence-community/consistence-doctrine/zipball/5727c9bb1e5bb21d6bccb9620ee825c87a4216a1",
+ "reference": "5727c9bb1e5bb21d6bccb9620ee825c87a4216a1",
"shasum": ""
},
"require": {
"consistence-community/consistence": "~2.1",
- "doctrine/annotations": "~1.7",
+ "doctrine/annotations": "~1.7 || ^2.0",
"doctrine/orm": "^2.10.0",
"php": "~7.4 || ~8.0"
},
@@ -575,9 +571,9 @@
"description": "Integration of Consistence library with Doctrine ORM",
"support": {
"issues": "https://github.com/consistence-community/consistence-doctrine/issues",
- "source": "https://github.com/consistence-community/consistence-doctrine/tree/2.1.3"
+ "source": "https://github.com/consistence-community/consistence-doctrine/tree/2.1.4"
},
- "time": "2021-11-30T14:36:06+00:00"
+ "time": "2023-06-15T17:06:27+00:00"
},
{
"name": "contributte/application",
@@ -886,32 +882,115 @@
],
"time": "2023-09-05T08:23:55+00:00"
},
+ {
+ "name": "contributte/scheduler",
+ "version": "v0.7.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/contributte/scheduler.git",
+ "reference": "eb2c21094fc3563ebbf82c5a280fc59d451af988"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/contributte/scheduler/zipball/eb2c21094fc3563ebbf82c5a280fc59d451af988",
+ "reference": "eb2c21094fc3563ebbf82c5a280fc59d451af988",
+ "shasum": ""
+ },
+ "require": {
+ "contributte/di": "^0.5",
+ "dragonmantank/cron-expression": "^3.0.1",
+ "php": ">=7.2",
+ "symfony/console": "^5.0.0 || ^6.0.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.2.0",
+ "ninjify/nunjuck": "^0.4",
+ "ninjify/qa": "^0.13",
+ "phpstan/phpstan": "^1.0",
+ "phpstan/phpstan-deprecation-rules": "^1.0",
+ "phpstan/phpstan-nette": "^1.0",
+ "phpstan/phpstan-strict-rules": "^1.0",
+ "tracy/tracy": "^2.6.2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "0.8.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Contributte\\Scheduler\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Milan Felix Šulc",
+ "homepage": "https://f3l1x.io"
+ },
+ {
+ "name": "Josef Benjac",
+ "homepage": "http://josefbenjac.com"
+ }
+ ],
+ "description": "PHP job scheduler (cron) with locking",
+ "homepage": "https://github.com/contributte/scheduler",
+ "keywords": [
+ "contributte",
+ "cron",
+ "nette",
+ "scheduler"
+ ],
+ "support": {
+ "issues": "https://github.com/contributte/scheduler/issues",
+ "source": "https://github.com/contributte/scheduler/tree/v0.7.3"
+ },
+ "funding": [
+ {
+ "url": "https://contributte.org/partners.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/f3l1x",
+ "type": "github"
+ }
+ ],
+ "time": "2022-02-10T12:08:12+00:00"
+ },
{
"name": "doctrine/annotations",
- "version": "1.13.2",
+ "version": "2.0.2",
"source": {
"type": "git",
"url": "https://github.com/doctrine/annotations.git",
- "reference": "5b668aef16090008790395c02c893b1ba13f7e08"
+ "reference": "901c2ee5d26eb64ff43c47976e114bf00843acf7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/annotations/zipball/5b668aef16090008790395c02c893b1ba13f7e08",
- "reference": "5b668aef16090008790395c02c893b1ba13f7e08",
+ "url": "https://api.github.com/repos/doctrine/annotations/zipball/901c2ee5d26eb64ff43c47976e114bf00843acf7",
+ "reference": "901c2ee5d26eb64ff43c47976e114bf00843acf7",
"shasum": ""
},
"require": {
- "doctrine/lexer": "1.*",
+ "doctrine/lexer": "^2 || ^3",
"ext-tokenizer": "*",
- "php": "^7.1 || ^8.0",
+ "php": "^7.2 || ^8.0",
"psr/cache": "^1 || ^2 || ^3"
},
"require-dev": {
- "doctrine/cache": "^1.11 || ^2.0",
- "doctrine/coding-standard": "^6.0 || ^8.1",
- "phpstan/phpstan": "^0.12.20",
- "phpunit/phpunit": "^7.5 || ^8.0 || ^9.1.5",
- "symfony/cache": "^4.4 || ^5.2"
+ "doctrine/cache": "^2.0",
+ "doctrine/coding-standard": "^10",
+ "phpstan/phpstan": "^1.10.28",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "symfony/cache": "^5.4 || ^6.4 || ^7",
+ "vimeo/psalm": "^4.30 || ^5.14"
+ },
+ "suggest": {
+ "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations"
},
"type": "library",
"autoload": {
@@ -954,22 +1033,22 @@
],
"support": {
"issues": "https://github.com/doctrine/annotations/issues",
- "source": "https://github.com/doctrine/annotations/tree/1.13.2"
+ "source": "https://github.com/doctrine/annotations/tree/2.0.2"
},
- "time": "2021-08-05T19:00:23+00:00"
+ "time": "2024-09-05T10:17:24+00:00"
},
{
"name": "doctrine/cache",
- "version": "1.12.1",
+ "version": "1.13.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/cache.git",
- "reference": "4cf401d14df219fa6f38b671f5493449151c9ad8"
+ "reference": "56cd022adb5514472cb144c087393c1821911d09"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/cache/zipball/4cf401d14df219fa6f38b671f5493449151c9ad8",
- "reference": "4cf401d14df219fa6f38b671f5493449151c9ad8",
+ "url": "https://api.github.com/repos/doctrine/cache/zipball/56cd022adb5514472cb144c087393c1821911d09",
+ "reference": "56cd022adb5514472cb144c087393c1821911d09",
"shasum": ""
},
"require": {
@@ -981,13 +1060,13 @@
"require-dev": {
"alcaeus/mongo-php-adapter": "^1.1",
"cache/integration-tests": "dev-master",
- "doctrine/coding-standard": "^8.0",
+ "doctrine/coding-standard": "^9",
"mongodb/mongodb": "^1.1",
- "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
"predis/predis": "~1.0",
"psr/cache": "^1.0 || ^2.0 || ^3.0",
- "symfony/cache": "^4.4 || ^5.2 || ^6.0@dev",
- "symfony/var-exporter": "^4.4 || ^5.2 || ^6.0@dev"
+ "symfony/cache": "^4.4 || ^5.4 || ^6",
+ "symfony/var-exporter": "^4.4 || ^5.4 || ^6"
},
"suggest": {
"alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver"
@@ -1039,7 +1118,7 @@
],
"support": {
"issues": "https://github.com/doctrine/cache/issues",
- "source": "https://github.com/doctrine/cache/tree/1.12.1"
+ "source": "https://github.com/doctrine/cache/tree/1.13.0"
},
"funding": [
{
@@ -1055,30 +1134,31 @@
"type": "tidelift"
}
],
- "time": "2021-07-17T14:39:21+00:00"
+ "time": "2022-05-20T20:06:54+00:00"
},
{
"name": "doctrine/collections",
- "version": "1.6.8",
+ "version": "1.8.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/collections.git",
- "reference": "1958a744696c6bb3bb0d28db2611dc11610e78af"
+ "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/collections/zipball/1958a744696c6bb3bb0d28db2611dc11610e78af",
- "reference": "1958a744696c6bb3bb0d28db2611dc11610e78af",
+ "url": "https://api.github.com/repos/doctrine/collections/zipball/2b44dd4cbca8b5744327de78bafef5945c7e7b5e",
+ "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e",
"shasum": ""
},
"require": {
+ "doctrine/deprecations": "^0.5.3 || ^1",
"php": "^7.1.3 || ^8.0"
},
"require-dev": {
- "doctrine/coding-standard": "^9.0",
- "phpstan/phpstan": "^0.12",
+ "doctrine/coding-standard": "^9.0 || ^10.0",
+ "phpstan/phpstan": "^1.4.8",
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.1.5",
- "vimeo/psalm": "^4.2.1"
+ "vimeo/psalm": "^4.22"
},
"type": "library",
"autoload": {
@@ -1122,41 +1202,42 @@
],
"support": {
"issues": "https://github.com/doctrine/collections/issues",
- "source": "https://github.com/doctrine/collections/tree/1.6.8"
+ "source": "https://github.com/doctrine/collections/tree/1.8.0"
},
- "time": "2021-08-10T18:51:53+00:00"
+ "time": "2022-09-01T20:12:10+00:00"
},
{
"name": "doctrine/common",
- "version": "3.3.0",
+ "version": "3.5.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/common.git",
- "reference": "c824e95d4c83b7102d8bc60595445a6f7d540f96"
+ "reference": "d9ea4a54ca2586db781f0265d36bea731ac66ec5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/common/zipball/c824e95d4c83b7102d8bc60595445a6f7d540f96",
- "reference": "c824e95d4c83b7102d8bc60595445a6f7d540f96",
+ "url": "https://api.github.com/repos/doctrine/common/zipball/d9ea4a54ca2586db781f0265d36bea731ac66ec5",
+ "reference": "d9ea4a54ca2586db781f0265d36bea731ac66ec5",
"shasum": ""
},
"require": {
- "doctrine/persistence": "^2.0 || ^3.0",
+ "doctrine/persistence": "^2.0 || ^3.0 || ^4.0",
"php": "^7.1 || ^8.0"
},
"require-dev": {
- "doctrine/coding-standard": "^9.0",
+ "doctrine/coding-standard": "^9.0 || ^10.0",
+ "doctrine/collections": "^1",
"phpstan/phpstan": "^1.4.1",
"phpstan/phpstan-phpunit": "^1",
"phpunit/phpunit": "^7.5.20 || ^8.5 || ^9.0",
"squizlabs/php_codesniffer": "^3.0",
- "symfony/phpunit-bridge": "^4.0.5",
+ "symfony/phpunit-bridge": "^6.1",
"vimeo/psalm": "^4.4"
},
"type": "library",
"autoload": {
"psr-4": {
- "Doctrine\\Common\\": "lib/Doctrine/Common"
+ "Doctrine\\Common\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1198,7 +1279,7 @@
],
"support": {
"issues": "https://github.com/doctrine/common/issues",
- "source": "https://github.com/doctrine/common/tree/3.3.0"
+ "source": "https://github.com/doctrine/common/tree/3.5.0"
},
"funding": [
{
@@ -1214,39 +1295,45 @@
"type": "tidelift"
}
],
- "time": "2022-02-05T18:28:51+00:00"
+ "time": "2025-01-01T22:12:03+00:00"
},
{
"name": "doctrine/dbal",
- "version": "2.13.8",
+ "version": "3.10.2",
"source": {
"type": "git",
"url": "https://github.com/doctrine/dbal.git",
- "reference": "dc9b3c3c8592c935a6e590441f9abc0f9eba335b"
+ "reference": "c6c16cf787eaba3112203dfcd715fa2059c62282"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/dbal/zipball/dc9b3c3c8592c935a6e590441f9abc0f9eba335b",
- "reference": "dc9b3c3c8592c935a6e590441f9abc0f9eba335b",
+ "url": "https://api.github.com/repos/doctrine/dbal/zipball/c6c16cf787eaba3112203dfcd715fa2059c62282",
+ "reference": "c6c16cf787eaba3112203dfcd715fa2059c62282",
"shasum": ""
},
"require": {
- "doctrine/cache": "^1.0|^2.0",
- "doctrine/deprecations": "^0.5.3",
- "doctrine/event-manager": "^1.0",
- "ext-pdo": "*",
- "php": "^7.1 || ^8"
+ "composer-runtime-api": "^2",
+ "doctrine/deprecations": "^0.5.3|^1",
+ "doctrine/event-manager": "^1|^2",
+ "php": "^7.4 || ^8.0",
+ "psr/cache": "^1|^2|^3",
+ "psr/log": "^1|^2|^3"
},
- "require-dev": {
- "doctrine/coding-standard": "9.0.0",
- "jetbrains/phpstorm-stubs": "2021.1",
- "phpstan/phpstan": "1.4.6",
- "phpunit/phpunit": "^7.5.20|^8.5|9.5.16",
- "psalm/plugin-phpunit": "0.16.1",
- "squizlabs/php_codesniffer": "3.6.2",
- "symfony/cache": "^4.4",
- "symfony/console": "^2.0.5|^3.0|^4.0|^5.0",
- "vimeo/psalm": "4.22.0"
+ "conflict": {
+ "doctrine/cache": "< 1.11"
+ },
+ "require-dev": {
+ "doctrine/cache": "^1.11|^2.0",
+ "doctrine/coding-standard": "13.0.1",
+ "fig/log-test": "^1",
+ "jetbrains/phpstorm-stubs": "2023.1",
+ "phpstan/phpstan": "2.1.22",
+ "phpstan/phpstan-strict-rules": "^2",
+ "phpunit/phpunit": "9.6.23",
+ "slevomat/coding-standard": "8.16.2",
+ "squizlabs/php_codesniffer": "3.13.1",
+ "symfony/cache": "^5.4|^6.0|^7.0",
+ "symfony/console": "^4.4|^5.4|^6.0|^7.0"
},
"suggest": {
"symfony/console": "For helpful console commands such as SQL execution and import of files."
@@ -1257,7 +1344,7 @@
"type": "library",
"autoload": {
"psr-4": {
- "Doctrine\\DBAL\\": "lib/Doctrine/DBAL"
+ "Doctrine\\DBAL\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1300,14 +1387,13 @@
"queryobject",
"sasql",
"sql",
- "sqlanywhere",
"sqlite",
"sqlserver",
"sqlsrv"
],
"support": {
"issues": "https://github.com/doctrine/dbal/issues",
- "source": "https://github.com/doctrine/dbal/tree/2.13.8"
+ "source": "https://github.com/doctrine/dbal/tree/3.10.2"
},
"funding": [
{
@@ -1323,7 +1409,7 @@
"type": "tidelift"
}
],
- "time": "2022-03-09T15:25:46+00:00"
+ "time": "2025-09-04T23:51:27+00:00"
},
{
"name": "doctrine/deprecations",
@@ -1370,37 +1456,35 @@
},
{
"name": "doctrine/event-manager",
- "version": "1.1.1",
+ "version": "1.2.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/event-manager.git",
- "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f"
+ "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/event-manager/zipball/41370af6a30faa9dc0368c4a6814d596e81aba7f",
- "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f",
+ "url": "https://api.github.com/repos/doctrine/event-manager/zipball/95aa4cb529f1e96576f3fda9f5705ada4056a520",
+ "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520",
"shasum": ""
},
"require": {
+ "doctrine/deprecations": "^0.5.3 || ^1",
"php": "^7.1 || ^8.0"
},
"conflict": {
- "doctrine/common": "<2.9@dev"
+ "doctrine/common": "<2.9"
},
"require-dev": {
- "doctrine/coding-standard": "^6.0",
- "phpunit/phpunit": "^7.0"
+ "doctrine/coding-standard": "^9 || ^10",
+ "phpstan/phpstan": "~1.4.10 || ^1.8.8",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "vimeo/psalm": "^4.24"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
"autoload": {
"psr-4": {
- "Doctrine\\Common\\": "lib/Doctrine/Common"
+ "Doctrine\\Common\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1444,7 +1528,7 @@
],
"support": {
"issues": "https://github.com/doctrine/event-manager/issues",
- "source": "https://github.com/doctrine/event-manager/tree/1.1.x"
+ "source": "https://github.com/doctrine/event-manager/tree/1.2.0"
},
"funding": [
{
@@ -1460,37 +1544,36 @@
"type": "tidelift"
}
],
- "time": "2020-05-29T18:28:51+00:00"
+ "time": "2022-10-12T20:51:15+00:00"
},
{
"name": "doctrine/inflector",
- "version": "2.0.4",
+ "version": "2.1.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/inflector.git",
- "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89"
+ "reference": "6d6c96277ea252fc1304627204c3d5e6e15faa3b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/inflector/zipball/8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89",
- "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/6d6c96277ea252fc1304627204c3d5e6e15faa3b",
+ "reference": "6d6c96277ea252fc1304627204c3d5e6e15faa3b",
"shasum": ""
},
"require": {
"php": "^7.2 || ^8.0"
},
"require-dev": {
- "doctrine/coding-standard": "^8.2",
- "phpstan/phpstan": "^0.12",
- "phpstan/phpstan-phpunit": "^0.12",
- "phpstan/phpstan-strict-rules": "^0.12",
- "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0",
- "vimeo/psalm": "^4.10"
+ "doctrine/coding-standard": "^12.0 || ^13.0",
+ "phpstan/phpstan": "^1.12 || ^2.0",
+ "phpstan/phpstan-phpunit": "^1.4 || ^2.0",
+ "phpstan/phpstan-strict-rules": "^1.6 || ^2.0",
+ "phpunit/phpunit": "^8.5 || ^12.2"
},
"type": "library",
"autoload": {
"psr-4": {
- "Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
+ "Doctrine\\Inflector\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1535,7 +1618,7 @@
],
"support": {
"issues": "https://github.com/doctrine/inflector/issues",
- "source": "https://github.com/doctrine/inflector/tree/2.0.4"
+ "source": "https://github.com/doctrine/inflector/tree/2.1.0"
},
"funding": [
{
@@ -1551,7 +1634,7 @@
"type": "tidelift"
}
],
- "time": "2021-10-22T20:16:43+00:00"
+ "time": "2025-08-10T19:31:58+00:00"
},
{
"name": "doctrine/instantiator",
@@ -1625,31 +1708,32 @@
},
{
"name": "doctrine/lexer",
- "version": "1.2.3",
+ "version": "3.0.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/lexer.git",
- "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229"
+ "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229",
- "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229",
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
+ "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
"shasum": ""
},
"require": {
- "php": "^7.1 || ^8.0"
+ "php": "^8.1"
},
"require-dev": {
- "doctrine/coding-standard": "^9.0",
- "phpstan/phpstan": "^1.3",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "vimeo/psalm": "^4.11"
+ "doctrine/coding-standard": "^12",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^10.5",
+ "psalm/plugin-phpunit": "^0.18.3",
+ "vimeo/psalm": "^5.21"
},
"type": "library",
"autoload": {
"psr-4": {
- "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
+ "Doctrine\\Common\\Lexer\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1681,7 +1765,7 @@
],
"support": {
"issues": "https://github.com/doctrine/lexer/issues",
- "source": "https://github.com/doctrine/lexer/tree/1.2.3"
+ "source": "https://github.com/doctrine/lexer/tree/3.0.1"
},
"funding": [
{
@@ -1697,7 +1781,7 @@
"type": "tidelift"
}
],
- "time": "2022-02-28T11:07:21+00:00"
+ "time": "2024-02-05T11:56:58+00:00"
},
{
"name": "doctrine/migrations",
@@ -1807,52 +1891,56 @@
},
{
"name": "doctrine/orm",
- "version": "2.11.2",
+ "version": "2.20.6",
"source": {
"type": "git",
"url": "https://github.com/doctrine/orm.git",
- "reference": "9c351e044478135aec1755e2c0c0493a4b6309db"
+ "reference": "c322c71cd40da12d255dabd7b6ce0d9cf208a5d5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/orm/zipball/9c351e044478135aec1755e2c0c0493a4b6309db",
- "reference": "9c351e044478135aec1755e2c0c0493a4b6309db",
+ "url": "https://api.github.com/repos/doctrine/orm/zipball/c322c71cd40da12d255dabd7b6ce0d9cf208a5d5",
+ "reference": "c322c71cd40da12d255dabd7b6ce0d9cf208a5d5",
"shasum": ""
},
"require": {
"composer-runtime-api": "^2",
"doctrine/cache": "^1.12.1 || ^2.1.1",
- "doctrine/collections": "^1.5",
+ "doctrine/collections": "^1.5 || ^2.1",
"doctrine/common": "^3.0.3",
"doctrine/dbal": "^2.13.1 || ^3.2",
- "doctrine/deprecations": "^0.5.3",
- "doctrine/event-manager": "^1.1",
+ "doctrine/deprecations": "^0.5.3 || ^1",
+ "doctrine/event-manager": "^1.2 || ^2",
"doctrine/inflector": "^1.4 || ^2.0",
- "doctrine/instantiator": "^1.3",
- "doctrine/lexer": "^1.0",
- "doctrine/persistence": "^2.2",
+ "doctrine/instantiator": "^1.3 || ^2",
+ "doctrine/lexer": "^2 || ^3",
+ "doctrine/persistence": "^2.4 || ^3",
"ext-ctype": "*",
"php": "^7.1 || ^8.0",
"psr/cache": "^1 || ^2 || ^3",
- "symfony/console": "^3.0 || ^4.0 || ^5.0 || ^6.0",
+ "symfony/console": "^4.2 || ^5.0 || ^6.0 || ^7.0",
"symfony/polyfill-php72": "^1.23",
- "symfony/polyfill-php80": "^1.15"
+ "symfony/polyfill-php80": "^1.16"
},
"conflict": {
- "doctrine/annotations": "<1.13 || >= 2.0"
+ "doctrine/annotations": "<1.13 || >= 3.0"
},
"require-dev": {
- "doctrine/annotations": "^1.13",
- "doctrine/coding-standard": "^9.0",
+ "doctrine/annotations": "^1.13 || ^2",
+ "doctrine/coding-standard": "^9.0.2 || ^13.0",
"phpbench/phpbench": "^0.16.10 || ^1.0",
- "phpstan/phpstan": "1.4.6",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4",
- "squizlabs/php_codesniffer": "3.6.2",
- "symfony/cache": "^4.4 || ^5.4 || ^6.0",
- "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0",
- "vimeo/psalm": "4.22.0"
+ "phpstan/extension-installer": "~1.1.0 || ^1.4",
+ "phpstan/phpstan": "~1.4.10 || 2.0.3",
+ "phpstan/phpstan-deprecation-rules": "^1 || ^2",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6",
+ "psr/log": "^1 || ^2 || ^3",
+ "squizlabs/php_codesniffer": "3.12.0",
+ "symfony/cache": "^4.4 || ^5.4 || ^6.4 || ^7.0",
+ "symfony/var-exporter": "^4.4 || ^5.4 || ^6.2 || ^7.0",
+ "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0 || ^7.0"
},
"suggest": {
+ "ext-dom": "Provides support for XSD validation for XML mapping files",
"symfony/cache": "Provides cache support for Setup Tool with doctrine/cache 2.0",
"symfony/yaml": "If you want to use YAML Metadata Mapping Driver"
},
@@ -1862,7 +1950,7 @@
"type": "library",
"autoload": {
"psr-4": {
- "Doctrine\\ORM\\": "lib/Doctrine/ORM"
+ "Doctrine\\ORM\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1899,50 +1987,44 @@
],
"support": {
"issues": "https://github.com/doctrine/orm/issues",
- "source": "https://github.com/doctrine/orm/tree/2.11.2"
+ "source": "https://github.com/doctrine/orm/tree/2.20.6"
},
- "time": "2022-03-09T15:23:58+00:00"
+ "time": "2025-08-08T06:55:44+00:00"
},
{
"name": "doctrine/persistence",
- "version": "2.5.1",
+ "version": "3.4.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/persistence.git",
- "reference": "4473480044c88f30e0e8288e7123b60c7eb9efa3"
+ "reference": "0ea965320cec355dba75031c1b23d4c78362e3ff"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/persistence/zipball/4473480044c88f30e0e8288e7123b60c7eb9efa3",
- "reference": "4473480044c88f30e0e8288e7123b60c7eb9efa3",
+ "url": "https://api.github.com/repos/doctrine/persistence/zipball/0ea965320cec355dba75031c1b23d4c78362e3ff",
+ "reference": "0ea965320cec355dba75031c1b23d4c78362e3ff",
"shasum": ""
},
"require": {
- "doctrine/cache": "^1.11 || ^2.0",
- "doctrine/collections": "^1.0",
- "doctrine/deprecations": "^0.5.3",
- "doctrine/event-manager": "^1.0",
- "php": "^7.1 || ^8.0",
+ "doctrine/event-manager": "^1 || ^2",
+ "php": "^7.2 || ^8.0",
"psr/cache": "^1.0 || ^2.0 || ^3.0"
},
"conflict": {
- "doctrine/annotations": "<1.0 || >=2.0",
"doctrine/common": "<2.10"
},
"require-dev": {
- "composer/package-versions-deprecated": "^1.11",
- "doctrine/annotations": "^1.0",
- "doctrine/coding-standard": "^9.0",
+ "doctrine/coding-standard": "^12",
"doctrine/common": "^3.0",
- "phpstan/phpstan": "~1.4.10 || 1.5.0",
- "phpunit/phpunit": "^7.5.20 || ^8.5 || ^9.5",
- "symfony/cache": "^4.4 || ^5.4 || ^6.0",
- "vimeo/psalm": "4.22.0"
+ "phpstan/phpstan": "1.12.7",
+ "phpstan/phpstan-phpunit": "^1",
+ "phpstan/phpstan-strict-rules": "^1.1",
+ "phpunit/phpunit": "^8.5.38 || ^9.5",
+ "symfony/cache": "^4.4 || ^5.4 || ^6.0 || ^7.0"
},
"type": "library",
"autoload": {
"psr-4": {
- "Doctrine\\Common\\": "src/Common",
"Doctrine\\Persistence\\": "src/Persistence"
}
},
@@ -1977,7 +2059,7 @@
}
],
"description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.",
- "homepage": "https://doctrine-project.org/projects/persistence.html",
+ "homepage": "https://www.doctrine-project.org/projects/persistence.html",
"keywords": [
"mapper",
"object",
@@ -1987,22 +2069,101 @@
],
"support": {
"issues": "https://github.com/doctrine/persistence/issues",
- "source": "https://github.com/doctrine/persistence/tree/2.5.1"
+ "source": "https://github.com/doctrine/persistence/tree/3.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fpersistence",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-10-30T19:48:12+00:00"
+ },
+ {
+ "name": "dragonmantank/cron-expression",
+ "version": "v3.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/dragonmantank/cron-expression.git",
+ "reference": "8c784d071debd117328803d86b2097615b457500"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/8c784d071debd117328803d86b2097615b457500",
+ "reference": "8c784d071debd117328803d86b2097615b457500",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2|^8.0",
+ "webmozart/assert": "^1.0"
+ },
+ "replace": {
+ "mtdowling/cron-expression": "^1.0"
+ },
+ "require-dev": {
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^1.0",
+ "phpunit/phpunit": "^7.0|^8.0|^9.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Cron\\": "src/Cron/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Chris Tankersley",
+ "email": "chris@ctankersley.com",
+ "homepage": "https://github.com/dragonmantank"
+ }
+ ],
+ "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due",
+ "keywords": [
+ "cron",
+ "schedule"
+ ],
+ "support": {
+ "issues": "https://github.com/dragonmantank/cron-expression/issues",
+ "source": "https://github.com/dragonmantank/cron-expression/tree/v3.4.0"
},
- "time": "2022-04-14T21:47:17+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/dragonmantank",
+ "type": "github"
+ }
+ ],
+ "time": "2024-10-09T13:47:03+00:00"
},
{
"name": "firebase/php-jwt",
- "version": "v6.11.0",
+ "version": "v6.11.1",
"source": {
"type": "git",
"url": "https://github.com/firebase/php-jwt.git",
- "reference": "8f718f4dfc9c5d5f0c994cdfd103921b43592712"
+ "reference": "d1e91ecf8c598d073d0995afa8cd5c75c6e19e66"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/firebase/php-jwt/zipball/8f718f4dfc9c5d5f0c994cdfd103921b43592712",
- "reference": "8f718f4dfc9c5d5f0c994cdfd103921b43592712",
+ "url": "https://api.github.com/repos/firebase/php-jwt/zipball/d1e91ecf8c598d073d0995afa8cd5c75c6e19e66",
+ "reference": "d1e91ecf8c598d073d0995afa8cd5c75c6e19e66",
"shasum": ""
},
"require": {
@@ -2050,9 +2211,9 @@
],
"support": {
"issues": "https://github.com/firebase/php-jwt/issues",
- "source": "https://github.com/firebase/php-jwt/tree/v6.11.0"
+ "source": "https://github.com/firebase/php-jwt/tree/v6.11.1"
},
- "time": "2025-01-23T05:11:06+00:00"
+ "time": "2025-04-09T20:32:01+00:00"
},
{
"name": "fmasa/messenger",
@@ -2164,22 +2325,22 @@
},
{
"name": "friendsofphp/proxy-manager-lts",
- "version": "v1.0.12",
+ "version": "v1.0.18",
"source": {
"type": "git",
"url": "https://github.com/FriendsOfPHP/proxy-manager-lts.git",
- "reference": "8419f0158715b30d4b99a5bd37c6a39671994ad7"
+ "reference": "2c8a6cffc3220e99352ad958fe7cf06bf6f7690f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/FriendsOfPHP/proxy-manager-lts/zipball/8419f0158715b30d4b99a5bd37c6a39671994ad7",
- "reference": "8419f0158715b30d4b99a5bd37c6a39671994ad7",
+ "url": "https://api.github.com/repos/FriendsOfPHP/proxy-manager-lts/zipball/2c8a6cffc3220e99352ad958fe7cf06bf6f7690f",
+ "reference": "2c8a6cffc3220e99352ad958fe7cf06bf6f7690f",
"shasum": ""
},
"require": {
"laminas/laminas-code": "~3.4.1|^4.0",
"php": ">=7.1",
- "symfony/filesystem": "^4.4.17|^5.0|^6.0"
+ "symfony/filesystem": "^4.4.17|^5.0|^6.0|^7.0"
},
"conflict": {
"laminas/laminas-stdlib": "<3.2.1",
@@ -2190,13 +2351,13 @@
},
"require-dev": {
"ext-phar": "*",
- "symfony/phpunit-bridge": "^5.4|^6.0"
+ "symfony/phpunit-bridge": "^5.4|^6.0|^7.0"
},
"type": "library",
"extra": {
"thanks": {
- "name": "ocramius/proxy-manager",
- "url": "https://github.com/Ocramius/ProxyManager"
+ "url": "https://github.com/Ocramius/ProxyManager",
+ "name": "ocramius/proxy-manager"
}
},
"autoload": {
@@ -2230,7 +2391,7 @@
],
"support": {
"issues": "https://github.com/FriendsOfPHP/proxy-manager-lts/issues",
- "source": "https://github.com/FriendsOfPHP/proxy-manager-lts/tree/v1.0.12"
+ "source": "https://github.com/FriendsOfPHP/proxy-manager-lts/tree/v1.0.18"
},
"funding": [
{
@@ -2242,20 +2403,20 @@
"type": "tidelift"
}
],
- "time": "2022-05-05T09:31:05+00:00"
+ "time": "2024-03-20T12:50:41+00:00"
},
{
"name": "google/apiclient",
- "version": "v2.18.2",
+ "version": "v2.18.3",
"source": {
"type": "git",
"url": "https://github.com/googleapis/google-api-php-client.git",
- "reference": "d8d201ba8a189a3cd7fb34e4da569f2ed440eee7"
+ "reference": "4eee42d201eff054428a4836ec132944d271f051"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/googleapis/google-api-php-client/zipball/d8d201ba8a189a3cd7fb34e4da569f2ed440eee7",
- "reference": "d8d201ba8a189a3cd7fb34e4da569f2ed440eee7",
+ "url": "https://api.github.com/repos/googleapis/google-api-php-client/zipball/4eee42d201eff054428a4836ec132944d271f051",
+ "reference": "4eee42d201eff054428a4836ec132944d271f051",
"shasum": ""
},
"require": {
@@ -2309,9 +2470,9 @@
],
"support": {
"issues": "https://github.com/googleapis/google-api-php-client/issues",
- "source": "https://github.com/googleapis/google-api-php-client/tree/v2.18.2"
+ "source": "https://github.com/googleapis/google-api-php-client/tree/v2.18.3"
},
- "time": "2024-12-16T22:52:40+00:00"
+ "time": "2025-04-08T21:59:36+00:00"
},
{
"name": "google/apiclient-services",
@@ -2806,16 +2967,16 @@
},
{
"name": "heureka/bank-account-validator",
- "version": "v1.2.1",
+ "version": "v1.2.2",
"source": {
"type": "git",
"url": "https://github.com/heureka/bank-account-validator.git",
- "reference": "95a88c212aadbf25cffbd5018d4c6cd8f62d8776"
+ "reference": "959dc0d777baedc6111dc8a5570a7a27fd5cd875"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/heureka/bank-account-validator/zipball/95a88c212aadbf25cffbd5018d4c6cd8f62d8776",
- "reference": "95a88c212aadbf25cffbd5018d4c6cd8f62d8776",
+ "url": "https://api.github.com/repos/heureka/bank-account-validator/zipball/959dc0d777baedc6111dc8a5570a7a27fd5cd875",
+ "reference": "959dc0d777baedc6111dc8a5570a7a27fd5cd875",
"shasum": ""
},
"require": {
@@ -2845,9 +3006,9 @@
"description": "Simple validator for bank account number - verify only checksum",
"support": {
"issues": "https://github.com/heureka/bank-account-validator/issues",
- "source": "https://github.com/heureka/bank-account-validator/tree/v1.2.1"
+ "source": "https://github.com/heureka/bank-account-validator/tree/v1.2.2"
},
- "time": "2024-10-29T09:29:13+00:00"
+ "time": "2025-07-10T08:29:20+00:00"
},
{
"name": "http-interop/http-factory-guzzle",
@@ -3041,29 +3202,29 @@
},
{
"name": "laminas/laminas-code",
- "version": "4.5.1",
+ "version": "4.16.0",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-code.git",
- "reference": "6fd96d4d913571a2cd056a27b123fa28cb90ac4e"
+ "reference": "1793e78dad4108b594084d05d1fb818b85b110af"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laminas/laminas-code/zipball/6fd96d4d913571a2cd056a27b123fa28cb90ac4e",
- "reference": "6fd96d4d913571a2cd056a27b123fa28cb90ac4e",
+ "url": "https://api.github.com/repos/laminas/laminas-code/zipball/1793e78dad4108b594084d05d1fb818b85b110af",
+ "reference": "1793e78dad4108b594084d05d1fb818b85b110af",
"shasum": ""
},
"require": {
- "php": ">=7.4, <8.2"
+ "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0"
},
"require-dev": {
- "doctrine/annotations": "^1.13.2",
+ "doctrine/annotations": "^2.0.1",
"ext-phar": "*",
- "laminas/laminas-coding-standard": "^2.3.0",
- "laminas/laminas-stdlib": "^3.6.1",
- "phpunit/phpunit": "^9.5.10",
- "psalm/plugin-phpunit": "^0.16.1",
- "vimeo/psalm": "^4.13.1"
+ "laminas/laminas-coding-standard": "^3.0.0",
+ "laminas/laminas-stdlib": "^3.18.0",
+ "phpunit/phpunit": "^10.5.37",
+ "psalm/plugin-phpunit": "^0.19.0",
+ "vimeo/psalm": "^5.15.0"
},
"suggest": {
"doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features",
@@ -3071,9 +3232,6 @@
},
"type": "library",
"autoload": {
- "files": [
- "polyfill/ReflectionEnumPolyfill.php"
- ],
"psr-4": {
"Laminas\\Code\\": "src/"
}
@@ -3103,40 +3261,42 @@
"type": "community_bridge"
}
],
- "time": "2021-12-19T18:06:55+00:00"
+ "time": "2024-11-20T13:15:13+00:00"
},
{
"name": "latte/latte",
- "version": "v2.11.6",
+ "version": "v3.0.23",
"source": {
"type": "git",
"url": "https://github.com/nette/latte.git",
- "reference": "af4dbb23a6044b1cf4904830a9b00246318c93d4"
+ "reference": "3198a4e336a2a1e535924af11d9a63fbf1650836"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/latte/zipball/af4dbb23a6044b1cf4904830a9b00246318c93d4",
- "reference": "af4dbb23a6044b1cf4904830a9b00246318c93d4",
+ "url": "https://api.github.com/repos/nette/latte/zipball/3198a4e336a2a1e535924af11d9a63fbf1650836",
+ "reference": "3198a4e336a2a1e535924af11d9a63fbf1650836",
"shasum": ""
},
"require": {
"ext-json": "*",
"ext-tokenizer": "*",
- "php": ">=7.1 <8.3"
+ "php": "8.0 - 8.4"
},
"conflict": {
- "nette/application": "<2.4.1"
+ "nette/application": "<3.1.7",
+ "nette/caching": "<3.1.4"
},
"require-dev": {
- "nette/php-generator": "^3.3.4",
- "nette/tester": "^2.0",
- "nette/utils": "^3.0",
- "phpstan/phpstan": "^1",
- "tracy/tracy": "^2.3"
+ "nette/php-generator": "^4.0",
+ "nette/tester": "^2.5",
+ "nette/utils": "^4.0",
+ "phpstan/phpstan-nette": "^2.0@stable",
+ "tracy/tracy": "^2.10"
},
"suggest": {
"ext-fileinfo": "to use filter |datastream",
"ext-iconv": "to use filters |reverse, |substring",
+ "ext-intl": "to use Latte\\Engine::setLocale()",
"ext-mbstring": "to use filters like lower, upper, capitalize, ...",
"nette/php-generator": "to use tag {templatePrint}",
"nette/utils": "to use filter |webalize"
@@ -3147,10 +3307,13 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.11-dev"
+ "dev-master": "3.0-dev"
}
},
"autoload": {
+ "psr-4": {
+ "Latte\\": "src/Latte"
+ },
"classmap": [
"src/"
]
@@ -3185,22 +3348,22 @@
],
"support": {
"issues": "https://github.com/nette/latte/issues",
- "source": "https://github.com/nette/latte/tree/v2.11.6"
+ "source": "https://github.com/nette/latte/tree/v3.0.23"
},
- "time": "2022-11-04T14:53:52+00:00"
+ "time": "2025-07-17T01:01:46+00:00"
},
{
"name": "league/flysystem",
- "version": "3.29.1",
+ "version": "3.30.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem.git",
- "reference": "edc1bb7c86fab0776c3287dbd19b5fa278347319"
+ "reference": "2203e3151755d874bb2943649dae1eb8533ac93e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/edc1bb7c86fab0776c3287dbd19b5fa278347319",
- "reference": "edc1bb7c86fab0776c3287dbd19b5fa278347319",
+ "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/2203e3151755d874bb2943649dae1eb8533ac93e",
+ "reference": "2203e3151755d874bb2943649dae1eb8533ac93e",
"shasum": ""
},
"require": {
@@ -3224,13 +3387,13 @@
"composer/semver": "^3.0",
"ext-fileinfo": "*",
"ext-ftp": "*",
- "ext-mongodb": "^1.3",
+ "ext-mongodb": "^1.3|^2",
"ext-zip": "*",
"friendsofphp/php-cs-fixer": "^3.5",
"google/cloud-storage": "^1.23",
"guzzlehttp/psr7": "^2.6",
"microsoft/azure-storage-blob": "^1.1",
- "mongodb/mongodb": "^1.2",
+ "mongodb/mongodb": "^1.2|^2",
"phpseclib/phpseclib": "^3.0.36",
"phpstan/phpstan": "^1.10",
"phpunit/phpunit": "^9.5.11|^10.0",
@@ -3268,22 +3431,22 @@
],
"support": {
"issues": "https://github.com/thephpleague/flysystem/issues",
- "source": "https://github.com/thephpleague/flysystem/tree/3.29.1"
+ "source": "https://github.com/thephpleague/flysystem/tree/3.30.0"
},
- "time": "2024-10-08T08:58:34+00:00"
+ "time": "2025-06-25T13:29:59+00:00"
},
{
"name": "league/flysystem-local",
- "version": "3.29.0",
+ "version": "3.30.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem-local.git",
- "reference": "e0e8d52ce4b2ed154148453d321e97c8e931bd27"
+ "reference": "6691915f77c7fb69adfb87dcd550052dc184ee10"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/e0e8d52ce4b2ed154148453d321e97c8e931bd27",
- "reference": "e0e8d52ce4b2ed154148453d321e97c8e931bd27",
+ "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/6691915f77c7fb69adfb87dcd550052dc184ee10",
+ "reference": "6691915f77c7fb69adfb87dcd550052dc184ee10",
"shasum": ""
},
"require": {
@@ -3317,9 +3480,9 @@
"local"
],
"support": {
- "source": "https://github.com/thephpleague/flysystem-local/tree/3.29.0"
+ "source": "https://github.com/thephpleague/flysystem-local/tree/3.30.0"
},
- "time": "2024-08-09T21:24:39+00:00"
+ "time": "2025-05-21T10:34:19+00:00"
},
{
"name": "league/mime-type-detection",
@@ -3618,16 +3781,16 @@
},
{
"name": "moneyphp/money",
- "version": "v4.6.0",
+ "version": "v4.7.1",
"source": {
"type": "git",
"url": "https://github.com/moneyphp/money.git",
- "reference": "ddf6a86b574808f8844777ed4e8c4f92a10dac9b"
+ "reference": "1a23f0e1b22e2c59ed5ed70cfbe4cbe696be9348"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/moneyphp/money/zipball/ddf6a86b574808f8844777ed4e8c4f92a10dac9b",
- "reference": "ddf6a86b574808f8844777ed4e8c4f92a10dac9b",
+ "url": "https://api.github.com/repos/moneyphp/money/zipball/1a23f0e1b22e2c59ed5ed70cfbe4cbe696be9348",
+ "reference": "1a23f0e1b22e2c59ed5ed70cfbe4cbe696be9348",
"shasum": ""
},
"require": {
@@ -3649,10 +3812,12 @@
"php-http/message": "^1.16.0",
"php-http/mock-client": "^1.6.0",
"phpbench/phpbench": "^1.2.5",
+ "phpstan/extension-installer": "^1.4",
+ "phpstan/phpstan": "^2.1.9",
+ "phpstan/phpstan-phpunit": "^2.0",
"phpunit/phpunit": "^10.5.9",
- "psalm/plugin-phpunit": "^0.18.4",
"psr/cache": "^1.0.1 || ^2.0 || ^3.0",
- "vimeo/psalm": "~5.20.0"
+ "ticketswap/phpstan-error-formatter": "^1.1"
},
"suggest": {
"ext-gmp": "Calculate without integer limits",
@@ -3700,9 +3865,9 @@
],
"support": {
"issues": "https://github.com/moneyphp/money/issues",
- "source": "https://github.com/moneyphp/money/tree/v4.6.0"
+ "source": "https://github.com/moneyphp/money/tree/v4.7.1"
},
- "time": "2024-11-22T10:59:03+00:00"
+ "time": "2025-06-06T07:12:38+00:00"
},
{
"name": "monolog/monolog",
@@ -4133,16 +4298,16 @@
},
{
"name": "nette/bootstrap",
- "version": "v3.2.4",
+ "version": "v3.2.6",
"source": {
"type": "git",
"url": "https://github.com/nette/bootstrap.git",
- "reference": "4876d25955b4164d714bc17c265f664f6594685b"
+ "reference": "287240831efe4936b23a1b643df0d54069a4eda0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/bootstrap/zipball/4876d25955b4164d714bc17c265f664f6594685b",
- "reference": "4876d25955b4164d714bc17c265f664f6594685b",
+ "url": "https://api.github.com/repos/nette/bootstrap/zipball/287240831efe4936b23a1b643df0d54069a4eda0",
+ "reference": "287240831efe4936b23a1b643df0d54069a4eda0",
"shasum": ""
},
"require": {
@@ -4208,9 +4373,9 @@
],
"support": {
"issues": "https://github.com/nette/bootstrap/issues",
- "source": "https://github.com/nette/bootstrap/tree/v3.2.4"
+ "source": "https://github.com/nette/bootstrap/tree/v3.2.6"
},
- "time": "2024-06-18T22:13:57+00:00"
+ "time": "2025-05-22T06:18:42+00:00"
},
{
"name": "nette/caching",
@@ -4718,21 +4883,21 @@
},
{
"name": "nette/neon",
- "version": "v3.4.3",
+ "version": "v3.4.4",
"source": {
"type": "git",
"url": "https://github.com/nette/neon.git",
- "reference": "c8481c104431c8d94cc88424a1e21f47f8c93280"
+ "reference": "3411aa86b104e2d5b7e760da4600865ead963c3c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/neon/zipball/c8481c104431c8d94cc88424a1e21f47f8c93280",
- "reference": "c8481c104431c8d94cc88424a1e21f47f8c93280",
+ "url": "https://api.github.com/repos/nette/neon/zipball/3411aa86b104e2d5b7e760da4600865ead963c3c",
+ "reference": "3411aa86b104e2d5b7e760da4600865ead963c3c",
"shasum": ""
},
"require": {
"ext-json": "*",
- "php": "8.0 - 8.3"
+ "php": "8.0 - 8.4"
},
"require-dev": {
"nette/tester": "^2.4",
@@ -4780,27 +4945,27 @@
],
"support": {
"issues": "https://github.com/nette/neon/issues",
- "source": "https://github.com/nette/neon/tree/v3.4.3"
+ "source": "https://github.com/nette/neon/tree/v3.4.4"
},
- "time": "2024-06-26T14:53:59+00:00"
+ "time": "2024-10-04T22:00:08+00:00"
},
{
"name": "nette/php-generator",
- "version": "v4.1.5",
+ "version": "v4.1.8",
"source": {
"type": "git",
"url": "https://github.com/nette/php-generator.git",
- "reference": "690b00d81d42d5633e4457c43ef9754573b6f9d6"
+ "reference": "42806049a7774a2bd316c958f5dcf01c6b5c56fa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/php-generator/zipball/690b00d81d42d5633e4457c43ef9754573b6f9d6",
- "reference": "690b00d81d42d5633e4457c43ef9754573b6f9d6",
+ "url": "https://api.github.com/repos/nette/php-generator/zipball/42806049a7774a2bd316c958f5dcf01c6b5c56fa",
+ "reference": "42806049a7774a2bd316c958f5dcf01c6b5c56fa",
"shasum": ""
},
"require": {
"nette/utils": "^3.2.9 || ^4.0",
- "php": "8.0 - 8.3"
+ "php": "8.0 - 8.4"
},
"require-dev": {
"jetbrains/phpstorm-attributes": "dev-master",
@@ -4839,7 +5004,7 @@
"homepage": "https://nette.org/contributors"
}
],
- "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 8.3 features.",
+ "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 8.4 features.",
"homepage": "https://nette.org",
"keywords": [
"code",
@@ -4849,9 +5014,9 @@
],
"support": {
"issues": "https://github.com/nette/php-generator/issues",
- "source": "https://github.com/nette/php-generator/tree/v4.1.5"
+ "source": "https://github.com/nette/php-generator/tree/v4.1.8"
},
- "time": "2024-05-12T17:31:02+00:00"
+ "time": "2025-03-31T00:29:29+00:00"
},
{
"name": "nette/robot-loader",
@@ -5206,12 +5371,12 @@
"version": "v0.3.0",
"source": {
"type": "git",
- "url": "https://github.com/nettrine/cache.git",
+ "url": "https://github.com/contributte/doctrine-cache.git",
"reference": "8a58596de24cdd61e45866ef8f35788675f6d2bc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nettrine/cache/zipball/8a58596de24cdd61e45866ef8f35788675f6d2bc",
+ "url": "https://api.github.com/repos/contributte/doctrine-cache/zipball/8a58596de24cdd61e45866ef8f35788675f6d2bc",
"reference": "8a58596de24cdd61e45866ef8f35788675f6d2bc",
"shasum": ""
},
@@ -5259,30 +5424,40 @@
"nettrine"
],
"support": {
- "issues": "https://github.com/nettrine/cache/issues",
- "source": "https://github.com/nettrine/cache/tree/v0.3.0"
+ "issues": "https://github.com/contributte/doctrine-cache/issues",
+ "source": "https://github.com/contributte/doctrine-cache/tree/v0.3.0"
},
+ "funding": [
+ {
+ "url": "https://contributte.org/partners.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/f3l1x",
+ "type": "github"
+ }
+ ],
"time": "2020-12-10T17:56:32+00:00"
},
{
"name": "nettrine/dbal",
- "version": "v0.8.0",
+ "version": "v0.8.2",
"source": {
"type": "git",
- "url": "https://github.com/nettrine/dbal.git",
- "reference": "e092aac6561073e802cab948fb913e2043894155"
+ "url": "https://github.com/contributte/doctrine-dbal.git",
+ "reference": "e5d38af256c05617c1387ecba8f04ec58c32447a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nettrine/dbal/zipball/e092aac6561073e802cab948fb913e2043894155",
- "reference": "e092aac6561073e802cab948fb913e2043894155",
+ "url": "https://api.github.com/repos/contributte/doctrine-dbal/zipball/e5d38af256c05617c1387ecba8f04ec58c32447a",
+ "reference": "e5d38af256c05617c1387ecba8f04ec58c32447a",
"shasum": ""
},
"require": {
"contributte/di": "^0.5.0",
- "doctrine/dbal": "^2.13 || ^3.2",
+ "doctrine/dbal": "^3.5.3",
"nettrine/cache": "^0.3.0",
- "php": ">=7.2 <8.2"
+ "php": ">=7.4"
},
"conflict": {
"nette/di": "<3.0.6",
@@ -5292,7 +5467,7 @@
"contributte/console": "^0.9.1",
"mockery/mockery": "^1.3.5",
"ninjify/nunjuck": "^0.4",
- "ninjify/qa": "^0.12",
+ "ninjify/qa": "^0.13",
"phpstan/phpstan": "^1.2.0",
"phpstan/phpstan-deprecation-rules": "^1.0.0",
"phpstan/phpstan-nette": "^1.0.0",
@@ -5303,7 +5478,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "0.8.x-dev"
+ "dev-master": "0.9.x-dev"
}
},
"autoload": {
@@ -5322,7 +5497,7 @@
}
],
"description": "Doctrine DBAL for Nette Framework",
- "homepage": "https://github.com/nettrine/dbal",
+ "homepage": "https://github.com/contributte/doctrine-dbal",
"keywords": [
"database",
"dbal",
@@ -5333,10 +5508,20 @@
"sqlite"
],
"support": {
- "issues": "https://github.com/nettrine/dbal/issues",
- "source": "https://github.com/nettrine/dbal/tree/v0.8.0"
+ "issues": "https://github.com/contributte/doctrine-dbal/issues",
+ "source": "https://github.com/contributte/doctrine-dbal/tree/v0.8.2"
},
- "time": "2022-05-09T08:04:24+00:00"
+ "funding": [
+ {
+ "url": "https://contributte.org/partners.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/f3l1x",
+ "type": "github"
+ }
+ ],
+ "time": "2023-01-13T16:26:05+00:00"
},
{
"name": "nettrine/migrations",
@@ -5743,21 +5928,21 @@
},
{
"name": "php-http/guzzle7-adapter",
- "version": "1.0.0",
+ "version": "1.1.0",
"source": {
"type": "git",
"url": "https://github.com/php-http/guzzle7-adapter.git",
- "reference": "fb075a71dbfa4847cf0c2938c4e5a9c478ef8b01"
+ "reference": "03a415fde709c2f25539790fecf4d9a31bc3d0eb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-http/guzzle7-adapter/zipball/fb075a71dbfa4847cf0c2938c4e5a9c478ef8b01",
- "reference": "fb075a71dbfa4847cf0c2938c4e5a9c478ef8b01",
+ "url": "https://api.github.com/repos/php-http/guzzle7-adapter/zipball/03a415fde709c2f25539790fecf4d9a31bc3d0eb",
+ "reference": "03a415fde709c2f25539790fecf4d9a31bc3d0eb",
"shasum": ""
},
"require": {
"guzzlehttp/guzzle": "^7.0",
- "php": "^7.2 | ^8.0",
+ "php": "^7.3 | ^8.0",
"php-http/httplug": "^2.0",
"psr/http-client": "^1.0"
},
@@ -5768,14 +5953,11 @@
},
"require-dev": {
"php-http/client-integration-tests": "^3.0",
+ "php-http/message-factory": "^1.1",
+ "phpspec/prophecy-phpunit": "^2.0",
"phpunit/phpunit": "^8.0|^9.3"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "0.2.x-dev"
- }
- },
"autoload": {
"psr-4": {
"Http\\Adapter\\Guzzle7\\": "src/"
@@ -5799,22 +5981,22 @@
],
"support": {
"issues": "https://github.com/php-http/guzzle7-adapter/issues",
- "source": "https://github.com/php-http/guzzle7-adapter/tree/1.0.0"
+ "source": "https://github.com/php-http/guzzle7-adapter/tree/1.1.0"
},
- "time": "2021-03-09T07:35:15+00:00"
+ "time": "2024-11-26T11:14:36+00:00"
},
{
"name": "php-http/httplug",
- "version": "2.4.0",
+ "version": "2.4.1",
"source": {
"type": "git",
"url": "https://github.com/php-http/httplug.git",
- "reference": "625ad742c360c8ac580fcc647a1541d29e257f67"
+ "reference": "5cad731844891a4c282f3f3e1b582c46839d22f4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-http/httplug/zipball/625ad742c360c8ac580fcc647a1541d29e257f67",
- "reference": "625ad742c360c8ac580fcc647a1541d29e257f67",
+ "url": "https://api.github.com/repos/php-http/httplug/zipball/5cad731844891a4c282f3f3e1b582c46839d22f4",
+ "reference": "5cad731844891a4c282f3f3e1b582c46839d22f4",
"shasum": ""
},
"require": {
@@ -5856,9 +6038,9 @@
],
"support": {
"issues": "https://github.com/php-http/httplug/issues",
- "source": "https://github.com/php-http/httplug/tree/2.4.0"
+ "source": "https://github.com/php-http/httplug/tree/2.4.1"
},
- "time": "2023-04-14T15:10:03+00:00"
+ "time": "2024-09-23T11:39:58+00:00"
},
{
"name": "php-http/message",
@@ -5986,16 +6168,16 @@
},
{
"name": "php-http/promise",
- "version": "1.2.1",
+ "version": "1.3.1",
"source": {
"type": "git",
"url": "https://github.com/php-http/promise.git",
- "reference": "44a67cb59f708f826f3bec35f22030b3edb90119"
+ "reference": "fc85b1fba37c169a69a07ef0d5a8075770cc1f83"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-http/promise/zipball/44a67cb59f708f826f3bec35f22030b3edb90119",
- "reference": "44a67cb59f708f826f3bec35f22030b3edb90119",
+ "url": "https://api.github.com/repos/php-http/promise/zipball/fc85b1fba37c169a69a07ef0d5a8075770cc1f83",
+ "reference": "fc85b1fba37c169a69a07ef0d5a8075770cc1f83",
"shasum": ""
},
"require": {
@@ -6032,22 +6214,22 @@
],
"support": {
"issues": "https://github.com/php-http/promise/issues",
- "source": "https://github.com/php-http/promise/tree/1.2.1"
+ "source": "https://github.com/php-http/promise/tree/1.3.1"
},
- "time": "2023-11-08T12:57:08+00:00"
+ "time": "2024-03-15T13:55:21+00:00"
},
{
"name": "phpoffice/phpspreadsheet",
- "version": "4.1.0",
+ "version": "5.1.0",
"source": {
"type": "git",
"url": "https://github.com/PHPOffice/PhpSpreadsheet.git",
- "reference": "6ff18c3a8df3a945492f75ce455d77f7ad55dd5c"
+ "reference": "fd26e45a814e94ae2aad0df757d9d1739c4bf2e0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/6ff18c3a8df3a945492f75ce455d77f7ad55dd5c",
- "reference": "6ff18c3a8df3a945492f75ce455d77f7ad55dd5c",
+ "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/fd26e45a814e94ae2aad0df757d9d1739c4bf2e0",
+ "reference": "fd26e45a814e94ae2aad0df757d9d1739c4bf2e0",
"shasum": ""
},
"require": {
@@ -6080,8 +6262,9 @@
"mitoteam/jpgraph": "^10.3",
"mpdf/mpdf": "^8.1.1",
"phpcompatibility/php-compatibility": "^9.3",
- "phpstan/phpstan": "^1.1",
- "phpstan/phpstan-phpunit": "^1.0",
+ "phpstan/phpstan": "^1.1 || ^2.0",
+ "phpstan/phpstan-deprecation-rules": "^1.0 || ^2.0",
+ "phpstan/phpstan-phpunit": "^1.0 || ^2.0",
"phpunit/phpunit": "^10.5",
"squizlabs/php_codesniffer": "^3.7",
"tecnickcom/tcpdf": "^6.5"
@@ -6137,9 +6320,9 @@
],
"support": {
"issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues",
- "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/4.1.0"
+ "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/5.1.0"
},
- "time": "2025-03-02T06:52:24+00:00"
+ "time": "2025-09-04T05:34:49+00:00"
},
{
"name": "phpoption/phpoption",
@@ -6778,16 +6961,16 @@
},
{
"name": "ramsey/collection",
- "version": "2.0.0",
+ "version": "2.1.1",
"source": {
"type": "git",
"url": "https://github.com/ramsey/collection.git",
- "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5"
+ "reference": "344572933ad0181accbf4ba763e85a0306a8c5e2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ramsey/collection/zipball/a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5",
- "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5",
+ "url": "https://api.github.com/repos/ramsey/collection/zipball/344572933ad0181accbf4ba763e85a0306a8c5e2",
+ "reference": "344572933ad0181accbf4ba763e85a0306a8c5e2",
"shasum": ""
},
"require": {
@@ -6795,25 +6978,22 @@
},
"require-dev": {
"captainhook/plugin-composer": "^5.3",
- "ergebnis/composer-normalize": "^2.28.3",
- "fakerphp/faker": "^1.21",
+ "ergebnis/composer-normalize": "^2.45",
+ "fakerphp/faker": "^1.24",
"hamcrest/hamcrest-php": "^2.0",
- "jangregor/phpstan-prophecy": "^1.0",
- "mockery/mockery": "^1.5",
+ "jangregor/phpstan-prophecy": "^2.1",
+ "mockery/mockery": "^1.6",
"php-parallel-lint/php-console-highlighter": "^1.0",
- "php-parallel-lint/php-parallel-lint": "^1.3",
- "phpcsstandards/phpcsutils": "^1.0.0-rc1",
- "phpspec/prophecy-phpunit": "^2.0",
- "phpstan/extension-installer": "^1.2",
- "phpstan/phpstan": "^1.9",
- "phpstan/phpstan-mockery": "^1.1",
- "phpstan/phpstan-phpunit": "^1.3",
- "phpunit/phpunit": "^9.5",
- "psalm/plugin-mockery": "^1.1",
- "psalm/plugin-phpunit": "^0.18.4",
- "ramsey/coding-standard": "^2.0.3",
- "ramsey/conventional-commits": "^1.3",
- "vimeo/psalm": "^5.4"
+ "php-parallel-lint/php-parallel-lint": "^1.4",
+ "phpspec/prophecy-phpunit": "^2.3",
+ "phpstan/extension-installer": "^1.4",
+ "phpstan/phpstan": "^2.1",
+ "phpstan/phpstan-mockery": "^2.0",
+ "phpstan/phpstan-phpunit": "^2.0",
+ "phpunit/phpunit": "^10.5",
+ "ramsey/coding-standard": "^2.3",
+ "ramsey/conventional-commits": "^1.6",
+ "roave/security-advisories": "dev-latest"
},
"type": "library",
"extra": {
@@ -6851,37 +7031,26 @@
],
"support": {
"issues": "https://github.com/ramsey/collection/issues",
- "source": "https://github.com/ramsey/collection/tree/2.0.0"
+ "source": "https://github.com/ramsey/collection/tree/2.1.1"
},
- "funding": [
- {
- "url": "https://github.com/ramsey",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/ramsey/collection",
- "type": "tidelift"
- }
- ],
- "time": "2022-12-31T21:50:55+00:00"
+ "time": "2025-03-22T05:38:12+00:00"
},
{
"name": "ramsey/uuid",
- "version": "4.7.6",
+ "version": "4.9.1",
"source": {
"type": "git",
"url": "https://github.com/ramsey/uuid.git",
- "reference": "91039bc1faa45ba123c4328958e620d382ec7088"
+ "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ramsey/uuid/zipball/91039bc1faa45ba123c4328958e620d382ec7088",
- "reference": "91039bc1faa45ba123c4328958e620d382ec7088",
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/81f941f6f729b1e3ceea61d9d014f8b6c6800440",
+ "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440",
"shasum": ""
},
"require": {
- "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12",
- "ext-json": "*",
+ "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14",
"php": "^8.0",
"ramsey/collection": "^1.2 || ^2.0"
},
@@ -6889,26 +7058,23 @@
"rhumsaa/uuid": "self.version"
},
"require-dev": {
- "captainhook/captainhook": "^5.10",
+ "captainhook/captainhook": "^5.25",
"captainhook/plugin-composer": "^5.3",
- "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
- "doctrine/annotations": "^1.8",
- "ergebnis/composer-normalize": "^2.15",
- "mockery/mockery": "^1.3",
+ "dealerdirect/phpcodesniffer-composer-installer": "^1.0",
+ "ergebnis/composer-normalize": "^2.47",
+ "mockery/mockery": "^1.6",
"paragonie/random-lib": "^2",
- "php-mock/php-mock": "^2.2",
- "php-mock/php-mock-mockery": "^1.3",
- "php-parallel-lint/php-parallel-lint": "^1.1",
- "phpbench/phpbench": "^1.0",
- "phpstan/extension-installer": "^1.1",
- "phpstan/phpstan": "^1.8",
- "phpstan/phpstan-mockery": "^1.1",
- "phpstan/phpstan-phpunit": "^1.1",
- "phpunit/phpunit": "^8.5 || ^9",
- "ramsey/composer-repl": "^1.4",
- "slevomat/coding-standard": "^8.4",
- "squizlabs/php_codesniffer": "^3.5",
- "vimeo/psalm": "^4.9"
+ "php-mock/php-mock": "^2.6",
+ "php-mock/php-mock-mockery": "^1.5",
+ "php-parallel-lint/php-parallel-lint": "^1.4.0",
+ "phpbench/phpbench": "^1.2.14",
+ "phpstan/extension-installer": "^1.4",
+ "phpstan/phpstan": "^2.1",
+ "phpstan/phpstan-mockery": "^2.0",
+ "phpstan/phpstan-phpunit": "^2.0",
+ "phpunit/phpunit": "^9.6",
+ "slevomat/coding-standard": "^8.18",
+ "squizlabs/php_codesniffer": "^3.13"
},
"suggest": {
"ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.",
@@ -6943,19 +7109,9 @@
],
"support": {
"issues": "https://github.com/ramsey/uuid/issues",
- "source": "https://github.com/ramsey/uuid/tree/4.7.6"
+ "source": "https://github.com/ramsey/uuid/tree/4.9.1"
},
- "funding": [
- {
- "url": "https://github.com/ramsey",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid",
- "type": "tidelift"
- }
- ],
- "time": "2024-04-27T21:32:50+00:00"
+ "time": "2025-09-04T20:59:21+00:00"
},
{
"name": "sentry/sentry",
@@ -7059,16 +7215,16 @@
},
{
"name": "setasign/fpdi",
- "version": "v2.6.3",
+ "version": "v2.6.4",
"source": {
"type": "git",
"url": "https://github.com/Setasign/FPDI.git",
- "reference": "67c31f5e50c93c20579ca9e23035d8c540b51941"
+ "reference": "4b53852fde2734ec6a07e458a085db627c60eada"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Setasign/FPDI/zipball/67c31f5e50c93c20579ca9e23035d8c540b51941",
- "reference": "67c31f5e50c93c20579ca9e23035d8c540b51941",
+ "url": "https://api.github.com/repos/Setasign/FPDI/zipball/4b53852fde2734ec6a07e458a085db627c60eada",
+ "reference": "4b53852fde2734ec6a07e458a085db627c60eada",
"shasum": ""
},
"require": {
@@ -7083,7 +7239,7 @@
"setasign/fpdf": "~1.8.6",
"setasign/tfpdf": "~1.33",
"squizlabs/php_codesniffer": "^3.5",
- "tecnickcom/tcpdf": "^6.2"
+ "tecnickcom/tcpdf": "^6.8"
},
"suggest": {
"setasign/fpdf": "FPDI will extend this class but as it is also possible to use TCPDF or tFPDF as an alternative. There's no fixed dependency configured."
@@ -7119,7 +7275,7 @@
],
"support": {
"issues": "https://github.com/Setasign/FPDI/issues",
- "source": "https://github.com/Setasign/FPDI/tree/v2.6.3"
+ "source": "https://github.com/Setasign/FPDI/tree/v2.6.4"
},
"funding": [
{
@@ -7127,7 +7283,7 @@
"type": "tidelift"
}
],
- "time": "2025-02-05T13:22:35+00:00"
+ "time": "2025-08-05T09:57:14+00:00"
},
{
"name": "skaut/dependent-select-box",
@@ -7449,26 +7605,202 @@
"time": "2022-02-09T15:49:12+00:00"
},
{
- "name": "symfony/console",
- "version": "v5.4.34",
+ "name": "symfony/cache",
+ "version": "v6.4.24",
"source": {
"type": "git",
- "url": "https://github.com/symfony/console.git",
- "reference": "4b4d8cd118484aa604ec519062113dd87abde18c"
+ "url": "https://github.com/symfony/cache.git",
+ "reference": "d038cd3054aeaf1c674022a77048b2ef6376a175"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/4b4d8cd118484aa604ec519062113dd87abde18c",
- "reference": "4b4d8cd118484aa604ec519062113dd87abde18c",
+ "url": "https://api.github.com/repos/symfony/cache/zipball/d038cd3054aeaf1c674022a77048b2ef6376a175",
+ "reference": "d038cd3054aeaf1c674022a77048b2ef6376a175",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php73": "^1.9",
- "symfony/polyfill-php80": "^1.16",
- "symfony/service-contracts": "^1.1|^2|^3",
+ "php": ">=8.1",
+ "psr/cache": "^2.0|^3.0",
+ "psr/log": "^1.1|^2|^3",
+ "symfony/cache-contracts": "^2.5|^3",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/var-exporter": "^6.3.6|^7.0"
+ },
+ "conflict": {
+ "doctrine/dbal": "<2.13.1",
+ "symfony/dependency-injection": "<5.4",
+ "symfony/http-kernel": "<5.4",
+ "symfony/var-dumper": "<5.4"
+ },
+ "provide": {
+ "psr/cache-implementation": "2.0|3.0",
+ "psr/simple-cache-implementation": "1.0|2.0|3.0",
+ "symfony/cache-implementation": "1.1|2.0|3.0"
+ },
+ "require-dev": {
+ "cache/integration-tests": "dev-master",
+ "doctrine/dbal": "^2.13.1|^3|^4",
+ "predis/predis": "^1.1|^2.0",
+ "psr/simple-cache": "^1.0|^2.0|^3.0",
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/filesystem": "^5.4|^6.0|^7.0",
+ "symfony/http-kernel": "^5.4|^6.0|^7.0",
+ "symfony/messenger": "^5.4|^6.0|^7.0",
+ "symfony/var-dumper": "^5.4|^6.0|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Cache\\": ""
+ },
+ "classmap": [
+ "Traits/ValueWrapper.php"
+ ],
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides extended PSR-6, PSR-16 (and tags) implementations",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "caching",
+ "psr6"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/cache/tree/v6.4.24"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2025-07-30T09:32:03+00:00"
+ },
+ {
+ "name": "symfony/cache-contracts",
+ "version": "v3.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/cache-contracts.git",
+ "reference": "5d68a57d66910405e5c0b63d6f0af941e66fc868"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/5d68a57d66910405e5c0b63d6f0af941e66fc868",
+ "reference": "5d68a57d66910405e5c0b63d6f0af941e66fc868",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/cache": "^3.0"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
+ "branch-alias": {
+ "dev-main": "3.6-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Cache\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to caching",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/cache-contracts/tree/v3.6.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2025-03-13T15:25:07+00:00"
+ },
+ {
+ "name": "symfony/console",
+ "version": "v5.4.47",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/console.git",
+ "reference": "c4ba980ca61a9eb18ee6bcc73f28e475852bb1ed"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/console/zipball/c4ba980ca61a9eb18ee6bcc73f28e475852bb1ed",
+ "reference": "c4ba980ca61a9eb18ee6bcc73f28e475852bb1ed",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php73": "^1.9",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/service-contracts": "^1.1|^2|^3",
"symfony/string": "^5.1|^6.0"
},
"conflict": {
@@ -7529,7 +7861,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v5.4.34"
+ "source": "https://github.com/symfony/console/tree/v5.4.47"
},
"funding": [
{
@@ -7545,20 +7877,20 @@
"type": "tidelift"
}
],
- "time": "2023-12-08T13:33:03+00:00"
+ "time": "2024-11-06T11:30:55+00:00"
},
{
"name": "symfony/deprecation-contracts",
- "version": "v3.5.1",
+ "version": "v3.6.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6"
+ "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
- "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62",
+ "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62",
"shasum": ""
},
"require": {
@@ -7571,7 +7903,7 @@
"name": "symfony/contracts"
},
"branch-alias": {
- "dev-main": "3.5-dev"
+ "dev-main": "3.6-dev"
}
},
"autoload": {
@@ -7596,7 +7928,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0"
},
"funding": [
{
@@ -7612,7 +7944,7 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:20:29+00:00"
+ "time": "2024-09-25T14:21:43+00:00"
},
{
"name": "symfony/doctrine-messenger",
@@ -7794,12 +8126,12 @@
},
"type": "library",
"extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
"branch-alias": {
"dev-main": "1.1-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
}
},
"autoload": {
@@ -7852,23 +8184,25 @@
},
{
"name": "symfony/filesystem",
- "version": "v5.4.9",
+ "version": "v7.3.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
- "reference": "36a017fa4cce1eff1b8e8129ff53513abcef05ba"
+ "reference": "edcbb768a186b5c3f25d0643159a787d3e63b7fd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/36a017fa4cce1eff1b8e8129ff53513abcef05ba",
- "reference": "36a017fa4cce1eff1b8e8129ff53513abcef05ba",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/edcbb768a186b5c3f25d0643159a787d3e63b7fd",
+ "reference": "edcbb768a186b5c3f25d0643159a787d3e63b7fd",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
+ "php": ">=8.2",
"symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-mbstring": "~1.8",
- "symfony/polyfill-php80": "^1.16"
+ "symfony/polyfill-mbstring": "~1.8"
+ },
+ "require-dev": {
+ "symfony/process": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -7896,7 +8230,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/filesystem/tree/v5.4.9"
+ "source": "https://github.com/symfony/filesystem/tree/v7.3.2"
},
"funding": [
{
@@ -7907,12 +8241,16 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2022-05-20T13:55:35+00:00"
+ "time": "2025-07-07T08:17:47+00:00"
},
{
"name": "symfony/messenger",
@@ -8073,7 +8411,7 @@
},
{
"name": "symfony/polyfill-ctype",
- "version": "v1.31.0",
+ "version": "v1.33.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
@@ -8132,7 +8470,7 @@
"portable"
],
"support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0"
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0"
},
"funding": [
{
@@ -8143,6 +8481,14 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
@@ -8152,20 +8498,20 @@
},
{
"name": "symfony/polyfill-intl-grapheme",
- "version": "v1.29.0",
+ "version": "v1.33.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f"
+ "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f",
- "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/380872130d3a5dd3ace2f4010d95125fde5d5c70",
+ "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"suggest": {
"ext-intl": "For best performance"
@@ -8173,8 +8519,8 @@
"type": "library",
"extra": {
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -8210,7 +8556,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0"
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.33.0"
},
"funding": [
{
@@ -8221,29 +8567,33 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2024-01-29T20:11:03+00:00"
+ "time": "2025-06-27T09:58:17+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
- "version": "v1.29.0",
+ "version": "v1.33.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "bc45c394692b948b4d383a08d7753968bed9a83d"
+ "reference": "3833d7255cc303546435cb650316bff708a1c75c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d",
- "reference": "bc45c394692b948b4d383a08d7753968bed9a83d",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c",
+ "reference": "3833d7255cc303546435cb650316bff708a1c75c",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"suggest": {
"ext-intl": "For best performance"
@@ -8251,8 +8601,8 @@
"type": "library",
"extra": {
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -8291,7 +8641,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0"
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.33.0"
},
"funding": [
{
@@ -8302,28 +8652,33 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2024-01-29T20:11:03+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.31.0",
+ "version": "v1.33.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341"
+ "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341",
- "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493",
+ "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493",
"shasum": ""
},
"require": {
+ "ext-iconv": "*",
"php": ">=7.2"
},
"provide": {
@@ -8371,7 +8726,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0"
},
"funding": [
{
@@ -8382,46 +8737,43 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2024-09-09T11:45:10+00:00"
+ "time": "2024-12-23T08:48:59+00:00"
},
{
"name": "symfony/polyfill-php72",
- "version": "v1.28.0",
+ "version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php72.git",
- "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179"
+ "reference": "fa2ae56c44f03bed91a39bfc9822e31e7c5c38ce"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/70f4aebd92afca2f865444d30a4d2151c13c3179",
- "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179",
+ "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/fa2ae56c44f03bed91a39bfc9822e31e7c5c38ce",
+ "reference": "fa2ae56c44f03bed91a39bfc9822e31e7c5c38ce",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
- "type": "library",
+ "type": "metapackage",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php72\\": ""
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -8447,7 +8799,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php72/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-php72/tree/v1.31.0"
},
"funding": [
{
@@ -8463,33 +8815,30 @@
"type": "tidelift"
}
],
- "time": "2023-01-26T09:26:14+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-php73",
- "version": "v1.28.0",
+ "version": "v1.33.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php73.git",
- "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5"
+ "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fe2f306d1d9d346a7fee353d0d5012e401e984b5",
- "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5",
+ "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f68c03565dcaaf25a890667542e8bd75fe7e5bb",
+ "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -8526,7 +8875,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php73/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-php73/tree/v1.33.0"
},
"funding": [
{
@@ -8537,25 +8886,29 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2023-01-26T09:26:14+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-php80",
- "version": "v1.31.0",
+ "version": "v1.33.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8"
+ "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
- "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608",
+ "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608",
"shasum": ""
},
"require": {
@@ -8606,7 +8959,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0"
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.33.0"
},
"funding": [
{
@@ -8617,12 +8970,20 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2024-09-09T11:45:10+00:00"
+ "time": "2025-01-02T08:10:11+00:00"
},
{
"name": "symfony/property-access",
@@ -8853,33 +9214,34 @@
},
{
"name": "symfony/service-contracts",
- "version": "v3.4.1",
+ "version": "v3.6.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0"
+ "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/fe07cbc8d837f60caf7018068e350cc5163681a0",
- "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f021b05a130d35510bd6b25fe9053c2a8a15d5d4",
+ "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4",
"shasum": ""
},
"require": {
"php": ">=8.1",
- "psr/container": "^1.1|^2.0"
+ "psr/container": "^1.1|^2.0",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"conflict": {
"ext-psr": "<1.1|>=2"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "3.4-dev"
- },
"thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
+ "branch-alias": {
+ "dev-main": "3.6-dev"
}
},
"autoload": {
@@ -8915,7 +9277,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v3.4.1"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.6.0"
},
"funding": [
{
@@ -8931,7 +9293,7 @@
"type": "tidelift"
}
],
- "time": "2023-12-26T14:02:43+00:00"
+ "time": "2025-04-25T09:37:31+00:00"
},
{
"name": "symfony/stopwatch",
@@ -8997,16 +9359,16 @@
},
{
"name": "symfony/string",
- "version": "v6.4.4",
+ "version": "v6.4.25",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "4e465a95bdc32f49cf4c7f07f751b843bbd6dcd9"
+ "reference": "7cdec7edfaf2cdd9c18901e35bcf9653d6209ff1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/4e465a95bdc32f49cf4c7f07f751b843bbd6dcd9",
- "reference": "4e465a95bdc32f49cf4c7f07f751b843bbd6dcd9",
+ "url": "https://api.github.com/repos/symfony/string/zipball/7cdec7edfaf2cdd9c18901e35bcf9653d6209ff1",
+ "reference": "7cdec7edfaf2cdd9c18901e35bcf9653d6209ff1",
"shasum": ""
},
"require": {
@@ -9063,7 +9425,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v6.4.4"
+ "source": "https://github.com/symfony/string/tree/v6.4.25"
},
"funding": [
{
@@ -9074,55 +9436,125 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2024-02-01T13:16:41+00:00"
+ "time": "2025-08-22T12:33:20+00:00"
},
{
- "name": "thecodingmachine/safe",
- "version": "v2.5.0",
+ "name": "symfony/var-exporter",
+ "version": "v7.3.3",
"source": {
"type": "git",
- "url": "https://github.com/thecodingmachine/safe.git",
- "reference": "3115ecd6b4391662b4931daac4eba6b07a2ac1f0"
+ "url": "https://github.com/symfony/var-exporter.git",
+ "reference": "d4dfcd2a822cbedd7612eb6fbd260e46f87b7137"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/3115ecd6b4391662b4931daac4eba6b07a2ac1f0",
- "reference": "3115ecd6b4391662b4931daac4eba6b07a2ac1f0",
+ "url": "https://api.github.com/repos/symfony/var-exporter/zipball/d4dfcd2a822cbedd7612eb6fbd260e46f87b7137",
+ "reference": "d4dfcd2a822cbedd7612eb6fbd260e46f87b7137",
"shasum": ""
},
"require": {
- "php": "^8.0"
+ "php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"require-dev": {
- "phpstan/phpstan": "^1.5",
- "phpunit/phpunit": "^9.5",
- "squizlabs/php_codesniffer": "^3.2",
- "thecodingmachine/phpstan-strict-rules": "^1.0"
+ "symfony/property-access": "^6.4|^7.0",
+ "symfony/serializer": "^6.4|^7.0",
+ "symfony/var-dumper": "^6.4|^7.0"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.2.x-dev"
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\VarExporter\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
+ ],
+ "description": "Allows exporting any serializable PHP data structure to plain PHP code",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "clone",
+ "construct",
+ "export",
+ "hydrate",
+ "instantiate",
+ "lazy-loading",
+ "proxy",
+ "serialize"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/var-exporter/tree/v7.3.3"
},
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2025-08-18T13:10:53+00:00"
+ },
+ {
+ "name": "thecodingmachine/safe",
+ "version": "v3.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thecodingmachine/safe.git",
+ "reference": "2cdd579eeaa2e78e51c7509b50cc9fb89a956236"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/2cdd579eeaa2e78e51c7509b50cc9fb89a956236",
+ "reference": "2cdd579eeaa2e78e51c7509b50cc9fb89a956236",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1"
+ },
+ "require-dev": {
+ "php-parallel-lint/php-parallel-lint": "^1.4",
+ "phpstan/phpstan": "^2",
+ "phpunit/phpunit": "^10",
+ "squizlabs/php_codesniffer": "^3.2"
+ },
+ "type": "library",
"autoload": {
"files": [
- "deprecated/apc.php",
- "deprecated/array.php",
- "deprecated/datetime.php",
- "deprecated/libevent.php",
- "deprecated/misc.php",
- "deprecated/password.php",
- "deprecated/mssql.php",
- "deprecated/stats.php",
- "deprecated/strings.php",
"lib/special_cases.php",
- "deprecated/mysqli.php",
"generated/apache.php",
"generated/apcu.php",
"generated/array.php",
@@ -9162,6 +9594,7 @@
"generated/mbstring.php",
"generated/misc.php",
"generated/mysql.php",
+ "generated/mysqli.php",
"generated/network.php",
"generated/oci8.php",
"generated/opcache.php",
@@ -9174,6 +9607,7 @@
"generated/ps.php",
"generated/pspell.php",
"generated/readline.php",
+ "generated/rnp.php",
"generated/rpminfo.php",
"generated/rrd.php",
"generated/sem.php",
@@ -9205,7 +9639,6 @@
"lib/DateTime.php",
"lib/DateTimeImmutable.php",
"lib/Exceptions/",
- "deprecated/Exceptions/",
"generated/Exceptions/"
]
},
@@ -9216,9 +9649,23 @@
"description": "PHP core functions that throw exceptions instead of returning FALSE on error",
"support": {
"issues": "https://github.com/thecodingmachine/safe/issues",
- "source": "https://github.com/thecodingmachine/safe/tree/v2.5.0"
+ "source": "https://github.com/thecodingmachine/safe/tree/v3.3.0"
},
- "time": "2023-04-05T11:54:14+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/OskarStark",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/shish",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/staabm",
+ "type": "github"
+ }
+ ],
+ "time": "2025-05-14T06:15:44+00:00"
},
{
"name": "tracy/tracy",
@@ -9386,16 +9833,16 @@
},
{
"name": "vlucas/phpdotenv",
- "version": "v5.6.1",
+ "version": "v5.6.2",
"source": {
"type": "git",
"url": "https://github.com/vlucas/phpdotenv.git",
- "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2"
+ "reference": "24ac4c74f91ee2c193fa1aaa5c249cb0822809af"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/a59a13791077fe3d44f90e7133eb68e7d22eaff2",
- "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2",
+ "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/24ac4c74f91ee2c193fa1aaa5c249cb0822809af",
+ "reference": "24ac4c74f91ee2c193fa1aaa5c249cb0822809af",
"shasum": ""
},
"require": {
@@ -9454,7 +9901,7 @@
],
"support": {
"issues": "https://github.com/vlucas/phpdotenv/issues",
- "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.1"
+ "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.2"
},
"funding": [
{
@@ -9466,7 +9913,7 @@
"type": "tidelift"
}
],
- "time": "2024-07-20T21:52:34+00:00"
+ "time": "2025-04-30T23:37:27+00:00"
},
{
"name": "warhuhn/chronos-doctrine",
@@ -9513,6 +9960,64 @@
"source": "https://github.com/warhuhn/chronos-php"
},
"time": "2023-11-19T23:17:49+00:00"
+ },
+ {
+ "name": "webmozart/assert",
+ "version": "1.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/webmozarts/assert.git",
+ "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991",
+ "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991",
+ "shasum": ""
+ },
+ "require": {
+ "ext-ctype": "*",
+ "php": "^7.2 || ^8.0"
+ },
+ "conflict": {
+ "phpstan/phpstan": "<0.12.20",
+ "vimeo/psalm": "<4.6.1 || 4.6.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5.13"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.10-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Webmozart\\Assert\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Assertions to validate method input/output with nice error messages.",
+ "keywords": [
+ "assert",
+ "check",
+ "validate"
+ ],
+ "support": {
+ "issues": "https://github.com/webmozarts/assert/issues",
+ "source": "https://github.com/webmozarts/assert/tree/1.11.0"
+ },
+ "time": "2022-06-03T18:03:27+00:00"
}
],
"packages-dev": [
@@ -10249,22 +10754,22 @@
},
{
"name": "doctrine/coding-standard",
- "version": "12.0.0",
+ "version": "13.0.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/coding-standard.git",
- "reference": "1b2b7dc58c68833af481fb9325c25abd40681c79"
+ "reference": "0affd62169186f32de725ca612e6129e81186a21"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/coding-standard/zipball/1b2b7dc58c68833af481fb9325c25abd40681c79",
- "reference": "1b2b7dc58c68833af481fb9325c25abd40681c79",
+ "url": "https://api.github.com/repos/doctrine/coding-standard/zipball/0affd62169186f32de725ca612e6129e81186a21",
+ "reference": "0affd62169186f32de725ca612e6129e81186a21",
"shasum": ""
},
"require": {
"dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.0.0",
- "php": "^7.2 || ^8.0",
- "slevomat/coding-standard": "^8.11",
+ "php": "^7.4 || ^8.0",
+ "slevomat/coding-standard": "^8.16",
"squizlabs/php_codesniffer": "^3.7"
},
"type": "phpcodesniffer-standard",
@@ -10299,9 +10804,9 @@
],
"support": {
"issues": "https://github.com/doctrine/coding-standard/issues",
- "source": "https://github.com/doctrine/coding-standard/tree/12.0.0"
+ "source": "https://github.com/doctrine/coding-standard/tree/13.0.1"
},
- "time": "2023-04-24T17:43:28+00:00"
+ "time": "2025-05-14T10:54:19+00:00"
},
{
"name": "hamcrest/hamcrest-php",
@@ -10641,118 +11146,6 @@
},
"time": "2022-02-21T01:04:05+00:00"
},
- {
- "name": "phing/phing",
- "version": "2.17.4",
- "source": {
- "type": "git",
- "url": "https://github.com/phingofficial/phing.git",
- "reference": "9f3bc8c72e65452686dcf64497e02a082f138908"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phingofficial/phing/zipball/9f3bc8c72e65452686dcf64497e02a082f138908",
- "reference": "9f3bc8c72e65452686dcf64497e02a082f138908",
- "shasum": ""
- },
- "require": {
- "php": ">=5.2.0"
- },
- "require-dev": {
- "ext-pdo_sqlite": "*",
- "mikey179/vfsstream": "^1.6",
- "pdepend/pdepend": "2.x",
- "pear/archive_tar": "1.4.x",
- "pear/http_request2": "dev-trunk",
- "pear/net_growl": "dev-trunk",
- "pear/pear-core-minimal": "1.10.1",
- "pear/versioncontrol_git": "@dev",
- "pear/versioncontrol_svn": "~0.5",
- "phpdocumentor/phpdocumentor": "2.x",
- "phploc/phploc": "~2.0.6",
- "phpmd/phpmd": "~2.2",
- "phpunit/phpunit": ">=3.7",
- "sebastian/git": "~1.0",
- "sebastian/phpcpd": "2.x",
- "siad007/versioncontrol_hg": "^1.0",
- "simpletest/simpletest": "^1.1",
- "squizlabs/php_codesniffer": "~2.2",
- "symfony/yaml": "^2.8 || ^3.1 || ^4.0"
- },
- "suggest": {
- "pdepend/pdepend": "PHP version of JDepend",
- "pear/archive_tar": "Tar file management class",
- "pear/versioncontrol_git": "A library that provides OO interface to handle Git repository",
- "pear/versioncontrol_svn": "A simple OO-style interface for Subversion, the free/open-source version control system",
- "phpdocumentor/phpdocumentor": "Documentation Generator for PHP",
- "phploc/phploc": "A tool for quickly measuring the size of a PHP project",
- "phpmd/phpmd": "PHP version of PMD tool",
- "phpunit/php-code-coverage": "Library that provides collection, processing, and rendering functionality for PHP code coverage information",
- "phpunit/phpunit": "The PHP Unit Testing Framework",
- "sebastian/phpcpd": "Copy/Paste Detector (CPD) for PHP code",
- "siad007/versioncontrol_hg": "A library for interfacing with Mercurial repositories.",
- "tedivm/jshrink": "Javascript Minifier built in PHP"
- },
- "bin": [
- "bin/phing"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.16.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "classes/phing/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "include-path": [
- "classes"
- ],
- "license": [
- "LGPL-3.0-only"
- ],
- "authors": [
- {
- "name": "Michiel Rook",
- "email": "mrook@php.net"
- },
- {
- "name": "Phing Community",
- "homepage": "https://www.phing.info/trac/wiki/Development/Contributors"
- }
- ],
- "description": "PHing Is Not GNU make; it's a PHP project build system or build tool based on Apache Ant.",
- "homepage": "https://www.phing.info/",
- "keywords": [
- "build",
- "phing",
- "task",
- "tool"
- ],
- "support": {
- "irc": "irc://irc.freenode.net/phing",
- "issues": "https://www.phing.info/trac/report",
- "source": "https://github.com/phingofficial/phing/tree/2.17.4"
- },
- "funding": [
- {
- "url": "https://github.com/mrook",
- "type": "github"
- },
- {
- "url": "https://github.com/siad007",
- "type": "github"
- },
- {
- "url": "https://www.patreon.com/michielrook",
- "type": "patreon"
- }
- ],
- "time": "2022-07-08T09:07:07+00:00"
- },
{
"name": "php-vcr/php-vcr",
"version": "1.4.5",
@@ -10918,28 +11311,30 @@
},
{
"name": "phpstan/phpdoc-parser",
- "version": "1.20.4",
+ "version": "2.1.0",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpdoc-parser.git",
- "reference": "7d568c87a9df9c5f7e8b5f075fc469aa8cb0a4cd"
+ "reference": "9b30d6fd026b2c132b3985ce6b23bec09ab3aa68"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/7d568c87a9df9c5f7e8b5f075fc469aa8cb0a4cd",
- "reference": "7d568c87a9df9c5f7e8b5f075fc469aa8cb0a4cd",
+ "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/9b30d6fd026b2c132b3985ce6b23bec09ab3aa68",
+ "reference": "9b30d6fd026b2c132b3985ce6b23bec09ab3aa68",
"shasum": ""
},
"require": {
- "php": "^7.2 || ^8.0"
+ "php": "^7.4 || ^8.0"
},
"require-dev": {
+ "doctrine/annotations": "^2.0",
+ "nikic/php-parser": "^5.3.0",
"php-parallel-lint/php-parallel-lint": "^1.2",
"phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^1.5",
- "phpstan/phpstan-phpunit": "^1.1",
- "phpstan/phpstan-strict-rules": "^1.0",
- "phpunit/phpunit": "^9.5",
+ "phpstan/phpstan": "^2.0",
+ "phpstan/phpstan-phpunit": "^2.0",
+ "phpstan/phpstan-strict-rules": "^2.0",
+ "phpunit/phpunit": "^9.6",
"symfony/process": "^5.2"
},
"type": "library",
@@ -10957,9 +11352,9 @@
"description": "PHPDoc parser with support for nullable, intersection and generic types",
"support": {
"issues": "https://github.com/phpstan/phpdoc-parser/issues",
- "source": "https://github.com/phpstan/phpdoc-parser/tree/1.20.4"
+ "source": "https://github.com/phpstan/phpdoc-parser/tree/2.1.0"
},
- "time": "2023-05-02T09:19:37+00:00"
+ "time": "2025-02-19T13:28:12+00:00"
},
{
"name": "phpstan/phpstan",
@@ -12970,32 +13365,32 @@
},
{
"name": "slevomat/coding-standard",
- "version": "8.11.1",
+ "version": "8.18.0",
"source": {
"type": "git",
"url": "https://github.com/slevomat/coding-standard.git",
- "reference": "af87461316b257e46e15bb041dca6fca3796d822"
+ "reference": "f3b23cb9b26301b8c3c7bb03035a1bee23974593"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/af87461316b257e46e15bb041dca6fca3796d822",
- "reference": "af87461316b257e46e15bb041dca6fca3796d822",
+ "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/f3b23cb9b26301b8c3c7bb03035a1bee23974593",
+ "reference": "f3b23cb9b26301b8c3c7bb03035a1bee23974593",
"shasum": ""
},
"require": {
"dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.0",
- "php": "^7.2 || ^8.0",
- "phpstan/phpdoc-parser": ">=1.20.0 <1.21.0",
- "squizlabs/php_codesniffer": "^3.7.1"
+ "php": "^7.4 || ^8.0",
+ "phpstan/phpdoc-parser": "^2.1.0",
+ "squizlabs/php_codesniffer": "^3.12.2"
},
"require-dev": {
- "phing/phing": "2.17.4",
- "php-parallel-lint/php-parallel-lint": "1.3.2",
- "phpstan/phpstan": "1.10.14",
- "phpstan/phpstan-deprecation-rules": "1.1.3",
- "phpstan/phpstan-phpunit": "1.3.11",
- "phpstan/phpstan-strict-rules": "1.5.1",
- "phpunit/phpunit": "7.5.20|8.5.21|9.6.6|10.1.1"
+ "phing/phing": "3.0.1",
+ "php-parallel-lint/php-parallel-lint": "1.4.0",
+ "phpstan/phpstan": "2.1.13",
+ "phpstan/phpstan-deprecation-rules": "2.0.2",
+ "phpstan/phpstan-phpunit": "2.0.6",
+ "phpstan/phpstan-strict-rules": "2.0.4",
+ "phpunit/phpunit": "9.6.8|10.5.45|11.4.4|11.5.17|12.1.3"
},
"type": "phpcodesniffer-standard",
"extra": {
@@ -13019,7 +13414,7 @@
],
"support": {
"issues": "https://github.com/slevomat/coding-standard/issues",
- "source": "https://github.com/slevomat/coding-standard/tree/8.11.1"
+ "source": "https://github.com/slevomat/coding-standard/tree/8.18.0"
},
"funding": [
{
@@ -13031,20 +13426,20 @@
"type": "tidelift"
}
],
- "time": "2023-04-24T08:19:01+00:00"
+ "time": "2025-05-01T09:40:50+00:00"
},
{
"name": "squizlabs/php_codesniffer",
- "version": "3.10.3",
+ "version": "3.13.4",
"source": {
"type": "git",
"url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git",
- "reference": "62d32998e820bddc40f99f8251958aed187a5c9c"
+ "reference": "ad545ea9c1b7d270ce0fc9cbfb884161cd706119"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/62d32998e820bddc40f99f8251958aed187a5c9c",
- "reference": "62d32998e820bddc40f99f8251958aed187a5c9c",
+ "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/ad545ea9c1b7d270ce0fc9cbfb884161cd706119",
+ "reference": "ad545ea9c1b7d270ce0fc9cbfb884161cd706119",
"shasum": ""
},
"require": {
@@ -13109,9 +13504,13 @@
{
"url": "https://opencollective.com/php_codesniffer",
"type": "open_collective"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/phpcsstandards",
+ "type": "thanks_dev"
}
],
- "time": "2024-09-18T10:38:58+00:00"
+ "time": "2025-09-05T05:47:09+00:00"
},
{
"name": "symfony/browser-kit",
@@ -13391,21 +13790,20 @@
},
{
"name": "symfony/process",
- "version": "v5.4.11",
+ "version": "v6.4.25",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "6e75fe6874cbc7e4773d049616ab450eff537bf1"
+ "reference": "6be2f0c9ab3428587c07bed03aa9e3d1b823c6c8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/6e75fe6874cbc7e4773d049616ab450eff537bf1",
- "reference": "6e75fe6874cbc7e4773d049616ab450eff537bf1",
+ "url": "https://api.github.com/repos/symfony/process/zipball/6be2f0c9ab3428587c07bed03aa9e3d1b823c6c8",
+ "reference": "6be2f0c9ab3428587c07bed03aa9e3d1b823c6c8",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1"
},
"type": "library",
"autoload": {
@@ -13433,7 +13831,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v5.4.11"
+ "source": "https://github.com/symfony/process/tree/v6.4.25"
},
"funding": [
{
@@ -13444,12 +13842,16 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2022-06-27T16:58:25+00:00"
+ "time": "2025-08-14T06:23:17+00:00"
},
{
"name": "symfony/yaml",
@@ -13576,19 +13978,19 @@
"aliases": [],
"minimum-stability": "dev",
"stability-flags": {
+ "roave/security-advisories": 20,
"skaut/dependent-select-box": 20,
- "skaut/psr6-caching": 20,
- "roave/security-advisories": 20
+ "skaut/psr6-caching": 20
},
"prefer-stable": true,
"prefer-lowest": false,
"platform": {
- "php": ">= 8.1",
+ "php": ">= 8.2",
"ext-iconv": "*",
"ext-simplexml": "*"
},
"platform-dev": {
"ext-pdo": "*"
},
- "plugin-api-version": "2.3.0"
+ "plugin-api-version": "2.6.0"
}
diff --git a/deploy.php b/deploy.php
new file mode 100644
index 000000000..3814ccc7e
--- /dev/null
+++ b/deploy.php
@@ -0,0 +1,176 @@
+ get('build_hash'));
+set('web_root_symlink', '{{deploy_path}}/www');
+
+// === SSH ===
+set('ssh_multiplexing', false);
+//set('bin/ssh', 'ssh -o IdentitiesOnly=yes -o PreferredAuthentications=publickey -o PubkeyAuthentication=yes -o StrictHostKeyChecking=yes -o UserKnownHostsFile=/root/.ssh/known_hosts');
+
+// === Shared / writable dirs ===
+set('shared_dirs', []);
+
+// === Rsync ===
+set('rsync_src', __DIR__ . '/');
+set('rsync_dest', '{{release_path}}');
+set('rsync', static function () {
+ $stage = currentHost()->get('stage');
+
+ return [
+ // běžné exclude vzory – BEZ "./"
+ 'exclude' => [
+ '.git',
+ '.github',
+ '.idea',
+ '.docs',
+ '/tests/',
+ '/temp/',
+ 'node_modules/',
+ 'code-quality/',
+ 'workdir.tar.gz',
+ '/log/',
+ '/uploads/',
+ ],
+
+ // řešení priority: nejdřív explicitně povol konkrétní soubor, pak zakaž wildcard
+ 'filter' => [
+ '+ app/config/config.' . $stage . '.local.neon',
+ '- app/config/config.*.local.neon',
+ ],
+
+ // ostatní volby
+ 'exclude-file' => false,
+ 'include' => [],
+ 'include-file' => false,
+ 'filter-file' => false,
+ 'filter-perdir' => false,
+ 'flags' => 'rz',
+ 'options' => ['delete'],
+ 'timeout' => 180,
+ ];
+});
+
+
+
+task('build:config', function () {
+ $env = getenv('ENVIRONMENT') ?: 'local';
+ $src = sprintf('app/config/config.%s.local.neon', $env);
+ $dest = 'app/config/config.local.neon';
+
+ if (!file_exists($src)) {
+ throw new \RuntimeException("Missing template: $src");
+ }
+
+ $content = file_get_contents($src);
+
+ // nahrazení tokenů __TOKEN__
+ $replacements = [
+ '__CONFIG_DATABASE_PASSWORD__' => getenv('CONFIG_DATABASE_PASSWORD') ?: '',
+ '__CONFIG_SENTRY_DSN__' => getenv('CONFIG_SENTRY_DSN') ?: '',
+ '__CONFIG_APPLICATION_ID__' => getenv('CONFIG_APPLICATION_ID') ?: '',
+ ];
+ $content = strtr($content, $replacements);
+
+ file_put_contents($dest, $content);
+
+ writeln("
Config generated → $dest");
+})->desc('Generate local config.local.neon');
+
+
+// --- úkol: vytvoř kořenové sdílené složky a symlinky v release ---
+desc('Symlink root-level shared folders (log, uploads) into the release and update /www');
+task('custom:shared_symlinks', function () {
+ // zajisti existenci kořenových složek
+ run('mkdir -p {{deploy_path}}/log {{deploy_path}}/uploads');
+
+ // ukliď v release, ať ln nepadá, a vytvoř symlinky jako ve skriptu
+ run('rm -rf {{release_path}}/log {{release_path}}/uploads');
+ run('ln -s {{deploy_path}}/log {{release_path}}/log || true');
+ run('ln -s {{deploy_path}}/uploads {{release_path}}/uploads || true');
+
+ // symlink web rootu mimo releases (idempotentně, přepíše existující)
+ run('ln -sfn {{release_path}}/www {{web_root_symlink}}');
+});
+
+
+// === Helper pro definici hostů z env ===
+function addEnvHost(string $name, array $defaults): void {
+ $prefix = strtoupper($name);
+
+ $hostname = getenv("HOST") ?: $defaults['host'];
+ $user = getenv("SSH_USERNAME") ?: $defaults['user'];
+ $port = (int) getenv("PORT") ?: $defaults['port'];
+ $deployPath = getenv("ROOT_DIR") ?: $defaults['path'];
+
+ host($name)
+ ->setSshArguments(['-o UserKnownHostsFile=/dev/null', '-o StrictHostKeyChecking=no'])
+ ->setHostname($hostname)
+ ->set('remote_user', $user)
+ ->setPort($port)
+ ->set('deploy_path', $deployPath)
+ ->set('bin/php', '/usr/bin/php8.3');
+}
+
+// === Definice prostředí ===
+$defaults = [
+ 'host' => 'www.skauting.cz',
+ 'user' => 'vu011961',
+ 'port' => 11961,
+ 'path' => '/home/vu011961',
+];
+
+addEnvHost('beta', $defaults);
+addEnvHost('test', $defaults);
+addEnvHost('production', $defaults);
+
+// === App příkazy ===
+desc('Generate Doctrine proxies (remote)');
+task('app:proxies', function () {
+ run('cd {{release_path}} && {{bin/php}} bin/console orm:generate-proxies');
+});
+
+desc('Run DB migrations (remote)');
+task('app:migrate', function () {
+ run('cd {{release_path}} && {{bin/php}} bin/console migrations:migrate --no-interaction');
+});
+
+desc('Run DB migrations (remote)');
+task('deploy:ssh_warmup', function () {
+ $h = currentHost()->connectionString();
+ runLocally("ssh -p 28 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $h echo");
+});
+
+
+
+
+// === Deploy pipeline ===
+desc('Deploy via tar');
+task('deploy', [
+ // 'deploy:ssh_warmup',
+ 'deploy:info',
+ 'deploy:setup',
+ 'build:config',
+ 'deploy:lock',
+ 'deploy:release',
+ 'rsync',
+ 'custom:shared_symlinks',
+ 'app:proxies',
+ //'app:migrate',
+ 'deploy:publish'
+]);
+
+after('deploy:failed', 'deploy:unlock');
diff --git a/docker/containers/adminer/plugins/dark-switcher.php b/docker/containers/adminer/plugins/dark-switcher.php
new file mode 100644
index 000000000..c886c6ad5
--- /dev/null
+++ b/docker/containers/adminer/plugins/dark-switcher.php
@@ -0,0 +1,57 @@
+
+
+ ☀"
+ .Adminer\script("adminerDarkSet(); qsl('big').onclick = adminerDarkSwitch;")."\n"
+ ;
+ }
+
+ public function screenshot()
+ {
+ return 'https://www.adminer.org/static/plugins/dark-switcher.gif';
+ }
+
+ protected $translations = [
+ 'cs' => ['' => 'Dovoluje přepínání světlého a tmavého vzhledu'],
+ 'de' => ['' => 'Umschalten zwischen hellem und dunklem Design erlauben'],
+ 'ja' => ['' => 'ダークモードへの切替え'],
+ 'pl' => ['' => 'Zezwalaj na przełączanie trybu jasnego i ciemnego'],
+ ];
+}
diff --git a/docker/containers/adminer/plugins/import-directory.php b/docker/containers/adminer/plugins/import-directory.php
index f57b90913..146ef578e 100644
--- a/docker/containers/adminer/plugins/import-directory.php
+++ b/docker/containers/adminer/plugins/import-directory.php
@@ -1,13 +1,14 @@
username = getenv('ADMINER_USERNAME') ?: null;
$this->password = getenv('ADMINER_PASSWORD') ?: '';
}
- /** @return array */
- public function credentials(): array
+ /**
+ * @return array
+ */
+ public function credentials()
{
- $inputUsername = $_GET['username'];
+ $server = $_GET['server'] ?? 'localhost';
+ $inputUsername = $_GET['username'] ?? '';
if ($this->isPasswordlessUser($inputUsername)) {
- return [SERVER, $inputUsername, $this->password];
+ return [$server, $inputUsername, $this->password];
}
- return [SERVER, $inputUsername, get_password()];
+ $inputPassword = $_GET['password'] ?? '';
+
+ return [$server, $inputUsername, $inputPassword];
}
- public function login(string $username, string $password): bool
+ /**
+ * @param string $username
+ * @param string $password
+ * @return bool
+ */
+ public function login($username, $password)
{
if ($this->isPasswordlessUser($username)) {
return true;
diff --git a/docker/containers/adminer/plugins/readable-dates.php b/docker/containers/adminer/plugins/readable-dates.php
index ca1656caa..abfda7c09 100644
--- a/docker/containers/adminer/plugins/readable-dates.php
+++ b/docker/containers/adminer/plugins/readable-dates.php
@@ -1,11 +1,12 @@
prepend);
+ echo Adminer\script($this->prepend);
}
}
diff --git a/docker/containers/deploy/Dockerfile b/docker/containers/deploy/Dockerfile
new file mode 100644
index 000000000..c3abefd0e
--- /dev/null
+++ b/docker/containers/deploy/Dockerfile
@@ -0,0 +1,7 @@
+FROM php:8.2-cli
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ ca-certificates curl git openssh-client rsync tar gzip \
+ && rm -rf /var/lib/apt/lists/*
+# optional: přidat dep do image
+RUN curl -fsSL https://deployer.org/releases/v7.5.12/deployer.phar -o /usr/local/bin/dep \
+ && chmod +x /usr/local/bin/dep
\ No newline at end of file
diff --git a/docker/containers/php/Dockerfile b/docker/containers/php/Dockerfile
index e24e2b064..7f243e638 100644
--- a/docker/containers/php/Dockerfile
+++ b/docker/containers/php/Dockerfile
@@ -1,4 +1,4 @@
-FROM thecodingmachine/php:8.1-v4-fpm-node20
+FROM thecodingmachine/php:8.2-v4-fpm-node20
USER root
USER docker
diff --git a/docker/containers/php/docker.conf b/docker/containers/php/docker.conf
new file mode 100644
index 000000000..21fc1e762
--- /dev/null
+++ b/docker/containers/php/docker.conf
@@ -0,0 +1,19 @@
+[global]
+daemonize = no
+error_log = /proc/self/fd/2
+
+[docker]
+user = docker
+group = docker
+listen = 9000
+
+access.log = /proc/self/fd/2
+catch_workers_output = yes
+decorate_workers_output = no
+
+pm = dynamic
+pm.max_children = 20
+pm.start_servers = 2
+pm.min_spare_servers = 2
+pm.max_spare_servers = 5
+clear_env = no
\ No newline at end of file
diff --git a/docker/docker-compose.ci.yml b/docker/docker-compose.ci.yml
new file mode 100644
index 000000000..113747188
--- /dev/null
+++ b/docker/docker-compose.ci.yml
@@ -0,0 +1,9 @@
+services:
+ php:
+ container_name: "${COMPOSE_PROJECT_NAME}-app"
+ mysql-test:
+ container_name: "${COMPOSE_PROJECT_NAME}-mysql-test"
+ selenium:
+ container_name: "${COMPOSE_PROJECT_NAME}-selenium"
+ nginx:
+ container_name: "${COMPOSE_PROJECT_NAME}-nginx"
diff --git a/docker/docker-compose.local.yml b/docker/docker-compose.local.yml
new file mode 100644
index 000000000..a91dfdfb9
--- /dev/null
+++ b/docker/docker-compose.local.yml
@@ -0,0 +1,11 @@
+services:
+ php:
+ container_name: hskauting.app #Backward Compatibility
+ php-test:
+ container_name: hskauting.app-test
+ mysql:
+ container_name: hskauting.mysql #Backward Compatibility
+ mysql-test:
+ container_name: hskauting.mysql-test #Backward Compatibility
+ selenium:
+ container_name: hskauting.chrome
\ No newline at end of file
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index 2f2c75ddb..1bcfc1ebe 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -18,8 +18,9 @@ x-php-base:
- traefik
volumes:
- ../:/app
- - ./containers/php/ini/php.ini:/etc/php/8.1/fpm/conf.d/php.ini
- - ./containers/php/ini/php.ini:/etc/php/8.1/cli/conf.d/php.ini
+ - ./containers/php/ini/php.ini:/etc/php/8.2/fpm/conf.d/php.ini
+ - ./containers/php/ini/php.ini:/etc/php/8.2/cli/conf.d/php.ini
+# - ./containers/php/docker.conf:/etc/php/8.2/fpm/pool.d/docker.conf
x-mysql-base:
&mysql-base
@@ -53,7 +54,6 @@ services:
php:
<<: *php-base
- container_name: hskauting.app #Backward Compatibility
env_file:
- containers/php/ini/image.ini
- ./../.env.local
@@ -76,7 +76,6 @@ services:
php-test:
<<: *php-base
hostname: php-test.localhost
- container_name: hskauting.app-test
depends_on:
- mysql-test
env_file:
@@ -105,7 +104,6 @@ services:
mysql:
<<: *mysql-base
- container_name: hskauting.mysql #Backward Compatibility
ports:
- "3306:3306"
hostname: mysql.localhost
@@ -114,7 +112,6 @@ services:
- ./containers/mysql/my.cnf:/etc/mysql/conf.d/my.cnf
mysql-test:
- container_name: hskauting.mysql-test #Backward Compatibility
<<: *mysql-base
hostname: mysql-test.localhost
volumes:
@@ -122,7 +119,6 @@ services:
- ./containers/mysql-test/my.cnf:/etc/mysql/conf.d/my.cnf
selenium:
- container_name: hskauting.chrome
hostname: selenium.localhost
image: selenium/standalone-chrome
shm_size: 2g
@@ -130,6 +126,13 @@ services:
SE_VNC_NO_PASSWORD: 1
SCREEN_WIDTH: 1920
SCREEN_HEIGHT: 1080
+ depends_on:
+ php-test:
+ condition: service_started
+ nginx:
+ condition: service_started
+ mysql-test:
+ condition: service_started
networks:
- traefik
labels:
@@ -139,11 +142,12 @@ services:
traefik.http.services.selenium.loadbalancer.server.port: 7900
adminer:
- image: adminer:4.8.1
+ image: adminer:5.4.0
volumes:
- ./containers/adminer/plugins/import-directory.php:/var/www/html/plugins/import-directory.php
- ./containers/adminer/plugins/login-password-less.php:/var/www/html/plugins/login-password-less.php
- ./containers/adminer/plugins/readable-dates.php:/var/www/html/plugins/readable-dates.php
+ - ./containers/adminer/plugins/readable-dates.php:/var/www/html/plugins/dark-switcher.php
- ./containers/adminer/import:/var/www/html/import
environment:
ADMINER_PLUGINS: import-directory readable-dates
diff --git a/frontend/app.scss b/frontend/app.scss
index df7842d7c..d53cb1401 100644
--- a/frontend/app.scss
+++ b/frontend/app.scss
@@ -2,6 +2,9 @@
@import "scss/pikaday";
@import "~nprogress/nprogress";
@import "scss/modals";
+@import "scss/landing";
+@import "scss/dashboard";
+@import "scss/fonts";
.btn-light {
@include button-variant($light, darken($light, 30%));
@@ -58,6 +61,9 @@ table.table a:hover {
border-bottom: 2px solid $primary;
}
}
+ .nav-item a i {
+ margin-right: 0.5rem;
+ }
}
.bg-posily {
@@ -88,6 +94,11 @@ table.table a:hover {
background-color: #000000;
}
+.visually-disabled {
+ opacity: 0.65;
+ cursor: not-allowed;
+}
+
:root[data-bs-theme="dark"] {
.bg-posily {
--bs-bg-opacity: 0.2;
diff --git a/frontend/app.ts b/frontend/app.ts
index cc81b9cf8..afd4337c0 100644
--- a/frontend/app.ts
+++ b/frontend/app.ts
@@ -7,6 +7,8 @@ import './ts/checkAll';
import initializeAjax from './ts/ajax';
import './app.scss';
+import { HelpPanelModule } from './modules/HelpPanelModule';
+
// Use czech language for dates
moment.locale('cs');
@@ -15,5 +17,11 @@ document.addEventListener('DOMContentLoaded', () => {
new DarkModeToggle('darkModeToggle');
new LogoutTimer('timer', 'timer-minutes');
dom.watch();
-});
+ // Naše nová inicializace
+ if (document.getElementById('toggleHelpButton')) {
+ // Pokud tlačítko existuje, modul se inicializuje.
+ const helpPanel = new HelpPanelModule();
+ helpPanel.initialize();
+ }
+});
\ No newline at end of file
diff --git a/frontend/icons.ts b/frontend/icons.ts
index 7813532e8..bea40a2a1 100644
--- a/frontend/icons.ts
+++ b/frontend/icons.ts
@@ -63,6 +63,17 @@ library.add(
fas.faThList,
fas.faEllipsisV,
fas.faUserGraduate,
+ fas.faPaperPlane,
+ fas.faPenRuler,
+ fas.faBell,
+ fas.faTrashCan,
+ fas.faBoxArchive,
+ fas.faFileInvoiceDollar,
+ fas.faCalendarCheck,
+ fas.faGraduationCap,
+ fas.faRoad,
+ fas.faPeopleGroup,
+ fas.faCoins,
// Regular icons
far.faCalendar,
@@ -84,6 +95,10 @@ library.add(
far.faUser,
far.faQuestionCircle,
far.faArrowAltCircleLeft,
+ far.faComment,
+ far.faPaperPlane,
+ far.faBell,
+ far.faMoneyBill1,
// Brands
fab.faGithub,
diff --git a/frontend/modules/HelpPanelModule.ts b/frontend/modules/HelpPanelModule.ts
new file mode 100644
index 000000000..410989eaa
--- /dev/null
+++ b/frontend/modules/HelpPanelModule.ts
@@ -0,0 +1,54 @@
+export class HelpPanelModule {
+ // Privátní vlastnosti pro uložení referencí na DOM prvky.
+ // Budou nastaveny v konstruktoru.
+ private readonly toggleHelpButton: HTMLButtonElement | null;
+ private readonly leftPanel: HTMLDivElement | null;
+ private readonly rightPanel: HTMLDivElement | null;
+
+ /**
+ * Konstruktor vyhledá všechny potřebné prvky na stránce a uloží si je.
+ */
+ constructor() {
+ this.toggleHelpButton = document.getElementById('toggleHelpButton') as HTMLButtonElement;
+ this.leftPanel = document.getElementById('leftPanel') as HTMLDivElement;
+ this.rightPanel = document.getElementById('rightPanel') as HTMLDivElement;
+ }
+
+ /**
+ * Inicializuje funkcionalitu modulu.
+ * Zkontroluje, zda byly všechny prvky nalezeny, a připojí event listener.
+ */
+ public initialize(): void {
+ // Bezpečnostní kontrola, zda všechny prvky existují.
+ if (!this.toggleHelpButton || !this.leftPanel || !this.rightPanel) {
+ console.error('HelpPanelModule: Nepodařilo se najít všechny potřebné prvky (toggleHelpButton, leftPanel, rightPanel).');
+ return;
+ }
+
+ // Přidá posluchač události na kliknutí, který volá naši privátní metodu.
+ // Použití arrow funkce `() => ...` zajistí správný kontext `this`.
+ this.toggleHelpButton.addEventListener('click', () => this.toggleVisibility());
+ }
+
+ /**
+ * Privátní metoda, která se stará o samotnou logiku skrytí/zobrazení panelů.
+ */
+ private toggleVisibility(): void {
+ // Tato kontrola je zde pro typovou jistotu TypeScriptu, aby věděl,
+ // že v této metodě nepracujeme s `null` hodnotami.
+ if (!this.rightPanel || !this.leftPanel || !this.toggleHelpButton) {
+ return;
+ }
+
+ // Přepne viditelnost pravého panelu.
+ this.rightPanel.classList.toggle('d-none');
+
+ // Přepne šířku levého panelu.
+ this.leftPanel.classList.toggle('col-sm-6');
+ this.leftPanel.classList.toggle('col-sm-12');
+
+ // Aktualizuje text na tlačítku.
+ const isHidden = this.rightPanel.classList.contains('d-none');
+ this.toggleHelpButton.textContent = isHidden ? 'Zobrazit nápovědu' : 'Skrýt nápovědu';
+ }
+}
\ No newline at end of file
diff --git a/frontend/scss/dashboard.scss b/frontend/scss/dashboard.scss
new file mode 100644
index 000000000..6c14a673d
--- /dev/null
+++ b/frontend/scss/dashboard.scss
@@ -0,0 +1,183 @@
+/* Základ + odsazení od fixního headeru */
+.dashboard {
+ --tile-radius: 16px;
+ --tile-gap: 20px;
+ --tile-pad: 16px;
+ --tile-icon-size: 28px;
+ --top-gap: clamp(16px, 3vw, 40px);
+
+ background: #f9f6ef;
+ color: #2d4739;
+ font-family: Arial, sans-serif;
+ padding-top: calc(var(--header-h, 0px) + var(--top-gap));
+ padding-bottom: 80px;
+}
+
+/* GRID */
+.dashboard .tiles {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(333px, 1fr));
+ gap: var(--tile-gap);
+ padding: 20px 0 40px;
+}
+
+/* TILE */
+.dashboard .tile {
+ background: #fff;
+ color: inherit;
+ text-decoration: none;
+ border-radius: var(--tile-radius);
+ box-shadow: 0 15px 35px rgba(229, 213, 174, .3);
+ padding: var(--tile-pad) calc(var(--tile-pad) + 4px);
+ transition: transform .15s ease, box-shadow .2s ease, background-color .2s ease;
+ border: 1px solid rgba(0,0,0,.04);
+ min-height: 160px;
+}
+.dashboard .tile:hover {
+ transform: translateY(-3px);
+ box-shadow: 0 20px 40px rgba(229, 213, 174, .36);
+}
+
+/* HLAVIČKA DLAŽDICE */
+.dashboard .tile-head { display: block; margin-bottom: 8px; }
+
+
+.dashboard .tile-link {
+ display: flex;
+ align-items: center;
+ gap: 10px;
+ color: inherit;
+ text-decoration: none;
+ outline: none;
+ border-radius: 6px;
+}
+.dashboard .tile-link:hover .tile-title { text-decoration: underline; }
+.dashboard .tile-link:focus-visible {
+ outline: 2px solid #2d4739;
+ outline-offset: 2px;
+}
+
+.dashboard .tile:has(.tile-link:focus-visible) {
+ transform: translateY(-3px);
+ box-shadow: 0 20px 40px rgba(229, 213, 174, .36);
+}
+
+/* Ikona a nadpis */
+.dashboard .tile-icon {
+ font-size: var(--tile-icon-size);
+ line-height: 1;
+ width: 1em;
+ height: 1em;
+ flex: 0 0 auto;
+}
+.dashboard .tile-title {
+ font-size: 1.15rem;
+ margin: 0;
+ color: #2d4739;
+ font-family: skautbold, sans-serif;
+}
+
+/* OBSAH */
+.dashboard .tile-body { font-size: .95rem; color: #4e5e51; }
+.dashboard .tile-body ul { margin: .25rem 0 0; padding-left: 1rem; }
+.dashboard .tile-body li { margin: .1rem 0; }
+.dashboard .tile-body .btn { margin-top: .5rem; }
+
+/* RESPONSIVE */
+@media (max-width: 420px) {
+ .dashboard .tile { padding: 18px; min-height: 150px; }
+ .dashboard .tile-title { font-size: 1.1rem; }
+ .dashboard .tile-icon { font-size: 26px; }
+}
+
+/* ===== Nástěnka – hlavička sekce a akce ===== */
+.dashboard .section-head {
+ display: flex;
+ align-items: baseline;
+ justify-content: space-between;
+ gap: 12px;
+ margin: 0 0 10px;
+}
+.dashboard .section-title {
+ font-family: skautbold, sans-serif;
+ font-size: 2.15rem;
+ line-height: 1.2;
+ margin: 0;
+ color: #2d4739;
+}
+.section-actions {
+ display: inline-flex;
+ align-items: center;
+ gap: 8px;
+ vertical-align: middle;
+}
+
+/* ===== Párovací ovládací prvky ===== */
+
+
+.btn.btn-surface{
+ --bs-btn-color: var(--bs-secondary);
+ --bs-btn-bg: transparent;
+ --bs-btn-border-color: var(--bs-secondary);
+
+ --bs-btn-hover-color: #fff;
+ --bs-btn-hover-bg: var(--bs-secondary);
+ --bs-btn-hover-border-color: var(--bs-secondary);
+
+ --bs-btn-focus-shadow-rgb: var(--bs-secondary-rgb);
+
+ --bs-btn-active-color: #fff;
+ --bs-btn-active-bg: var(--bs-secondary);
+ --bs-btn-active-border-color: var(--bs-secondary);
+
+ --bs-btn-disabled-color: var(--bs-secondary);
+ --bs-btn-disabled-bg: transparent;
+ --bs-btn-disabled-border-color: var(--bs-secondary);
+
+ border-width: 1px;
+ box-shadow: 0 6px 16px rgba(229,213,174,.25);
+}
+.btn.btn-surface:hover,
+.btn.btn-surface:focus-visible{
+ box-shadow: 0 8px 22px rgba(229,213,174,.32);
+}
+
+/* Dropdown menu pro párování */
+.dropdown-menu.pairForm{
+ border: 1px solid var(--bs-border-color, rgba(0,0,0,.1));
+ border-radius: 12px;
+}
+.pairForm .input-group-text{
+ background: #f9f6ef;
+ border-color: rgba(0,0,0,.08);
+}
+
+
+.shadow-tile { box-shadow: 0 15px 35px rgba(229,213,174,.30); }
+
+/* ===== Dark mode ===== */
+:root[data-bs-theme="dark"] .dashboard {
+ background: var(--bs-body-bg);
+ color: var(--bs-body-color);
+}
+:root[data-bs-theme="dark"] .dashboard .tile {
+ background: var(--bs-body-bg);
+ border: 1px solid var(--bs-border-color);
+ box-shadow: none;
+}
+:root[data-bs-theme="dark"] .dashboard .tile-title,
+:root[data-bs-theme="dark"] .dashboard .section-title {
+ color: var(--bs-emphasis-color);
+}
+:root[data-bs-theme="dark"] .dashboard .tile-body {
+ color: var(--bs-secondary-color);
+}
+:root[data-bs-theme="dark"] .dashboard .tile:hover {
+ transform: translateY(-3px);
+ background: color-mix(in oklab, var(--bs-body-bg) 92%, var(--bs-emphasis-color));
+}
+:root[data-bs-theme="dark"] .btn.btn-surface{ box-shadow: none; }
+:root[data-bs-theme="dark"] .dropdown-menu.pairForm{
+ background: var(--bs-body-bg);
+ border: 1px solid var(--bs-border-color);
+}
diff --git a/frontend/scss/fonts.scss b/frontend/scss/fonts.scss
new file mode 100644
index 000000000..39db72ee4
--- /dev/null
+++ b/frontend/scss/fonts.scss
@@ -0,0 +1,22 @@
+$font-cdn: 'https://cdn.skauting.cz/fonts';
+
+@mixin font-face($family, $file, $weight, $style: normal, $svg-id: null) {
+ @font-face {
+ font-family: quote($family);
+ src: url('#{$font-cdn}/#{$file}.eot');
+ src: url('#{$font-cdn}/#{$file}.eot?#iefix') format('embedded-opentype'),
+ url('#{$font-cdn}/#{$file}.woff2') format('woff2'),
+ url('#{$font-cdn}/#{$file}.woff') format('woff'),
+ url('#{$font-cdn}/#{$file}.otf') format('opentype'),
+ url('#{$font-cdn}/#{$file}.svg##{if($svg-id, $svg-id, $family)}') format('svg');
+ font-weight: $weight;
+ font-style: $style;
+ }
+}
+
+@include font-face('themix', 'TheMix_LT_400', 400, normal, 'themix');
+@include font-face('themix', 'TheMix_LT_400i', 400, italic, 'themix');
+@include font-face('themix', 'TheMix_LT_700', 700, normal, 'themix');
+@include font-face('themix', 'TheMix_LT_700i', 700, italic, 'themix');
+
+@include font-face('skautbold', 'skaut-bold-webfont', normal, normal, 'skautbold');
diff --git a/frontend/scss/landing.scss b/frontend/scss/landing.scss
new file mode 100644
index 000000000..3c5cdb29a
--- /dev/null
+++ b/frontend/scss/landing.scss
@@ -0,0 +1,294 @@
+/* scss/landing.scss */
+.landing {
+ padding-bottom: 80px;
+ background: #f9f6ef;
+ color: #2d4739;
+ font-family: Arial, sans-serif;
+ --icon-size: 64px;
+
+ img {
+ max-width: 100%;
+ height: auto;
+ display: block;
+ }
+
+ .intro {
+ max-width: 1000px;
+ padding: 50px 20px 20px;
+ display: flex;
+ flex-direction: column;
+ text-align: center;
+ margin: 0 auto 30px;
+ gap: 16px;
+
+ @media (min-width: 768px) {
+ flex-direction: row;
+ gap: 32px;
+ align-items: center;
+ }
+ }
+
+ .intro-left,
+ .intro-right {
+ @media (min-width: 768px) { width: 50%; }
+ }
+
+ .intro-left {
+ margin: auto 0;
+ position: relative;
+ z-index: 1;
+ }
+
+ .intro-right {
+ position: relative;
+ z-index: 0;
+
+ img {
+ width: 100%;
+ height: auto;
+ max-width: 420px;
+ max-height: 40vh;
+ object-fit: contain;
+ display: block;
+ margin: 0 auto;
+ }
+ }
+
+ h1 {
+ text-align: center;
+ font-size: 2.2rem;
+ color: #2d4739;
+ line-height: 1.2;
+ text-transform: uppercase;
+ font-family: skautbold, sans-serif;
+
+ @media (min-width: 768px) { font-size: 3rem; text-align: left; }
+ @media (min-width: 1000px) { font-size: 4rem; }
+ }
+
+ .intro-left p {
+ text-align: center;
+ font-size: 1.6rem;
+ color: #4e5e51;
+
+ @media (min-width: 768px) { text-align: left; }
+ }
+
+ .intro-buttons {
+ max-width: 1000px;
+ padding: 20px 0;
+ display: flex;
+ flex-direction: column;
+ gap: 20px;
+ margin: 20px 0;
+
+ @media (min-width: 768px) { flex-direction: row; }
+ }
+
+ .features {
+ max-width: 1100px;
+ margin: 0 20px;
+ padding: 10px;
+ display: flex;
+ flex-wrap: wrap;
+ flex-direction: column;
+ gap: 20px;
+ background: #fff;
+ border-radius: 20px;
+ transform: translateY(-50px);
+ box-shadow: 0 15px 35px 0 rgba(229, 213, 174, .3) !important;
+ align-content: center;
+
+ @media (min-width: 768px) { justify-content: space-around; flex-direction: unset; }
+ @media (min-width: 1150px) { margin: 0 auto; }
+ }
+
+ .features-item {
+ padding: 10px;
+ display: flex;
+ flex-direction: row;
+ gap: 20px;
+ text-align: center;
+ align-items: center;
+ @media (min-width: 768px) { flex: 1 1 250px; flex-direction: unset; }
+ }
+
+ .features-item-left {
+ margin: auto 0;
+ width: var(--icon-size);
+ height: var(--icon-size);
+ min-width: var(--icon-size);
+ min-height: var(--icon-size);
+ flex: 0 0 var(--icon-size);
+ display: grid;
+ place-items: center;
+
+ img {
+ width: 100%;
+ height: 100%;
+ object-fit: contain;
+ display: block;
+ }
+ }
+
+ .features-item h3 {
+ font-size: 1.2rem;
+ margin-bottom: 10px;
+ }
+
+ .features-item-right {
+ text-align: left;
+
+ p { margin: 0; }
+ }
+
+ .services {
+ padding: 20px;
+ background: #e5d5ae;
+ border-radius: 20px;
+ max-width: 1100px;
+ box-shadow: 0 15px 35px 0 rgba(229, 213, 174, .3) !important;
+
+
+ margin: 50px 20px;
+ display: flex;
+ flex-direction: column;
+ flex-wrap: wrap;
+ gap: 40px 20px;
+
+ align-content: center;
+
+ @media (min-width: 768px) { justify-content: space-around; flex-direction: unset; }
+ @media (min-width: 1150px) { margin: 0 auto; }
+ }
+
+ .services-item {
+ text-align: center;
+ display: flex;
+ flex-direction: row;
+ gap: 20px;
+ align-items: center;
+
+ @media (min-width: 768px) { flex: 1 1 45%; flex-direction: unset; }
+ }
+
+ .services-item-left {
+ width: var(--icon-size);
+ height: var(--icon-size);
+ min-width: var(--icon-size);
+ min-height: var(--icon-size);
+ flex: 0 0 var(--icon-size);
+ display: grid;
+ place-items: center;
+
+ img {
+ width: 100%;
+ height: 100%;
+ object-fit: contain;
+ display: block;
+ }
+ }
+
+ .services-item-right {
+ margin: auto 0;
+
+ h3 {
+ text-align: left;
+ font-size: 1.2rem;
+ margin: 0 0 10px;
+ color: #2d4739;
+ }
+
+ p { margin: 0; text-align: left; }
+ }
+
+ .about {
+ max-width: 1000px;
+ margin: auto;
+ padding: 50px 20px;
+
+ h2 { font-size: 2.5rem; }
+ }
+
+ .about-button { display: flex; }
+
+ .btn-landing {
+ display: inline-block;
+ background-color: #e5d5ae;
+ color: #2d4739;
+ padding: 12px 24px;
+ border: none;
+ cursor: pointer;
+ font-size: 1.1rem;
+ font-weight: 700;
+ border-radius: 6px;
+ text-decoration: none;
+ line-height: 1.5;
+ box-shadow: 0 15px 35px 0 rgba(229, 213, 174, .3) !important;
+ transition: background-color .3s, transform .5s ease;
+
+ &:hover {
+ background-color: #d1c09b;
+ transform: translateY(-3px);
+ text-decoration: none;
+ }
+ }
+
+
+ @media (max-width: 767.98px) {
+ .features { transform: none; margin-top: 10px; }
+ }
+}
+
+
+@media (max-width: 360px) {
+ .landing { --icon-size: 56px; }
+}
+
+/* Dark mode pro landing (izolovaně) */
+:root[data-bs-theme="dark"] .landing {
+
+ background: var(--bs-body-bg);
+ color: var(--bs-body-color);
+
+ h1 {
+ color: var(--bs-emphasis-color);
+ }
+
+ .intro-left p {
+ color: var(--bs-secondary-color);
+ }
+
+ /* boxy */
+ .features {
+ background: var(--bs-body-bg);
+ border: 1px solid var(--bs-border-color);
+ box-shadow: none;
+ }
+
+ .services {
+ background: var(--bs-body-bg);
+ border: 1px solid var(--bs-border-color);
+ box-shadow: none;
+ }
+
+ .services-item-right h3 {
+ color: var(--bs-emphasis-color);
+ }
+
+ a {
+ color: var(--bs-link-color);
+ &:hover { color: var(--bs-link-hover-color); }
+ }
+
+ .btn-landing {
+ background-color: var(--bs-warning-bg-subtle);
+ color: var(--bs-body-color);
+ box-shadow: none;
+
+ &:hover {
+ background-color: color-mix(in oklab, var(--bs-warning-bg-subtle) 85%, var(--bs-body-bg));
+ transform: translateY(-3px);
+ }
+ }
+}
diff --git a/frontend/ts/DataGridExtension.ts b/frontend/ts/DataGridExtension.ts
index ae8aee069..760a2c367 100644
--- a/frontend/ts/DataGridExtension.ts
+++ b/frontend/ts/DataGridExtension.ts
@@ -1,8 +1,18 @@
import najaInstance, {InteractionEvent} from 'naja';
export class DataGridExtension {
+
+ private static groupHandlersBound = false;
+
public constructor(naja: typeof najaInstance) {
naja.addEventListener('interaction', DataGridExtension.enableSortHistory);
+ if (!DataGridExtension.groupHandlersBound) {
+ DataGridExtension.groupHandlersBound = true;
+ document.addEventListener('change', DataGridExtension.onChange, true);
+ document.addEventListener('click', DataGridExtension.onShiftClick, true); // volitelné: shift-range
+ }
+
+
}
private static enableSortHistory(event: InteractionEvent): void {
@@ -12,5 +22,77 @@ export class DataGridExtension {
(event.options as any).history = true;
}
}
+
+ // === Datagrid group actions ===
+ private static onChange(e: Event): void {
+ const t = e.target as HTMLElement | null;
+ if (!t) return;
+
+ // 1) řádkový checkbox → přepnout tlačítka/select + spočítat
+ const gridKey = t.getAttribute('data-check');
+ if (gridKey) {
+ const checked = document.querySelectorAll
(`input[data-check-all-${gridKey}]:checked`);
+ const select = document.querySelector(`.datagrid-${gridKey} select[name="group_action[group_action]"]`);
+ const buttons = document.querySelectorAll(`.datagrid-${gridKey} .row-group-actions *[type="submit"]`);
+ const counter = document.querySelector(`.datagrid-${gridKey} .datagrid-selected-rows-count`);
+
+ const any = checked.length > 0;
+ buttons.forEach(b => { b.disabled = !any; });
+ if (select) {
+ select.disabled = !any;
+ if (!any) select.value = '';
+ }
+ if (counter) {
+ const total = document.querySelectorAll(`input[data-check-all-${gridKey}]`).length;
+ counter.innerHTML = any ? `${checked.length}/${total}` : '';
+ }
+
+ if (select) select.dispatchEvent(new Event('change', { bubbles: true }));
+ }
+
+ // 2) master checkbox → (od)škrtnout všechny + vyvolat jejich change
+ const masterKey = t.getAttribute('data-check-all');
+ if (masterKey && (t as HTMLInputElement).type === 'checkbox') {
+ const checked = (t as HTMLInputElement).checked;
+ const inputs = document.querySelectorAll(`input[type=checkbox][data-check-all-${masterKey}]`);
+ inputs.forEach(input => {
+ input.checked = checked;
+ input.dispatchEvent(new Event('change', { bubbles: true }));
+ });
+ }
+ }
+
+ // Volitelné: SHIFT výběr rozsahu mezi dvěma kliky
+ private static lastCheckboxCell: HTMLElement | null = null;
+ private static onShiftClick(e: MouseEvent): void {
+ const path = (e.composedPath?.() as HTMLElement[]) ?? [];
+ const cell = path.find((el: any) => el?.classList?.contains('col-checkbox')) as HTMLElement | undefined;
+ if (!cell) return;
+
+ if (DataGridExtension.lastCheckboxCell && e.shiftKey) {
+ const currentRow = cell.closest('tr');
+ const lastRow = DataGridExtension.lastCheckboxCell.closest('tr');
+ const tbody = lastRow?.closest('tbody');
+ if (!currentRow || !lastRow || !tbody) {
+ DataGridExtension.lastCheckboxCell = cell;
+ return;
+ }
+
+ const rows = Array.from(tbody.querySelectorAll('tr'));
+ const i1 = rows.indexOf(lastRow);
+ const i2 = rows.indexOf(currentRow);
+ if (i1 >= 0 && i2 >= 0) {
+ const [from, to] = i1 < i2 ? [i1, i2] : [i2 + 1, i1];
+ rows.slice(from, to).forEach(r => {
+ const cb = r.querySelector('.col-checkbox input[type=checkbox]');
+ if (cb && !cb.checked) {
+ cb.checked = true;
+ cb.dispatchEvent(new Event('change', { bubbles: true }));
+ }
+ });
+ }
+ }
+ DataGridExtension.lastCheckboxCell = cell;
+ }
}
diff --git a/migrations/2017/Version20170311191048.php b/migrations/2017/Version20170311191048.php
deleted file mode 100644
index f199ad651..000000000
--- a/migrations/2017/Version20170311191048.php
+++ /dev/null
@@ -1,21 +0,0 @@
-addSql('ALTER TABLE `pa_group` ADD `nextVs` int(4) unsigned NULL AFTER `ks`;');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE `pa_group` DROP `nextVs`;');
- }
-}
diff --git a/migrations/2017/Version20170410220106.php b/migrations/2017/Version20170410220106.php
deleted file mode 100644
index 121321fc3..000000000
--- a/migrations/2017/Version20170410220106.php
+++ /dev/null
@@ -1,21 +0,0 @@
-addSql("UPDATE `pa_payment` SET `note` = '' WHERE `note` IS NULL");
- $this->addSql("ALTER TABLE `pa_payment` CHANGE `note` `note` VARCHAR(64) NOT NULL DEFAULT ''");
- }
-
- public function down(Schema $schema): void
- {
- }
-}
diff --git a/migrations/2017/Version20170424092204.php b/migrations/2017/Version20170424092204.php
deleted file mode 100644
index b84710c09..000000000
--- a/migrations/2017/Version20170424092204.php
+++ /dev/null
@@ -1,22 +0,0 @@
-addSql('DELETE FROM tc_commands WHERE deleted = 1');
- $this->addSql('ALTER TABLE tc_commands DROP deleted');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql("ALTER TABLE tc_commands ADD deleted TINYINT(1) DEFAULT '0' NOT NULL");
- }
-}
diff --git a/migrations/2017/Version20170427210154.php b/migrations/2017/Version20170427210154.php
deleted file mode 100644
index 63a138bfd..000000000
--- a/migrations/2017/Version20170427210154.php
+++ /dev/null
@@ -1,22 +0,0 @@
-addSql('ALTER TABLE pa_group ADD email_template_subject VARCHAR(255) NOT NULL, CHANGE email_info email_template_body LONGTEXT NOT NULL, DROP email_demand');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE pa_group DROP email_template_subject, CHANGE email_template_body email_info TEXT DEFAULT NULL COLLATE utf8_czech_ci, ADD email_demand TEXT DEFAULT NULL COLLATE utf8_czech_ci');
- $this->addSql("UPDATE pa_group SET email_template_subject = 'Informace o platbě'");
- }
-}
diff --git a/migrations/2017/Version20170430153958.php b/migrations/2017/Version20170430153958.php
deleted file mode 100644
index bfad8a4bb..000000000
--- a/migrations/2017/Version20170430153958.php
+++ /dev/null
@@ -1,22 +0,0 @@
-addSql('ALTER TABLE tc_travels ADD has_fuel TINYINT(1) NOT NULL');
- $this->addSql('UPDATE tc_travels INNER JOIN tc_travelTypes AS types ON tc_travels.type = types.type SET tc_travels.has_fuel = types.hasFuel');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE tc_travels DROP has_fuel');
- }
-}
diff --git a/migrations/2017/Version20170501172634.php b/migrations/2017/Version20170501172634.php
deleted file mode 100644
index 124156c90..000000000
--- a/migrations/2017/Version20170501172634.php
+++ /dev/null
@@ -1,28 +0,0 @@
-addSql('ALTER TABLE tc_commands ADD driver_name VARCHAR(255) NOT NULL, ADD driver_contact VARCHAR(255) NOT NULL, ADD driver_address VARCHAR(255) NOT NULL');
- $this->addSql('
- UPDATE tc_commands
- INNER JOIN tc_contracts as contract ON tc_commands.contract_id = contract.id
- SET
- tc_commands.driver_name = contract.driver_name,
- tc_commands.driver_contact = contract.driver_contact,
- tc_commands.driver_address = contract.driver_address;');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE tc_commands DROP driver_name, DROP driver_contact, DROP driver_address');
- }
-}
diff --git a/migrations/2017/Version20170522203708.php b/migrations/2017/Version20170522203708.php
deleted file mode 100644
index 90baa1694..000000000
--- a/migrations/2017/Version20170522203708.php
+++ /dev/null
@@ -1,21 +0,0 @@
-addSql("ALTER TABLE `ac_chits` CHANGE `purpose` `purpose` varchar(120) COLLATE 'utf8_czech_ci' NOT NULL AFTER `recipient`");
- }
-
- public function down(Schema $schema): void
- {
- // this down() migration is auto-generated, please modify it to your needs
- }
-}
diff --git a/migrations/2017/Version20170528161640.php b/migrations/2017/Version20170528161640.php
deleted file mode 100644
index 217d990d9..000000000
--- a/migrations/2017/Version20170528161640.php
+++ /dev/null
@@ -1,21 +0,0 @@
-addSql("INSERT INTO `ac_chitsCategory` (`id`, `label`, `short`, `type`, `orderby`, `deleted`) VALUES (12, 'Neurčeno', 'np', 1, '101', '0')");
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql("DELETE FROM `ac_chitsCategory` WHERE (`id` = '12');");
- }
-}
diff --git a/migrations/2017/Version20170528182347.php b/migrations/2017/Version20170528182347.php
deleted file mode 100644
index f34e859f1..000000000
--- a/migrations/2017/Version20170528182347.php
+++ /dev/null
@@ -1,25 +0,0 @@
-addSql('ALTER TABLE tc_commands ADD next_travel_id INT NOT NULL');
- $this->addSql('
- UPDATE tc_commands
- SET tc_commands.next_travel_id = (SELECT COALESCE (max(tc_travels.id) + 1, 0) FROM tc_travels WHERE command_id = tc_commands.id)
- ');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE tc_commands DROP next_travel_id');
- }
-}
diff --git a/migrations/2017/Version20170531125856.php b/migrations/2017/Version20170531125856.php
deleted file mode 100644
index 6cac677b6..000000000
--- a/migrations/2017/Version20170531125856.php
+++ /dev/null
@@ -1,25 +0,0 @@
-addSql('ALTER TABLE `tc_command_types` ADD UNIQUE `unique_relationship` (`commandId`, `typeId`)');
- $this->addSql('
- INSERT IGNORE INTO `tc_command_types` (`commandId`, `typeId`)
- SELECT `command_id`, `type` FROM `tc_travels`;
- ');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE `tc_command_types` DROP INDEX `unique_relationship`');
- }
-}
diff --git a/migrations/2017/Version20170602122002.php b/migrations/2017/Version20170602122002.php
deleted file mode 100644
index 9da2c9f44..000000000
--- a/migrations/2017/Version20170602122002.php
+++ /dev/null
@@ -1,25 +0,0 @@
-addSql('ALTER TABLE tc_travels MODIFY id BIGINT UNSIGNED NOT NULL');
- $this->addSql('ALTER TABLE tc_travels DROP PRIMARY KEY');
- $this->addSql('ALTER TABLE tc_travels ADD PRIMARY KEY (id, command_id)');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE tc_travels DROP PRIMARY KEY');
- $this->addSql('ALTER TABLE tc_travels CHANGE id id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL');
- $this->addSql('ALTER TABLE tc_travels ADD PRIMARY KEY (id)');
- }
-}
diff --git a/migrations/2017/Version20170603124748.php b/migrations/2017/Version20170603124748.php
deleted file mode 100644
index 814c627a1..000000000
--- a/migrations/2017/Version20170603124748.php
+++ /dev/null
@@ -1,20 +0,0 @@
-addSql("UPDATE `pa_payment` SET email = NULL WHERE email = ''");
- }
-
- public function down(Schema $schema): void
- {
- }
-}
diff --git a/migrations/2017/Version20170623193150.php b/migrations/2017/Version20170623193150.php
deleted file mode 100644
index 69b3e84ce..000000000
--- a/migrations/2017/Version20170623193150.php
+++ /dev/null
@@ -1,95 +0,0 @@
-addSql('CREATE TABLE pa_bank_account (id INT AUTO_INCREMENT NOT NULL, unit_id INT NOT NULL, name VARCHAR(255) NOT NULL, token VARCHAR(255) DEFAULT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', allowed_for_subunits TINYINT(1) NOT NULL, number_prefix VARCHAR(6) DEFAULT NULL, number_number VARCHAR(10) NOT NULL, number_bank_code VARCHAR(4) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
- $this->addSql('ALTER TABLE pa_group ADD bank_account_id INT DEFAULT NULL');
- $this->addSql('ALTER TABLE pa_group ADD CONSTRAINT fk_bank_account_id FOREIGN KEY (bank_account_id) REFERENCES pa_bank_account(id)');
- }
-
- public function postUp(Schema $schema): void
- {
- $bankConfigurations = $this->connection->fetchAll('SELECT * FROM pa_bank');
-
- $parser = new Czech();
- $now = (new DateTimeImmutable())->format('Y-m-d H:i:s');
-
- if (count($bankConfigurations) > 0) {
- foreach ($bankConfigurations as $configuration) {
- $unitId = (int) $configuration['unitId'];
- $accountNumber = $this->getMainAccount($unitId);
-
- if ($accountNumber === null || ! $configuration['token']) {
- continue;
- }
-
- $number = $parser->parseNumber($accountNumber);
-
- $this->connection->insert('pa_bank_account', [
- 'unit_id' => $unitId,
- 'name' => 'Hlavní',
- 'token' => $configuration['token'],
- 'created_at' => $now,
- 'allowed_for_subunits' => 1,
- 'number_prefix' => $number[0],
- 'number_number' => $number[1],
- 'number_bank_code' => $number[2],
- ]);
-
- $bankAccountId = $this->connection->lastInsertId();
- $this->connection->executeStatement('UPDATE pa_group SET bank_account_id = ' . $bankAccountId . ' WHERE unitId = ' . $unitId);
- }
- }
-
- $this->connection->executeStatement('DROP TABLE pa_bank');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('DROP TABLE pa_bank_account');
- $this->addSql('ALTER TABLE pa_group DROP bank_account_id');
- }
-
- // phpcs:disable Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps
- private function getMainAccount(int $unitId): string|null
- {
- $result = $this->skautis->org->AccountAll(['ID_Unit' => $unitId]);
-
- if ($result instanceof stdClass) {
- return null;
- }
-
- foreach ($result as $account) {
- if ($account->IsMain) {
- return Strings::endsWith($account->DisplayName, '/2010')
- ? $account->DisplayName
- : null; // Only FIO is supported
- }
- }
-
- return null;
- }
-}
diff --git a/migrations/2017/Version20170707164123.php b/migrations/2017/Version20170707164123.php
deleted file mode 100644
index b53683156..000000000
--- a/migrations/2017/Version20170707164123.php
+++ /dev/null
@@ -1,34 +0,0 @@
-addSql("
-CREATE TABLE `log` (
- `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `unitId` int(11) unsigned NOT NULL,
- `date` datetime NOT NULL,
- `userId` int(10) unsigned NOT NULL,
- `description` text CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL,
- `type` enum('object','payment') CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL,
- `typeId` int(10) unsigned DEFAULT NULL,
- PRIMARY KEY (`id`),
- KEY `unitId` (`unitId`),
- KEY `typeId` (`typeId`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
- ");
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('DROP TABLE IF EXISTS `log`;');
- }
-}
diff --git a/migrations/2017/Version20170808142047.php b/migrations/2017/Version20170808142047.php
deleted file mode 100644
index 16ca430aa..000000000
--- a/migrations/2017/Version20170808142047.php
+++ /dev/null
@@ -1,22 +0,0 @@
-addSql('ALTER TABLE tc_vehicle ADD subunit_id INT DEFAULT NULL');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE tc_vehicle DROP subunit_id');
- $this->addSql('CREATE INDEX unit_id ON tc_vehicle (unit_id)');
- }
-}
diff --git a/migrations/2017/Version20170917162823.php b/migrations/2017/Version20170917162823.php
deleted file mode 100644
index 0c0539b5e..000000000
--- a/migrations/2017/Version20170917162823.php
+++ /dev/null
@@ -1,36 +0,0 @@
-addSql("INSERT INTO `ac_chitsCategory` (`id`, `label`, `short`, `type`, `orderby`, `deleted`) VALUES (13, 'Převod z odd. pokladny', 'zd', 1, '100', '0');");
- $this->addSql("INSERT INTO `ac_chitsCategory` (`id`, `label`, `short`, `type`, `orderby`, `deleted`) VALUES (14, 'Převod do odd. pokladny', 'dd', 2, '100', '0');");
- $this->addSql("INSERT INTO `ac_chitsCategory` (`id`, `label`, `short`, `type`, `orderby`, `deleted`) VALUES (15, 'Převod z akce', 'za', 1, '100', '0');");
- $this->addSql("INSERT INTO `ac_chitsCategory` (`id`, `label`, `short`, `type`, `orderby`, `deleted`) VALUES (16, 'Převod do akce', 'da', 2, '100', '0');");
-
- $this->addSql('CREATE TABLE `ac_chitsCategory_object` (' .
- '`categoryId` int(10) unsigned NOT NULL,' .
- '`objectTypeId` varchar(20) COLLATE utf8_czech_ci NOT NULL,' .
- 'KEY `categoryId` (`categoryId`),' .
- 'KEY `objectTypeId` (`objectTypeId`),' .
- 'CONSTRAINT `ac_chitsCategory_object_ibfk_1` FOREIGN KEY (`categoryId`) REFERENCES `ac_chitsCategory` (`id`) ON DELETE CASCADE ON UPDATE CASCADE' .
- ') ENGINE=InnoDB DEFAULT CHARSET=utf8;');
-
- $this->addSql('INSERT INTO `ac_chitsCategory_object` (`categoryId`, `objectTypeId`) VALUES ' .
- "(1,'camp'),(2,'camp'), (3,'camp'), (4,'camp'), (5,'camp'), (6,'camp'), (7,'camp'), (8,'camp'), (9,'camp'), (10,'camp'), (11,'camp'), (12,'camp'), (13,'camp'), (14,'camp')," .
- "(1,'general'),(2,'general'),(3,'general'),(4,'general'),(5,'general'),(6,'general'),(7,'general'),(8,'general'),(9,'general'),(10,'general'),(11,'general'),(12,'general'),(13,'general'),(14,'general')," .
- "(2,'unit'),(3,'unit'),(4,'unit'),(5,'unit'),(6,'unit'),(7,'unit'),(8,'unit'),(9,'unit'),(10,'unit'),(12,'unit'),(13,'unit'),(15,'unit'),(16,'unit');");
- }
-
- public function down(Schema $schema): void
- {
- }
-}
diff --git a/migrations/2017/Version20171016131200.php b/migrations/2017/Version20171016131200.php
deleted file mode 100644
index 4320dcac5..000000000
--- a/migrations/2017/Version20171016131200.php
+++ /dev/null
@@ -1,20 +0,0 @@
-addSql("UPDATE pa_smtp SET secure = 'tls' WHERE secure = 'tsl'");
- }
-
- public function down(Schema $schema): void
- {
- }
-}
diff --git a/migrations/2017/Version20171121192634.php b/migrations/2017/Version20171121192634.php
deleted file mode 100644
index dc828c8f2..000000000
--- a/migrations/2017/Version20171121192634.php
+++ /dev/null
@@ -1,24 +0,0 @@
-addSql('CREATE TABLE ac_cashbook (id INT NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
- $this->addSql('INSERT INTO ac_cashbook (id) SELECT id FROM ac_object');
- $this->addSql("UPDATE ac_chits SET num = NULL WHERE num = ''");
- $this->addSql("UPDATE ac_chits SET recipient = NULL WHERE recipient = ''");
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('DROP TABLE ac_cashbook');
- }
-}
diff --git a/migrations/2017/Version20171212191620.php b/migrations/2017/Version20171212191620.php
deleted file mode 100644
index 5f1cf252c..000000000
--- a/migrations/2017/Version20171212191620.php
+++ /dev/null
@@ -1,21 +0,0 @@
-addSql("INSERT INTO ac_chitsCategory_object (categoryId, objectTypeId) VALUES (14, 'unit')");
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql("DELETE FROM ac_chitsCategory_object WHERE categoryId = 14 AND objectTypeId = 'unit'");
- }
-}
diff --git a/migrations/2017/Version20171214165147.php b/migrations/2017/Version20171214165147.php
deleted file mode 100644
index ad484c60b..000000000
--- a/migrations/2017/Version20171214165147.php
+++ /dev/null
@@ -1,22 +0,0 @@
-addSql("ALTER TABLE tc_vehicle ADD metadata_author_name VARCHAR(255) NOT NULL, ADD metadata_created_at DATETIME NOT NULL COMMENT '(DC2Type:datetime_immutable)'");
- $this->addSql("UPDATE tc_vehicle SET metadata_author_name = 'Hospodaření', metadata_created_at = '2018-01-01'");
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE tc_vehicle DROP metadata_author_name, DROP metadata_created_at');
- }
-}
diff --git a/migrations/2017/Version20171227114340.php b/migrations/2017/Version20171227114340.php
deleted file mode 100644
index c2689a913..000000000
--- a/migrations/2017/Version20171227114340.php
+++ /dev/null
@@ -1,22 +0,0 @@
-addSql("ALTER TABLE `pa_smtp` ADD `sender` varchar(255) COLLATE 'utf8_czech_ci' NOT NULL AFTER `secure`;");
- $this->addSql('UPDATE `pa_smtp` SET sender = username');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE `pa_smtp` DROP `sender`;');
- }
-}
diff --git a/migrations/2017/initial_schema.sql b/migrations/2017/initial_schema.sql
index b7ac978b7..5dacd8978 100644
--- a/migrations/2017/initial_schema.sql
+++ b/migrations/2017/initial_schema.sql
@@ -1,310 +1,401 @@
SET NAMES utf8;
-
SET time_zone = '+00:00';
-
SET foreign_key_checks = 0;
-SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
-
-CREATE TABLE `ac_camp_participants` (
- `participantId` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
- `actionId` int(10) unsigned NOT NULL,
- `payment` float(9,2) unsigned DEFAULT NULL,
- `repayment` float(9,2) unsigned DEFAULT NULL COMMENT 'vratka',
- `isAccount` enum('N','Y') COLLATE utf8_czech_ci DEFAULT 'N' COMMENT 'placeno na účet?',
- PRIMARY KEY (`participantId`),
- KEY `actionId` (`actionId`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
+SET NAMES utf8mb4;
+
+CREATE TABLE `ac_camp_cashbooks` (
+ `id` char(36) COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:skautis_camp_id)',
+ `cashbook_id` char(36) COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:cashbook_id)',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
+
+CREATE TABLE `ac_cashbook` (
+ `id` char(36) COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:cashbook_id)',
+ `type` varchar(255) COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:string_enum)',
+ `cash_chit_number_prefix` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci DEFAULT NULL,
+ `bank_chit_number_prefix` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci DEFAULT NULL,
+ `note` longtext COLLATE utf8mb4_czech_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
+
+CREATE TABLE `ac_chit_scan` (
+ `id` int NOT NULL AUTO_INCREMENT,
+ `chit_id` int NOT NULL,
+ `file_path` varchar(255) COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:file_path)',
+ PRIMARY KEY (`id`),
+ KEY `IDX_FEC2BFD22AEA3AE4` (`chit_id`),
+ CONSTRAINT `FK_FEC2BFD22AEA3AE4` FOREIGN KEY (`chit_id`) REFERENCES `ac_chits` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
+
+CREATE TABLE `ac_chit_to_item` (
+ `chit_id` int NOT NULL,
+ `item_id` int NOT NULL,
+ PRIMARY KEY (`chit_id`,`item_id`),
+ UNIQUE KEY `UNIQ_2EA9AB79126F525E` (`item_id`),
+ KEY `IDX_2EA9AB792AEA3AE4` (`chit_id`),
+ CONSTRAINT `FK_2EA9AB79126F525E` FOREIGN KEY (`item_id`) REFERENCES `ac_chits_item` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT,
+ CONSTRAINT `FK_2EA9AB792AEA3AE4` FOREIGN KEY (`chit_id`) REFERENCES `ac_chits` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
CREATE TABLE `ac_chits` (
- `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
- `eventId` int(11) NOT NULL,
- `num` varchar(5) COLLATE utf8_czech_ci DEFAULT NULL,
- `date` date NOT NULL,
- `recipient` varchar(64) COLLATE utf8_czech_ci DEFAULT NULL,
- `purpose` varchar(40) COLLATE utf8_czech_ci NOT NULL,
- `price` float(9,2) NOT NULL,
- `priceText` varchar(100) COLLATE utf8_czech_ci NOT NULL,
- `category` int(10) unsigned NOT NULL,
- `budgetCategoryIn` int(10) unsigned DEFAULT NULL,
- `budgetCategoryOut` int(10) unsigned DEFAULT NULL,
- `lock` int(10) unsigned DEFAULT NULL,
- `deleted` tinyint(4) NOT NULL DEFAULT '0',
- PRIMARY KEY (`id`),
- KEY `category` (`category`),
- KEY `deleted` (`deleted`),
- KEY `eventId` (`eventId`),
- CONSTRAINT `ac_chits_ibfk_1` FOREIGN KEY (`eventId`) REFERENCES `ac_object` (`id`) ON UPDATE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
+ `id` int NOT NULL AUTO_INCREMENT,
+ `eventId` char(36) COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:cashbook_id)',
+ `num` varchar(5) COLLATE utf8mb4_czech_ci DEFAULT NULL COMMENT '(DC2Type:chit_number)',
+ `date` date NOT NULL COMMENT '(DC2Type:chronos_date)',
+ `recipient` varchar(64) COLLATE utf8mb4_czech_ci DEFAULT NULL COMMENT '(DC2Type:recipient)',
+ `locked` int DEFAULT NULL,
+ `payment_method` varchar(13) COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:string_enum)',
+ PRIMARY KEY (`id`),
+ KEY `IDX_DBBC2DBC2B2EBB6C` (`eventId`),
+ CONSTRAINT `FK_DBBC2DBC2B2EBB6C` FOREIGN KEY (`eventId`) REFERENCES `ac_cashbook` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
CREATE TABLE `ac_chitsCategory` (
- `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `label` varchar(64) COLLATE utf8_czech_ci NOT NULL,
- `short` varchar(64) COLLATE utf8_czech_ci NOT NULL,
- `type` enum('in','out') COLLATE utf8_czech_ci NOT NULL DEFAULT 'out',
- `orderby` tinyint(3) unsigned NOT NULL DEFAULT '100',
- `deleted` tinyint(4) NOT NULL DEFAULT '0',
- PRIMARY KEY (`id`),
- UNIQUE KEY `short` (`short`),
- KEY `deleted` (`deleted`),
- KEY `orderby` (`orderby`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
-
-INSERT INTO `ac_chitsCategory` (`id`, `label`, `short`, `type`, `orderby`, `deleted`) VALUES
-(1, 'Přijmy od účastníků', 'pp', 'in', 100, 0),
-(2, 'Služby', 's', 'out', 100, 0),
-(3, 'Potraviny', 't', 'out', 100, 0),
-(4, 'Jízdné', 'j', 'out', 100, 0),
-(5, 'Nájemné', 'n', 'out', 100, 0),
-(6, 'Materiál', 'm', 'out', 100, 0),
-(7, 'Převod do stř. pokladny', 'pr', 'out', 100, 0),
-(8, 'Neurčeno', 'un', 'out', 101, 0),
-(9, 'Převod z pokladny střediska', 'ps', 'in', 100, 0),
-(10, 'Cestovné', 'c', 'out', 100, 0),
-(11, 'Hromadný příjem od úč.', 'hpd', 'in', 100, 0);
-
-CREATE TABLE `ac_chitsView` (`id` bigint(20) unsigned, `eventId` int(11), `date` date, `num` varchar(5), `recipient` varchar(64), `purpose` varchar(40), `price` float(9,2), `priceText` varchar(100), `category` int(10) unsigned, `budgetCategoryIn` int(10) unsigned, `budgetCategoryOut` int(10) unsigned, `lock` int(10) unsigned, `deleted` tinyint(4), `clabel` varchar(64), `cshort` varchar(64), `ctype` enum('in','out'));
-
-CREATE TABLE `ac_object` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `skautisId` int(10) unsigned NOT NULL,
- `type` varchar(20) COLLATE utf8_czech_ci NOT NULL,
- `prefix` varchar(6) COLLATE utf8_czech_ci DEFAULT '',
- PRIMARY KEY (`id`),
- UNIQUE KEY `skautisId_type` (`skautisId`,`type`),
- KEY `type` (`type`),
- CONSTRAINT `ac_object_ibfk_2` FOREIGN KEY (`type`) REFERENCES `ac_object_type` (`id`) ON UPDATE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
-
-CREATE TABLE `ac_object_type` (
- `id` varchar(20) COLLATE utf8_czech_ci NOT NULL,
- PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
-
-INSERT INTO `ac_object_type` (`id`) VALUES
-('camp'),
-('general'),
-('unit');
+ `id` int NOT NULL AUTO_INCREMENT,
+ `name` varchar(64) COLLATE utf8mb4_czech_ci NOT NULL,
+ `shortcut` varchar(64) COLLATE utf8mb4_czech_ci NOT NULL,
+ `operation_type` varchar(64) COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:string_enum)',
+ `virtual` tinyint(1) NOT NULL,
+ `priority` smallint NOT NULL,
+ `deleted` tinyint NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `UNIQ_43247D652EF83F9C` (`shortcut`),
+ KEY `deleted` (`deleted`),
+ KEY `priority` (`priority`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
+
+CREATE TABLE `ac_chitsCategory_object` (
+ `category_id` int NOT NULL,
+ `type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:string_enum)',
+ PRIMARY KEY (`category_id`,`type`),
+ KEY `IDX_824C4F2512469DE2` (`category_id`),
+ KEY `type` (`type`),
+ CONSTRAINT `FK_824C4F259C370B71` FOREIGN KEY (`category_id`) REFERENCES `ac_chitsCategory` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
+
+CREATE TABLE `ac_chits_item` (
+ `id` int NOT NULL AUTO_INCREMENT,
+ `purpose` varchar(120) COLLATE utf8mb4_czech_ci NOT NULL,
+ `price` double NOT NULL,
+ `priceText` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci NOT NULL,
+ `category` int NOT NULL,
+ `category_operation_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci DEFAULT NULL COMMENT '(DC2Type:string_enum)',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
+
+CREATE TABLE `ac_education_cashbooks` (
+ `id` char(36) COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:skautis_education_id)',
+ `year` int NOT NULL,
+ `cashbook_id` char(36) COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:cashbook_id)',
+ PRIMARY KEY (`id`,`year`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
+
+CREATE TABLE `ac_event_cashbooks` (
+ `id` char(36) COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:skautis_event_id)',
+ `cashbook_id` char(36) COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:cashbook_id)',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
+
+CREATE TABLE `ac_participants` (
+ `id` char(36) COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:payment_id)',
+ `participant_id` int NOT NULL,
+ `event_id` int NOT NULL,
+ `payment` int NOT NULL COMMENT '(DC2Type:money)',
+ `repayment` int NOT NULL COMMENT '(DC2Type:money)',
+ `account` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci NOT NULL,
+ `event_type` varchar(9) COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:string_enum)',
+ PRIMARY KEY (`id`),
+ KEY `eventId` (`event_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
CREATE TABLE `ac_unit_budget_category` (
- `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `objectId` int(11) NOT NULL,
- `label` varchar(64) COLLATE utf8_czech_ci NOT NULL,
- `type` enum('in','out') COLLATE utf8_czech_ci NOT NULL DEFAULT 'out',
- `parentId` int(10) unsigned DEFAULT NULL,
- `value` float unsigned NOT NULL DEFAULT '0',
- `year` smallint(5) unsigned NOT NULL,
- `deleted` tinyint(3) unsigned NOT NULL DEFAULT '0',
- PRIMARY KEY (`id`),
- KEY `objectId_year` (`objectId`,`year`),
- KEY `parentId` (`parentId`),
- CONSTRAINT `ac_unit_budget_category_ibfk_2` FOREIGN KEY (`objectId`) REFERENCES `ac_object` (`id`) ON UPDATE CASCADE,
- CONSTRAINT `ac_unit_budget_category_ibfk_4` FOREIGN KEY (`parentId`) REFERENCES `ac_unit_budget_category` (`id`) ON UPDATE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
-
-CREATE TABLE `pa_bank` (
- `unitId` int(11) unsigned NOT NULL,
- `token` varchar(64) COLLATE utf8_czech_ci NOT NULL,
- `daysback` int(10) unsigned DEFAULT NULL COMMENT 'počet dní nazpět',
- PRIMARY KEY (`unitId`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
+ `id` int NOT NULL AUTO_INCREMENT,
+ `unit_id` int NOT NULL,
+ `label` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci NOT NULL,
+ `type` varchar(255) COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:string_enum)',
+ `parentId` int DEFAULT NULL,
+ `value` double NOT NULL DEFAULT '0',
+ `year` smallint NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `unitId_year` (`unit_id`,`year`),
+ KEY `IDX_356BCD1F10EE4CEE` (`parentId`),
+ CONSTRAINT `FK_356BCD1F10EE4CEE` FOREIGN KEY (`parentId`) REFERENCES `ac_unit_budget_category` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
+
+CREATE TABLE `ac_unit_cashbooks` (
+ `id` int NOT NULL,
+ `unit_id` char(36) COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:unit_id)',
+ `year` smallint NOT NULL,
+ `cashbook_id` varchar(36) COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:cashbook_id)',
+ PRIMARY KEY (`id`,`unit_id`),
+ KEY `IDX_1243558BF8BD700D` (`unit_id`),
+ CONSTRAINT `FK_1243558BF8BD700D` FOREIGN KEY (`unit_id`) REFERENCES `ac_units` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
+
+CREATE TABLE `ac_units` (
+ `id` char(36) COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:unit_id)',
+ `active_cashbook_id` int NOT NULL,
+ `next_cashbook_id` int NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
+
+CREATE TABLE `google_oauth` (
+ `id` char(36) COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:oauth_id)',
+ `unit_id` char(36) COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:unit_id)',
+ `email` varchar(255) COLLATE utf8mb4_czech_ci NOT NULL,
+ `token` varchar(255) COLLATE utf8mb4_czech_ci NOT NULL,
+ `updated_at` datetime NOT NULL COMMENT '(DC2Type:datetime_immutable)',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `unitid_email` (`unit_id`,`email`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
+
+CREATE TABLE `log` (
+ `id` int NOT NULL AUTO_INCREMENT,
+ `unit_id` int NOT NULL,
+ `date` datetime NOT NULL COMMENT '(DC2Type:datetime_immutable)',
+ `user_id` int NOT NULL,
+ `description` longtext COLLATE utf8mb4_czech_ci NOT NULL,
+ `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:string_enum)',
+ `type_id` int DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `unitId` (`unit_id`),
+ KEY `typeId` (`type_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
+
+CREATE TABLE `pa_bank_account` (
+ `id` int NOT NULL AUTO_INCREMENT,
+ `unit_id` int NOT NULL,
+ `name` varchar(255) COLLATE utf8mb4_czech_ci NOT NULL,
+ `token` varchar(255) COLLATE utf8mb4_czech_ci DEFAULT NULL,
+ `created_at` datetime NOT NULL COMMENT '(DC2Type:datetime_immutable)',
+ `allowed_for_subunits` tinyint(1) NOT NULL,
+ `number_prefix` varchar(6) COLLATE utf8mb4_czech_ci DEFAULT NULL,
+ `number_number` varchar(10) COLLATE utf8mb4_czech_ci NOT NULL,
+ `number_bank_code` varchar(4) COLLATE utf8mb4_czech_ci NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
CREATE TABLE `pa_group` (
- `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `groupType` varchar(20) COLLATE utf8_czech_ci DEFAULT NULL COMMENT 'typ entity',
- `unitId` int(11) unsigned NOT NULL,
- `sisId` int(11) DEFAULT NULL COMMENT 'ID entity ve skautisu',
- `label` varchar(64) COLLATE utf8_czech_ci NOT NULL,
- `amount` float unsigned DEFAULT NULL,
- `maturity` date DEFAULT NULL,
- `ks` int(4) unsigned DEFAULT NULL,
- `email_info` text COLLATE utf8_czech_ci,
- `email_demand` text COLLATE utf8_czech_ci,
- `state` varchar(20) COLLATE utf8_czech_ci NOT NULL DEFAULT 'open',
- `state_info` varchar(250) COLLATE utf8_czech_ci NOT NULL DEFAULT '',
- `created_at` datetime DEFAULT NULL,
- `last_pairing` datetime DEFAULT NULL,
- `smtp_id` int(10) unsigned DEFAULT NULL,
- PRIMARY KEY (`id`),
- KEY `objectId` (`sisId`),
- KEY `groupType` (`groupType`),
- KEY `objectId_2` (`unitId`),
- KEY `state` (`state`),
- KEY `smtp_id` (`smtp_id`),
- CONSTRAINT `pa_group_ibfk_1` FOREIGN KEY (`groupType`) REFERENCES `pa_group_type` (`id`) ON UPDATE CASCADE,
- CONSTRAINT `pa_group_ibfk_4` FOREIGN KEY (`state`) REFERENCES `pa_group_state` (`id`) ON UPDATE CASCADE,
- CONSTRAINT `pa_group_ibfk_6` FOREIGN KEY (`smtp_id`) REFERENCES `pa_smtp` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
-
-CREATE TABLE `pa_group_state` (
- `id` varchar(20) COLLATE utf8_czech_ci NOT NULL,
- `label` varchar(64) COLLATE utf8_czech_ci NOT NULL,
- PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
-
-INSERT INTO `pa_group_state` (`id`, `label`) VALUES
-('canceled', 'Zrušená'),
-('closed', 'Uzavřená'),
-('open', 'Otevřená');
-
-CREATE TABLE `pa_group_type` (
- `id` varchar(20) COLLATE utf8_czech_ci NOT NULL,
- PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
-
-INSERT INTO `pa_group_type` (`id`) VALUES
-('camp'),
-('registration');
+ `id` int NOT NULL AUTO_INCREMENT,
+ `groupType` varchar(20) COLLATE utf8mb4_czech_ci DEFAULT NULL COMMENT 'typ entity(DC2Type:string_enum)',
+ `sisId` int DEFAULT NULL COMMENT 'ID entity ve skautisu',
+ `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci NOT NULL,
+ `amount` double DEFAULT NULL,
+ `due_date` date DEFAULT NULL COMMENT '(DC2Type:chronos_date)',
+ `constant_symbol` int DEFAULT NULL,
+ `next_variable_symbol` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci DEFAULT NULL COMMENT '(DC2Type:variable_symbol)',
+ `state` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci NOT NULL,
+ `note` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci NOT NULL,
+ `created_at` datetime DEFAULT NULL COMMENT '(DC2Type:datetime_immutable)',
+ `last_pairing` datetime DEFAULT NULL COMMENT '(DC2Type:datetime_immutable)',
+ `smtp_id` int DEFAULT NULL,
+ `bank_account_id` int DEFAULT NULL,
+ `oauth_id` char(36) COLLATE utf8mb4_czech_ci DEFAULT NULL COMMENT '(DC2Type:oauth_id)',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
+
+CREATE TABLE `pa_group_email` (
+ `id` int NOT NULL AUTO_INCREMENT,
+ `group_id` int NOT NULL,
+ `type` varchar(255) COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:string_enum)',
+ `template_subject` varchar(255) COLLATE utf8mb4_czech_ci NOT NULL,
+ `template_body` longtext COLLATE utf8mb4_czech_ci NOT NULL,
+ `enabled` tinyint(1) NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `IDX_7A67EADBFE54D947` (`group_id`),
+ CONSTRAINT `FK_7A67EADBFE54D947` FOREIGN KEY (`group_id`) REFERENCES `pa_group` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
+
+CREATE TABLE `pa_group_unit` (
+ `id` int NOT NULL AUTO_INCREMENT,
+ `unit_id` int NOT NULL,
+ `group_id` int NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `IDX_FB5A0CD6FE54D947` (`group_id`),
+ CONSTRAINT `FK_FB5A0CD6FE54D947` FOREIGN KEY (`group_id`) REFERENCES `pa_group` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
CREATE TABLE `pa_payment` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `groupId` int(10) unsigned NOT NULL,
- `name` varchar(64) COLLATE utf8_czech_ci NOT NULL,
- `email` text COLLATE utf8_czech_ci,
- `personId` int(11) DEFAULT NULL,
- `amount` float NOT NULL,
- `maturity` date NOT NULL,
- `vs` varchar(10) COLLATE utf8_czech_ci DEFAULT NULL,
- `ks` varchar(4) COLLATE utf8_czech_ci DEFAULT NULL,
- `note` varchar(64) COLLATE utf8_czech_ci DEFAULT NULL,
- `transactionId` bigint(11) unsigned DEFAULT NULL,
- `dateClosed` datetime DEFAULT NULL,
- `paidFrom` varchar(64) COLLATE utf8_czech_ci DEFAULT NULL,
- `state` varchar(20) COLLATE utf8_czech_ci NOT NULL DEFAULT 'preparing',
- PRIMARY KEY (`id`),
- KEY `state` (`state`),
- KEY `groupId` (`groupId`),
- CONSTRAINT `pa_payment_ibfk_1` FOREIGN KEY (`state`) REFERENCES `pa_payment_state` (`id`) ON UPDATE CASCADE,
- CONSTRAINT `pa_payment_ibfk_5` FOREIGN KEY (`groupId`) REFERENCES `pa_group` (`id`) ON UPDATE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
-
-CREATE TABLE `pa_payment_state` (
- `id` varchar(20) COLLATE utf8_czech_ci NOT NULL,
- `label` varchar(64) COLLATE utf8_czech_ci NOT NULL,
- `orderby` tinyint(4) NOT NULL,
- PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
-
-INSERT INTO `pa_payment_state` (`id`, `label`, `orderby`) VALUES
-('canceled', 'Zrušena', 10),
-('completed', 'Dokončena', 3),
-('preparing', 'Připravena', 1),
-('send', 'Odeslána', 2);
-
-CREATE TABLE `pa_smtp` (
- `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `unitId` int(11) unsigned NOT NULL,
- `host` varchar(255) COLLATE utf8_czech_ci NOT NULL,
- `username` varchar(255) COLLATE utf8_czech_ci NOT NULL,
- `password` varchar(255) COLLATE utf8_czech_ci NOT NULL,
- `secure` varchar(64) COLLATE utf8_czech_ci NOT NULL DEFAULT 'ssl',
- `created` datetime NOT NULL,
- PRIMARY KEY (`id`),
- KEY `unitId` (`unitId`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
-
-CREATE TABLE `report_chitsView` (`category` varchar(64), `sum(price)` double(19,2), `cnt` bigint(21), `rok` int(4));
-
-CREATE TABLE `report_eventsView` (`Year` int(4), `Type` varchar(20), `Count` bigint(21));
+ `id` int NOT NULL AUTO_INCREMENT,
+ `group_id` int NOT NULL,
+ `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci NOT NULL,
+ `person_id` int DEFAULT NULL,
+ `amount` float NOT NULL,
+ `due_date` date NOT NULL COMMENT '(DC2Type:chronos_date)',
+ `variable_symbol` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci DEFAULT NULL COMMENT '(DC2Type:variable_symbol)',
+ `constant_symbol` smallint DEFAULT NULL,
+ `note` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci NOT NULL,
+ `transactionId` varchar(64) COLLATE utf8mb4_czech_ci DEFAULT NULL,
+ `closed_at` datetime DEFAULT NULL COMMENT '(DC2Type:datetime_immutable)',
+ `closed_by_username` varchar(64) COLLATE utf8mb4_czech_ci DEFAULT NULL,
+ `bank_account` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci DEFAULT NULL,
+ `state` varchar(20) COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:string_enum)',
+ `transaction_payer` varchar(255) COLLATE utf8mb4_czech_ci DEFAULT NULL,
+ `transaction_note` varchar(255) COLLATE utf8mb4_czech_ci DEFAULT NULL,
+ `date` date DEFAULT NULL COMMENT '(DC2Type:chronos_date)',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
+
+CREATE TABLE `pa_payment_email_recipients` (
+ `id` int NOT NULL AUTO_INCREMENT,
+ `payment_id` int NOT NULL,
+ `email_address` varchar(255) COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:email_address)',
+ PRIMARY KEY (`id`),
+ KEY `IDX_A3FBD6514C3A3BB` (`payment_id`),
+ CONSTRAINT `FK_A3FBD6514C3A3BB` FOREIGN KEY (`payment_id`) REFERENCES `pa_payment` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
+
+CREATE TABLE `pa_payment_sent_emails` (
+ `id` int NOT NULL AUTO_INCREMENT,
+ `payment_id` int NOT NULL,
+ `type` varchar(255) COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:string_enum)',
+ `time` datetime NOT NULL COMMENT '(DC2Type:datetime_immutable)',
+ `sender_name` varchar(255) COLLATE utf8mb4_czech_ci NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `IDX_95359C6C4C3A3BB` (`payment_id`),
+ CONSTRAINT `FK_95359C6C4C3A3BB` FOREIGN KEY (`payment_id`) REFERENCES `pa_payment` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
CREATE TABLE `tc_commands` (
- `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `contract_id` int(10) unsigned DEFAULT NULL,
- `unit_id` int(10) unsigned NOT NULL,
- `purpose` varchar(64) COLLATE utf8_czech_ci NOT NULL,
- `place` varchar(64) COLLATE utf8_czech_ci DEFAULT NULL,
- `passengers` varchar(64) COLLATE utf8_czech_ci NOT NULL,
- `vehicle_id` int(10) unsigned DEFAULT NULL,
- `fuel_price` float(9,2) NOT NULL,
- `amortization` float(9,2) NOT NULL,
- `note` varchar(64) COLLATE utf8_czech_ci NOT NULL,
- `closed` datetime DEFAULT NULL,
- `deleted` tinyint(3) unsigned NOT NULL DEFAULT '0',
- PRIMARY KEY (`id`),
- KEY `contract_id` (`contract_id`),
- KEY `vehicle_id` (`vehicle_id`),
- CONSTRAINT `tc_commands_ibfk_1` FOREIGN KEY (`contract_id`) REFERENCES `tc_contracts` (`id`) ON UPDATE CASCADE,
- CONSTRAINT `tc_commands_ibfk_2` FOREIGN KEY (`vehicle_id`) REFERENCES `tc_vehicle` (`id`) ON UPDATE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
-
-CREATE TABLE `tc_command_types` (
- `commandId` int(10) unsigned NOT NULL,
- `typeId` varchar(5) COLLATE utf8_czech_ci NOT NULL DEFAULT 'auv',
- KEY `commandId` (`commandId`),
- KEY `typeId` (`typeId`),
- CONSTRAINT `tc_command_types_ibfk_5` FOREIGN KEY (`commandId`) REFERENCES `tc_commands` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
- CONSTRAINT `tc_command_types_ibfk_6` FOREIGN KEY (`typeId`) REFERENCES `tc_travelTypes` (`type`) ON DELETE CASCADE ON UPDATE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
+ `id` int NOT NULL AUTO_INCREMENT,
+ `contract_id` int DEFAULT NULL,
+ `unit_id` int NOT NULL,
+ `purpose` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci NOT NULL,
+ `place` varchar(64) COLLATE utf8mb4_czech_ci NOT NULL,
+ `fellow_passengers` varchar(256) COLLATE utf8mb4_czech_ci NOT NULL,
+ `vehicle_id` int DEFAULT NULL,
+ `fuel_price` int NOT NULL COMMENT '(DC2Type:money)',
+ `amortization` int NOT NULL COMMENT '(DC2Type:money)',
+ `note` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci NOT NULL,
+ `closed_at` datetime DEFAULT NULL COMMENT '(DC2Type:datetime_immutable)',
+ `driver_name` varchar(255) COLLATE utf8mb4_czech_ci NOT NULL,
+ `driver_contact` varchar(255) COLLATE utf8mb4_czech_ci NOT NULL,
+ `driver_address` varchar(255) COLLATE utf8mb4_czech_ci NOT NULL,
+ `next_travel_id` int NOT NULL,
+ `owner_id` int DEFAULT NULL,
+ `unit` varchar(64) COLLATE utf8mb4_czech_ci NOT NULL,
+ `transport_types` json NOT NULL COMMENT '(DC2Type:transport_types)',
+ PRIMARY KEY (`id`),
+ KEY `IDX_4D5B6D0C545317D1` (`vehicle_id`),
+ CONSTRAINT `FK_4D5B6D0C545317D1` FOREIGN KEY (`vehicle_id`) REFERENCES `tc_vehicle` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
CREATE TABLE `tc_contracts` (
- `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `unit_id` int(10) unsigned NOT NULL COMMENT 'SkautIS ID jednotky',
- `unit_person` varchar(64) COLLATE utf8_czech_ci NOT NULL COMMENT 'jméno osoby zastupující jednotku',
- `driver_name` varchar(64) COLLATE utf8_czech_ci NOT NULL,
- `driver_address` varchar(64) COLLATE utf8_czech_ci NOT NULL,
- `driver_birthday` date NOT NULL,
- `driver_contact` varchar(64) COLLATE utf8_czech_ci DEFAULT NULL,
- `start` date DEFAULT NULL,
- `end` date DEFAULT NULL,
- `template` int(11) NOT NULL DEFAULT '2' COMMENT '1-old, 2-podle NOZ',
- `deleted` tinyint(3) unsigned NOT NULL DEFAULT '0',
- PRIMARY KEY (`id`),
- KEY `deleted` (`deleted`),
- KEY `unit_id` (`unit_id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
+ `id` int NOT NULL AUTO_INCREMENT,
+ `unit_id` int NOT NULL,
+ `unit_representative` varchar(64) COLLATE utf8mb4_czech_ci NOT NULL,
+ `driver_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci NOT NULL,
+ `driver_address` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci NOT NULL,
+ `driver_birthday` date DEFAULT NULL COMMENT '(DC2Type:chronos_date)',
+ `driver_contact` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci DEFAULT NULL,
+ `since` date DEFAULT NULL COMMENT '(DC2Type:chronos_date)',
+ `until` date DEFAULT NULL COMMENT '(DC2Type:chronos_date)',
+ `template_version` smallint NOT NULL COMMENT '1-old, 2-podle NOZ',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
CREATE TABLE `tc_travels` (
- `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
- `command_id` int(10) unsigned NOT NULL,
- `start_place` varchar(64) COLLATE utf8_czech_ci NOT NULL,
- `start_date` date NOT NULL,
- `end_place` varchar(64) COLLATE utf8_czech_ci NOT NULL,
- `distance` float(9,2) unsigned NOT NULL,
- `type` varchar(5) COLLATE utf8_czech_ci NOT NULL,
- PRIMARY KEY (`id`),
- KEY `tc_id` (`command_id`),
- KEY `type` (`type`),
- CONSTRAINT `tc_travels_ibfk_1` FOREIGN KEY (`command_id`) REFERENCES `tc_commands` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
- CONSTRAINT `tc_travels_ibfk_3` FOREIGN KEY (`type`) REFERENCES `tc_travelTypes` (`type`) ON UPDATE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
-
-CREATE TABLE `tc_travelTypes` (
- `type` varchar(5) COLLATE utf8_czech_ci NOT NULL,
- `label` varchar(64) COLLATE utf8_czech_ci NOT NULL,
- `hasFuel` tinyint(3) unsigned NOT NULL DEFAULT '0',
- `order` tinyint(4) NOT NULL DEFAULT '10',
- PRIMARY KEY (`type`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
-
-INSERT INTO `tc_travelTypes` (`type`, `label`, `hasFuel`, `order`) VALUES
-('a', 'autobus', 0, 45),
-('auv', 'auto vlastní', 1, 50),
-('l', 'letadlo', 0, 9),
-('mov', 'motocykl vlastní', 1, 30),
-('o', 'osobní vlak', 0, 40),
-('p', 'pěšky', 0, 10),
-('r', 'rychlík', 0, 40);
+ `id` int NOT NULL,
+ `command_id` int NOT NULL,
+ `start_place` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci NOT NULL,
+ `start_date` date NOT NULL COMMENT '(DC2Type:chronos_date)',
+ `end_place` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci NOT NULL,
+ `distance` double DEFAULT NULL,
+ `transport_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:string_enum)',
+ `has_fuel` smallint NOT NULL,
+ `price` int DEFAULT NULL COMMENT '(DC2Type:money)',
+ PRIMARY KEY (`id`,`command_id`),
+ KEY `IDX_F53E53633E1689A` (`command_id`),
+ CONSTRAINT `FK_F53E53633E1689A` FOREIGN KEY (`command_id`) REFERENCES `tc_commands` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
CREATE TABLE `tc_vehicle` (
- `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `unit_id` int(10) unsigned NOT NULL COMMENT 'ID jednotky ze SkautISu ',
- `type` varchar(64) COLLATE utf8_czech_ci NOT NULL COMMENT 'značka auta ',
- `registration` varchar(64) COLLATE utf8_czech_ci NOT NULL,
- `consumption` float(7,4) unsigned NOT NULL COMMENT 'spotřeba',
- `note` varchar(64) COLLATE utf8_czech_ci NOT NULL DEFAULT '' COMMENT 'volitelná poznámka ',
- `archived` tinyint(1) unsigned NOT NULL DEFAULT '0',
- PRIMARY KEY (`id`),
- KEY `unit_id` (`unit_id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
-
-DROP TABLE IF EXISTS `ac_chitsView`;
-
-CREATE ALGORITHM=UNDEFINED SQL SECURITY DEFINER VIEW `ac_chitsView` AS select `ch`.`id` AS `id`,`ch`.`eventId` AS `eventId`,`ch`.`date` AS `date`,`ch`.`num` AS `num`,`ch`.`recipient` AS `recipient`,`ch`.`purpose` AS `purpose`,`ch`.`price` AS `price`,`ch`.`priceText` AS `priceText`,`ch`.`category` AS `category`,`ch`.`budgetCategoryIn` AS `budgetCategoryIn`,`ch`.`budgetCategoryOut` AS `budgetCategoryOut`,`ch`.`lock` AS `lock`,`ch`.`deleted` AS `deleted`,`cat`.`label` AS `clabel`,`cat`.`short` AS `cshort`,`cat`.`type` AS `ctype` from (`ac_chits` `ch` left join `ac_chitsCategory` `cat` on((`ch`.`category` = `cat`.`id`))) where (`ch`.`deleted` = 0);
-
-DROP TABLE IF EXISTS `report_chitsView`;
-
-CREATE ALGORITHM=UNDEFINED SQL SECURITY DEFINER VIEW `report_chitsView` AS select `c`.`label` AS `category`,sum(`ch`.`price`) AS `sum(price)`,count(0) AS `cnt`,year(`ch`.`date`) AS `rok` from (`ac_chitsView` `ch` left join `ac_chitsCategory` `c` on((`ch`.`category` = `c`.`id`))) where (`ch`.`ctype` = 'out') group by `ch`.`category`,year(`ch`.`date`) order by year(`ch`.`date`) desc;
-
-DROP TABLE IF EXISTS `report_eventsView`;
-
-CREATE ALGORITHM=UNDEFINED SQL SECURITY DEFINER VIEW `report_eventsView` AS select year(`c`.`date`) AS `Year`,`o`.`type` AS `Type`,count(distinct `o`.`skautisId`) AS `Count` from (`ac_chits` `c` left join `ac_object` `o` on((`c`.`eventId` = `o`.`id`))) group by `o`.`type`,year(`c`.`date`) order by year(`c`.`date`) desc,`o`.`type`;
+ `id` int NOT NULL AUTO_INCREMENT,
+ `unit_id` int NOT NULL,
+ `type` varchar(64) COLLATE utf8mb4_czech_ci NOT NULL,
+ `registration` varchar(64) COLLATE utf8mb4_czech_ci NOT NULL,
+ `consumption` double NOT NULL,
+ `note` varchar(64) COLLATE utf8mb4_czech_ci NOT NULL,
+ `archived` tinyint(1) NOT NULL DEFAULT '0',
+ `subunit_id` int DEFAULT NULL,
+ `metadata_author_name` varchar(255) COLLATE utf8mb4_czech_ci NOT NULL,
+ `metadata_created_at` datetime NOT NULL COMMENT '(DC2Type:datetime_immutable)',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
+
+CREATE TABLE `tc_vehicle_roadworthy_scan` (
+ `id` int NOT NULL AUTO_INCREMENT,
+ `vehicle_id` int NOT NULL,
+ `file_path` varchar(255) COLLATE utf8mb4_czech_ci NOT NULL COMMENT '(DC2Type:file_path)',
+ PRIMARY KEY (`id`),
+ KEY `IDX_270D2917545317D1` (`vehicle_id`),
+ CONSTRAINT `FK_270D2917545317D1` FOREIGN KEY (`vehicle_id`) REFERENCES `tc_vehicle` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_czech_ci;
+
+INSERT INTO `ac_chitsCategory` (`id`, `name`, `shortcut`, `operation_type`, `virtual`, `priority`, `deleted`) VALUES
+ (1, 'Přijmy od účastníků', 'pp', 'in', 0, 100, 0),
+ (2, 'Služby', 's', 'out', 0, 100, 0),
+ (3, 'Potraviny', 't', 'out', 0, 100, 0),
+ (4, 'Jízdné', 'j', 'out', 0, 100, 0),
+ (5, 'Nájemné', 'n', 'out', 0, 100, 0),
+ (6, 'Materiál', 'm', 'out', 0, 100, 0),
+ (7, 'Převod do stř. pokladny', 'pr', 'out', 1, 100, 0),
+ (8, 'Neurčeno', 'un', 'out', 0, 101, 0),
+ (9, 'Převod z pokladny střediska', 'ps', 'in', 1, 100, 0),
+ (10, 'Cestovné', 'c', 'out', 0, 100, 0),
+ (11, 'Hromadný příjem od úč.', 'hpd', 'in', 0, 100, 0),
+ (12, 'Neurčeno', 'np', 'in', 0, 101, 0),
+ (13, 'Převod z odd. pokladny', 'zd', 'in', 1, 100, 0),
+ (14, 'Převod do odd. pokladny', 'dd', 'out', 1, 100, 0),
+ (15, 'Převod z akce', 'za', 'in', 1, 100, 0),
+ (16, 'Převod do akce', 'da', 'out', 1, 100, 0),
+ (17, 'Příspěvky samosprávy', 'sa', 'in', 0, 100, 0),
+ (18, 'Ostatní příjmy', 'op', 'in', 0, 100, 0),
+ (19, 'Vybavení', 'v', 'out', 0, 100, 0),
+ (20, 'Vratka úč. poplatku', 'vr', 'out', 1, 100, 0),
+ (21, 'Vratka úč. poplatku - dítě', 'vrc', 'out', 1, 100, 0),
+ (22, 'Vratka úč. poplatku - dospělý', 'vra', 'out', 1, 100, 0);
+
+INSERT INTO `ac_chitsCategory_object` (`category_id`, `type`) VALUES
+ (1, 'general'),
+ (2, 'general'),
+ (2, 'unit'),
+ (3, 'general'),
+ (3, 'unit'),
+ (4, 'general'),
+ (4, 'unit'),
+ (5, 'general'),
+ (5, 'unit'),
+ (6, 'general'),
+ (6, 'unit'),
+ (7, 'camp'),
+ (7, 'general'),
+ (7, 'unit'),
+ (8, 'camp'),
+ (8, 'general'),
+ (8, 'unit'),
+ (9, 'camp'),
+ (9, 'general'),
+ (9, 'unit'),
+ (10, 'general'),
+ (10, 'unit'),
+ (11, 'general'),
+ (12, 'camp'),
+ (12, 'general'),
+ (12, 'unit'),
+ (13, 'camp'),
+ (13, 'general'),
+ (13, 'unit'),
+ (14, 'camp'),
+ (14, 'general'),
+ (14, 'unit'),
+ (15, 'unit'),
+ (16, 'unit'),
+ (17, 'general'),
+ (18, 'general'),
+ (19, 'general'),
+ (20, 'education'),
+ (20, 'general'),
+ (21, 'camp'),
+ (22, 'camp');
diff --git a/migrations/2018/Version20180112170413.php b/migrations/2018/Version20180112170413.php
deleted file mode 100644
index f86cc743e..000000000
--- a/migrations/2018/Version20180112170413.php
+++ /dev/null
@@ -1,20 +0,0 @@
-addSql("UPDATE pa_payment SET vs = NULL WHERE vs = ''");
- }
-
- public function down(Schema $schema): void
- {
- }
-}
diff --git a/migrations/2018/Version20180115183106.php b/migrations/2018/Version20180115183106.php
deleted file mode 100644
index 367fa5a53..000000000
--- a/migrations/2018/Version20180115183106.php
+++ /dev/null
@@ -1,28 +0,0 @@
-addSql('CREATE TABLE pa_group_email (id INT AUTO_INCREMENT NOT NULL, group_id INT UNSIGNED DEFAULT NULL, type VARCHAR(255) NOT NULL COMMENT \'(DC2Type:string_enum)\', template_subject VARCHAR(255) NOT NULL, template_body LONGTEXT NOT NULL, enabled TINYINT(1) NOT NULL, INDEX IDX_7A67EADBFE54D947 (group_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
- $this->addSql('ALTER TABLE pa_group_email ADD CONSTRAINT FK_7A67EADBFE54D947 FOREIGN KEY (group_id) REFERENCES pa_group (id)');
-
- $this->addSql("
- INSERT INTO pa_group_email (group_id, template_subject, template_body, type, enabled)
- SELECT id, email_template_subject, email_template_body, 'payment_info', 1 FROM pa_group
- ");
-
- $this->addSql('ALTER TABLE pa_group DROP email_template_body, DROP email_template_subject');
- }
-
- public function down(Schema $schema): void
- {
- }
-}
diff --git a/migrations/2018/Version20180122114315.php b/migrations/2018/Version20180122114315.php
deleted file mode 100644
index 481fa051a..000000000
--- a/migrations/2018/Version20180122114315.php
+++ /dev/null
@@ -1,56 +0,0 @@
-addSql('ALTER TABLE ac_cashbook ADD type VARCHAR(255) NOT NULL COMMENT \'(DC2Type:string_enum)\'');
- $this->addSql('UPDATE ac_cashbook c JOIN ac_object o ON o.id = c.id SET c.type = o.type');
- $this->addSql('ALTER TABLE ac_chits ADD category_operation_type VARCHAR(255) DEFAULT NULL COMMENT \'(DC2Type:string_enum)\'');
- $this->addSql("
- UPDATE ac_chits c
- JOIN ac_cashbook cb ON c.eventId = cb.id
- JOIN ac_chitsCategory ct ON c.category = ct.id
- SET c.category_operation_type = ct.type
- WHERE cb.type IN ('troop', 'unit', 'general') # cashbooks with static categories only
- OR ct.id IN (12, 8) # static categories for camp (undefined income & undefined expense)
- ");
- }
-
- public function postUp(Schema $schema): void
- {
- $unitCashbooks = $this->connection->fetchAll(
- "SELECT c.id as id, o.skautisId as unit_id FROM ac_cashbook c JOIN ac_object o ON o.id = c.id WHERE c.type = 'unit'",
- );
-
- foreach ($unitCashbooks as $cashbook) {
- $cashbook['unit_id'] = (int) $cashbook['unit_id'];
- try {
- $isOfficialUnit = $this->unitResolver->getOfficialUnitId($cashbook['unit_id']) === $cashbook['unit_id'];
- $this->connection->update('ac_cashbook', [
- 'type' => $isOfficialUnit ? CashbookType::OFFICIAL_UNIT : CashbookType::TROOP,
- ], ['id' => $cashbook['id']]);
- } catch (UnitHasNoParent $exc) {
- echo 'ERROR: ' . $exc->getMessage();
- }
- }
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE ac_cashbook DROP type');
- }
-}
diff --git a/migrations/2018/Version20180409115846.php b/migrations/2018/Version20180409115846.php
deleted file mode 100644
index 5cd395765..000000000
--- a/migrations/2018/Version20180409115846.php
+++ /dev/null
@@ -1,26 +0,0 @@
-addSql('ALTER TABLE ac_cashbook ADD chit_number_prefix VARCHAR(255) DEFAULT NULL, CHANGE id id INT NOT NULL COMMENT \'(DC2Type:cashbook_id)\'');
- $this->addSql('UPDATE ac_cashbook c JOIN ac_object o ON o.id = c.id SET c.chit_number_prefix = o.prefix');
- $this->addSql('ALTER TABLE ac_object DROP prefix');
- $this->addSql('DELETE FROM ac_chits WHERE deleted = 1');
- $this->addSql('ALTER TABLE ac_chits DROP deleted, DROP budgetCategoryIn, DROP budgetCategoryOut');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE ac_cashbook DROP chit_number_prefix, CHANGE id id INT NOT NULL');
- $this->addSql('UPDATE ac_cashbook SET chit_number_prefix = NULL WHERE chit_number_prefix = \'\'');
- }
-}
diff --git a/migrations/2018/Version20180424133816.php b/migrations/2018/Version20180424133816.php
deleted file mode 100644
index 821cee6ec..000000000
--- a/migrations/2018/Version20180424133816.php
+++ /dev/null
@@ -1,23 +0,0 @@
-addSql(
- 'ALTER TABLE pa_payment ADD transaction_payer VARCHAR(255) DEFAULT NULL, ADD transaction_note VARCHAR(255) DEFAULT NULL',
- );
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE pa_payment DROP transaction_payer, DROP transaction_note');
- }
-}
diff --git a/migrations/2018/Version20180611093151.php b/migrations/2018/Version20180611093151.php
deleted file mode 100644
index a1560297a..000000000
--- a/migrations/2018/Version20180611093151.php
+++ /dev/null
@@ -1,21 +0,0 @@
-addSql('ALTER TABLE pa_payment DROP FOREIGN KEY pa_payment_ibfk_5');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE pa_payment ADD CONSTRAINT pa_payment_ibfk_5 FOREIGN KEY (groupId) REFERENCES pa_group (id) ON UPDATE CASCADE');
- }
-}
diff --git a/migrations/2018/Version20180701091058.php b/migrations/2018/Version20180701091058.php
deleted file mode 100644
index 048e65f13..000000000
--- a/migrations/2018/Version20180701091058.php
+++ /dev/null
@@ -1,21 +0,0 @@
-addSql("ALTER TABLE `ac_cashbook` ADD `note` text COLLATE 'utf8_unicode_ci' NOT NULL;");
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE `ac_cashbook` DROP `note`;');
- }
-}
diff --git a/migrations/2018/Version20180701123223.php b/migrations/2018/Version20180701123223.php
deleted file mode 100644
index 6ae42c5bc..000000000
--- a/migrations/2018/Version20180701123223.php
+++ /dev/null
@@ -1,22 +0,0 @@
-addSql('ALTER TABLE ac_chits ADD payment_method VARCHAR(13) NOT NULL');
- $this->addSql('UPDATE ac_chits SET payment_method = \'cash\'');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE ac_chits DROP payment_method');
- }
-}
diff --git a/migrations/2018/Version20180728124555.php b/migrations/2018/Version20180728124555.php
deleted file mode 100644
index cc94974cc..000000000
--- a/migrations/2018/Version20180728124555.php
+++ /dev/null
@@ -1,34 +0,0 @@
-addSql(
- 'DELETE FROM ac_chitsCategory_object WHERE objectTypeId = \'camp\' AND categoryId NOT IN (?)',
- [self::VALID_CATEGORIES_FOR_CAMP],
- [Connection::PARAM_INT_ARRAY],
- );
- }
-
- public function down(Schema $schema): void
- {
- }
-}
diff --git a/migrations/2018/Version20181014120054.php b/migrations/2018/Version20181014120054.php
deleted file mode 100644
index eaeb65aa6..000000000
--- a/migrations/2018/Version20181014120054.php
+++ /dev/null
@@ -1,57 +0,0 @@
-addSql('ALTER TABLE ac_cashbook CONVERT TO CHARACTER SET utf8 COLLATE utf8_czech_ci');
-
- $this->addSql(<<<'SQL'
- CREATE TABLE ac_unit_cashbooks
- (
- id INT NOT NULL,
- unit_id CHAR(36) NOT NULL COMMENT '(DC2Type:unit_id)',
- year SMALLINT NOT NULL,
- cashbook_id VARCHAR(36) NOT NULL COMMENT '(DC2Type:cashbook_id)',
- INDEX IDX_1243558BF8BD700D (unit_id),
- PRIMARY KEY(id, unit_id)
- ) DEFAULT CHARACTER SET UTF8 COLLATE UTF8_czech_ci ENGINE = InnoDB
-SQL);
-
- $this->addSql(<<<'SQL'
- CREATE TABLE ac_units
- (
- id CHAR(36) NOT NULL COMMENT '(DC2Type:unit_id)',
- active_cashbook_id INT NOT NULL,
- next_cashbook_id INT NOT NULL,
- PRIMARY KEY(id)
- ) DEFAULT CHARACTER SET UTF8 COLLATE UTF8_czech_ci ENGINE = InnoDB
-SQL);
-
- $this->addSql(<<<'SQL'
- INSERT INTO ac_unit_cashbooks (unit_id, cashbook_id, year, id)
- SELECT
- o.skautisId, o.id, 2018, 1
- FROM ac_object o
- JOIN ac_cashbook c ON o.id = c.id
- WHERE o.type = 'unit'
-SQL);
- $this->addSql('INSERT INTO ac_units (id, active_cashbook_id, next_cashbook_id) SELECT unit_id, 1, 2 FROM ac_unit_cashbooks');
-
- $this->addSql('ALTER TABLE ac_unit_cashbooks ADD CONSTRAINT FK_1243558BF8BD700D FOREIGN KEY (unit_id) REFERENCES ac_units (id)');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE ac_unit_cashbooks DROP FOREIGN KEY FK_1243558BF8BD700D');
- $this->addSql('DROP TABLE ac_unit_cashbooks');
- $this->addSql('DROP TABLE ac_units');
- }
-}
diff --git a/migrations/2018/Version20181014182154.php b/migrations/2018/Version20181014182154.php
deleted file mode 100644
index dc956a5d4..000000000
--- a/migrations/2018/Version20181014182154.php
+++ /dev/null
@@ -1,34 +0,0 @@
-addSql('ALTER TABLE ac_unit_budget_category DROP FOREIGN KEY ac_unit_budget_category_ibfk_2');
- $this->addSql('ALTER TABLE ac_unit_budget_category CHANGE objectId unit_id INT(11)');
- $this->addSql('UPDATE ac_unit_budget_category c JOIN ac_object o ON o.id = c.unit_id SET c.unit_id = o.skautisId');
-
- $this->addSql('ALTER TABLE ac_chits DROP FOREIGN KEY ac_chits_ibfk_1');
- $this->addSql('ALTER TABLE ac_chits CHANGE eventId eventId VARCHAR(36)');
- $this->addSql('ALTER TABLE ac_object CHANGE id id VARCHAR(36)');
- $this->addSql('ALTER TABLE ac_cashbook CHANGE id id VARCHAR(36)');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('UPDATE ac_unit_budget_category c JOIN ac_object o ON o.skautisId = c.unit_id SET c.unit_id = o.id');
- $this->addSql('ALTER TABLE ac_unit_budget_category CHANGE unit_id objectId INT(11)');
- $this->addSql('ALTER TABLE ac_unit_budget_category ADD CONSTRAINT ac_unit_budget_category_ibfk_2 FOREIGN KEY (objectId) REFERENCES ac_object (id)');
-
- $this->addSql('ALTER TABLE ac_chits CHANGE eventId eventId BIGINT(20) UNSIGNED');
- $this->addSql('ALTER TABLE ac_object CHANGE id id INT(11)');
- $this->addSql('ALTER TABLE ac_cashbook CHANGE id id INT(11)');
- }
-}
diff --git a/migrations/2018/Version20181031175021.php b/migrations/2018/Version20181031175021.php
deleted file mode 100644
index 5d36c9aaa..000000000
--- a/migrations/2018/Version20181031175021.php
+++ /dev/null
@@ -1,22 +0,0 @@
-addSql("ALTER TABLE `ac_chitsCategory` ADD `virtual` int unsigned NOT NULL DEFAULT '0' AFTER `type`;");
- $this->addSql("UPDATE `ac_chitsCategory` SET `virtual` = '1' WHERE `id` IN (7,9,13,14,15,16);");
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE `ac_chitsCategory` DROP `virtual`;');
- }
-}
diff --git a/migrations/2018/Version20181031193155.php b/migrations/2018/Version20181031193155.php
deleted file mode 100644
index 5a25924b0..000000000
--- a/migrations/2018/Version20181031193155.php
+++ /dev/null
@@ -1,29 +0,0 @@
-addSql('INSERT INTO `ac_chitsCategory` (`id`, `label`, `short`, `type`, `virtual`, `orderby`, `deleted`) VALUES ' .
- "('17', 'Příspěvky samosprávy', 'sa', 1, '0', '100', '0'), " .
- "('18', 'Ostatní příjmy', 'op', 1, '0', '100', '0'), " .
- "('19', 'Vybavení', 'v', 2, '0', '100', '0');");
- $this->addSql('INSERT INTO `ac_chitsCategory_object` (`categoryId`, `objectTypeId`) VALUES ' .
- "('17', 'general')," .
- "('18', 'general')," .
- "('19', 'general');");
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('DELETE FROM `ac_chitsCategory_object` WHERE `categoryId` IN (17, 18, 19);');
- $this->addSql('DELETE FROM `ac_chitsCategory` WHERE `id` IN (17, 18, 19);');
- }
-}
diff --git a/migrations/2018/Version20181215184024.php b/migrations/2018/Version20181215184024.php
deleted file mode 100644
index 82b09c941..000000000
--- a/migrations/2018/Version20181215184024.php
+++ /dev/null
@@ -1,21 +0,0 @@
-addSql('ALTER TABLE `tc_commands` ADD `ownerId` int(11) NULL;');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE `tc_commands` DROP `ownerId`;');
- }
-}
diff --git a/migrations/2018/Version20181219112743.php b/migrations/2018/Version20181219112743.php
deleted file mode 100644
index 5fdb6e0e7..000000000
--- a/migrations/2018/Version20181219112743.php
+++ /dev/null
@@ -1,21 +0,0 @@
-addSql('ALTER TABLE tc_commands CHANGE ownerId owner_id INT DEFAULT NULL');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE tc_commands CHANGE owner_id ownerId INT DEFAULT NULL');
- }
-}
diff --git a/migrations/2018/Version20181228133626.php b/migrations/2018/Version20181228133626.php
deleted file mode 100644
index f2aef4807..000000000
--- a/migrations/2018/Version20181228133626.php
+++ /dev/null
@@ -1,27 +0,0 @@
-addSql('ALTER TABLE tc_contracts DROP deleted;'); //uz se v ORM kodu nepouziva
- $this->addSql('ALTER TABLE tc_contracts CHANGE template template SMALLINT NOT NULL;');
- $this->addSql('ALTER TABLE ac_chitsCategory CHANGE `virtual` `virtual` TINYINT(1) NOT NULL;');
- $this->addSql('ALTER TABLE ac_chitsCategory CHANGE orderby orderby SMALLINT unsigned NOT NULL;');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE `tc_contracts` ADD `deleted` tinyint(3) unsigned NOT NULL DEFAULT 0;');
- $this->addSql('ALTER TABLE tc_contracts CHANGE template template int(11) NOT NULL DEFAULT 2 COMMENT \'1-old, 2-podle NOZ\';');
- $this->addSql('ALTER TABLE ac_chitsCategory CHANGE `virtual` `virtual` int(10) unsigned DEFAULT 0 NOT NULL;');
- $this->addSql('ALTER TABLE ac_chitsCategory CHANGE orderby orderby tinyint(3) unsigned DEFAULT 100 NOT NULL;');
- }
-}
diff --git a/migrations/2019/Version20190102200136.php b/migrations/2019/Version20190102200136.php
deleted file mode 100644
index e08c2faa3..000000000
--- a/migrations/2019/Version20190102200136.php
+++ /dev/null
@@ -1,36 +0,0 @@
-addSql('ALTER TABLE `ac_chitsCategory` ' .
- "CHANGE `type` `type` enum('in','out') COLLATE 'utf8_czech_ci' NOT NULL AFTER `short`, " .
- 'CHANGE `deleted` `deleted` tinyint(4) NOT NULL AFTER `orderby`;');
-
- $this->addSql('ALTER TABLE `pa_group` ' .
- "CHANGE `state` `state` varchar(20) COLLATE 'utf8_czech_ci' NOT NULL AFTER `nextVs`, " .
- "CHANGE `state_info` `state_info` varchar(250) COLLATE 'utf8_czech_ci' NOT NULL AFTER `state`;");
-
- $this->addSql("ALTER TABLE `pa_smtp` CHANGE `secure` `secure` varchar(64) COLLATE 'utf8_czech_ci' NOT NULL AFTER `password`;");
-
- $this->addSql('ALTER TABLE `pa_payment` ' .
- "CHANGE `note` `note` varchar(64) COLLATE 'utf8_czech_ci' NOT NULL AFTER `ks`, " .
- "CHANGE `state` `state` varchar(20) COLLATE 'utf8_czech_ci' NOT NULL AFTER `paidFrom`;");
- }
-
- public function down(Schema $schema): void
- {
- // this down() migration is auto-generated, please modify it to your needs
- }
-}
diff --git a/migrations/2019/Version20190103180852.php b/migrations/2019/Version20190103180852.php
deleted file mode 100644
index 362d91f0b..000000000
--- a/migrations/2019/Version20190103180852.php
+++ /dev/null
@@ -1,23 +0,0 @@
-addSql('ALTER TABLE pa_payment CHANGE ks ks SMALLINT UNSIGNED DEFAULT NULL;');
- }
-
- public function down(Schema $schema): void
- {
- }
-}
diff --git a/migrations/2019/Version20190304083927.php b/migrations/2019/Version20190304083927.php
deleted file mode 100644
index 9cf480d03..000000000
--- a/migrations/2019/Version20190304083927.php
+++ /dev/null
@@ -1,25 +0,0 @@
-addSql('ALTER TABLE `ac_camp_participants` ' .
- 'CHANGE `payment` `payment` float(9,2) unsigned NOT NULL AFTER `actionId`,' .
- 'CHANGE `repayment` `repayment` float(9,2) unsigned NOT NULL AFTER `payment`;');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE `ac_camp_participants` ' .
- 'CHANGE `payment` `payment` float(9,2) unsigned NULL AFTER `actionId`,' .
- 'CHANGE `repayment` `repayment` float(9,2) unsigned NULL COMMENT \'vratka\' AFTER `payment`;');
- }
-}
diff --git a/migrations/2019/Version20190321140458.php b/migrations/2019/Version20190321140458.php
deleted file mode 100644
index fe0024ede..000000000
--- a/migrations/2019/Version20190321140458.php
+++ /dev/null
@@ -1,33 +0,0 @@
-addSql(<<<'SQL'
- CREATE TABLE pa_group_unit (
- id INT NOT NULL AUTO_INCREMENT,
- unit_id INT NOT NULL,
- group_id INT UNSIGNED NOT NULL,
- INDEX IDX_FB5A0CD6FE54D947 (group_id),
- PRIMARY KEY (id)
- )
- DEFAULT CHARACTER SET UTF8 COLLATE UTF8_unicode_ci ENGINE = InnoDB
-SQL);
- $this->addSql('ALTER TABLE pa_group_unit ADD CONSTRAINT FK_FB5A0CD6FE54D947 FOREIGN KEY (group_id) REFERENCES pa_group (id)');
- $this->addSql('INSERT INTO pa_group_unit (unit_id, group_id) SELECT unitId, id FROM pa_group');
- $this->addSql('ALTER TABLE pa_group DROP unitId');
- }
-
- public function down(Schema $schema): void
- {
- // There is no going back! :D
- }
-}
diff --git a/migrations/2019/Version20190401103007.php b/migrations/2019/Version20190401103007.php
deleted file mode 100644
index 698d3053b..000000000
--- a/migrations/2019/Version20190401103007.php
+++ /dev/null
@@ -1,21 +0,0 @@
-addSql('ALTER TABLE `tc_commands` ADD `unit` varchar(64) NOT NULL;');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE `tc_commands` DROP `unit`;');
- }
-}
diff --git a/migrations/2019/Version20190407182157.php b/migrations/2019/Version20190407182157.php
deleted file mode 100644
index ab02fd580..000000000
--- a/migrations/2019/Version20190407182157.php
+++ /dev/null
@@ -1,33 +0,0 @@
-addSql('ALTER TABLE ac_object DROP FOREIGN KEY ac_object_ibfk_2');
- $this->addSql('DROP TABLE ac_object_type');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql(
- 'CREATE TABLE `ac_object_type` ('
- . '`id` varchar(20) COLLATE utf8_czech_ci NOT NULL,'
- . ' PRIMARY KEY (`id`) '
- . ') ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;',
- );
-
- $this->addSql("INSERT INTO `ac_object_type` (`id`) VALUES ('camp'), ('general'), ('unit')");
- $this->addSql(
- 'ALTER TABLE hskauting.ac_object ADD CONSTRAINT `ac_object_ibfk_2` '
- . 'FOREIGN KEY (`type`) REFERENCES `ac_object_type` (`id`) ON UPDATE CASCADE',
- );
- }
-}
diff --git a/migrations/2019/Version20190409104015.php b/migrations/2019/Version20190409104015.php
deleted file mode 100644
index 021fe011e..000000000
--- a/migrations/2019/Version20190409104015.php
+++ /dev/null
@@ -1,58 +0,0 @@
-addSql(
- 'CREATE TABLE `ac_chits_item` (' .
- '`_id` int(10) unsigned NOT NULL AUTO_INCREMENT,' .
- '`id` int(10) unsigned NOT NULL,' .
- '`chit_id` bigint(20) unsigned NOT NULL,' .
- '`price` float(9,2) NOT NULL,' .
- '`priceText` varchar(100) COLLATE utf8_czech_ci NOT NULL,' .
- '`category` int(10) unsigned NOT NULL,' .
- '`category_operation_type` varchar(255) COLLATE utf8_czech_ci DEFAULT NULL COMMENT \'(DC2Type:string_enum)\',' .
- 'PRIMARY KEY (`_id`),' .
- 'KEY `chit_id` (`chit_id`),' .
- 'CONSTRAINT `ac_chits_item_ibfk_2` FOREIGN KEY (`chit_id`) REFERENCES `ac_chits` (`id`) ON DELETE CASCADE ON UPDATE CASCADE' .
- ') ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;',
- );
-
- // move current data
- $this->addSql(
- 'INSERT INTO `ac_chits_item` (`id`,`chit_id`, `price`, `priceText`, `category`, `category_operation_type`)' .
- 'SELECT 1, `id`, `price`, `priceText`, `category`, `category_operation_type`' .
- 'FROM `ac_chits`',
- );
-
- // temporary rename of origin column and default values
- $this->addSql(
- 'ALTER TABLE `ac_chits`' .
- 'CHANGE `price` `x_price` float(9,2) NULL AFTER `purpose`,' .
- 'CHANGE `priceText` `x_priceText` varchar(100) COLLATE \'utf8_czech_ci\' NULL AFTER `x_price`,' .
- 'CHANGE `category` `x_category` int(10) unsigned NULL AFTER `x_priceText`,' .
- 'CHANGE `category_operation_type` `x_category_operation_type` varchar(255) COLLATE \'utf8_czech_ci\' NULL COMMENT \'(DC2Type:string_enum)\' AFTER `lock`;',
- );
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql(
- 'ALTER TABLE `ac_chits`' .
- 'CHANGE `x_price` `price` float(9,2) NOT NULL AFTER `purpose`,' .
- 'CHANGE `x_priceText` `priceText` varchar(100) COLLATE \'utf8_czech_ci\' NOT NULL AFTER `price`,' .
- 'CHANGE `x_category` `category` int(10) unsigned NOT NULL AFTER `priceText`,' .
- 'CHANGE `x_category_operation_type` `category_operation_type` varchar(255) COLLATE \'utf8_czech_ci\' NULL COMMENT \'(DC2Type:string_enum)\' AFTER `lock`;',
- );
-
- $this->addSql('DROP TABLE IF EXISTS `ac_chits_item`;');
- }
-}
diff --git a/migrations/2019/Version20190420205527.php b/migrations/2019/Version20190420205527.php
deleted file mode 100644
index 7b66d0872..000000000
--- a/migrations/2019/Version20190420205527.php
+++ /dev/null
@@ -1,35 +0,0 @@
-addSql('ALTER TABLE pa_group DROP FOREIGN KEY pa_group_ibfk_1');
- $this->addSql('DROP TABLE pa_group_type');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql(<<<'SQL'
- CREATE TABLE `pa_group_type` (
- `id` varchar(20) COLLATE utf8_czech_ci NOT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci
- SQL);
-
- $this->addSql("INSERT INTO `pa_group_type` (`id`) VALUES ('camp'), ('registration')");
-
- $this->addSql(<<<'SQL'
- ALTER TABLE pa_group
- ADD CONSTRAINT `pa_group_ibfk_1` FOREIGN KEY (`groupType`)
- REFERENCES `pa_group_type` (`id`) ON UPDATE CASCADE
- SQL);
- }
-}
diff --git a/migrations/2019/Version20190505084443.php b/migrations/2019/Version20190505084443.php
deleted file mode 100644
index eb8119fa4..000000000
--- a/migrations/2019/Version20190505084443.php
+++ /dev/null
@@ -1,32 +0,0 @@
-addSql('INSERT INTO `ac_chitsCategory` (`id`, `label`, `short`, `type`, `virtual`, `orderby`, `deleted`) VALUES ' .
- '(20, \'Vratka úč. poplatku\', \'vr\', \'out\', 1, 100, 0);');
- $this->addSql('INSERT INTO `ac_chitsCategory_object` (`categoryId`, `objectTypeId`) VALUES (20, \'general\'), (20, \'camp\');');
- $this->addSql(<<<'EOT'
-UPDATE `ac_chits_item` SET
-`price` = (-1 * `price`),
-`priceText` = REPLACE(priceText, '-', ' '),
-`category` = '20',
-`category_operation_type` = 'out'
-WHERE `category_operation_type` = 'in' and price < 0
-EOT);
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('DELETE FROM `ac_chitsCategory_object` WHERE `categoryId` = \'20\'');
- $this->addSql('DELETE FROM `ac_chitsCategory` WHERE `id` = \'20\'');
- }
-}
diff --git a/migrations/2019/Version20190505123412.php b/migrations/2019/Version20190505123412.php
deleted file mode 100644
index 0acf50a99..000000000
--- a/migrations/2019/Version20190505123412.php
+++ /dev/null
@@ -1,21 +0,0 @@
-addSql('ALTER TABLE `ac_chits_item` ADD `purpose` varchar(120) NOT NULL AFTER `chit_id`;');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE `ac_chits_item` DROP `purpose`;');
- }
-}
diff --git a/migrations/2019/Version20190505124219.php b/migrations/2019/Version20190505124219.php
deleted file mode 100644
index 55b2e00ed..000000000
--- a/migrations/2019/Version20190505124219.php
+++ /dev/null
@@ -1,26 +0,0 @@
-connection->fetchAll('SELECT id, purpose FROM `ac_chits`');
- foreach ($chits as $chit) {
- $this->addSql('UPDATE `ac_chits_item` SET `purpose` = :purpose WHERE `chit_id` = :id;', $chit);
- }
-
- $this->addSql('ALTER TABLE `ac_chits` CHANGE `purpose` `x_purpose` varchar(120) NULL AFTER `recipient`;');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE `ac_chits` CHANGE `x_purpose` `purpose` varchar(120) NOT NULL AFTER `recipient`;');
- }
-}
diff --git a/migrations/2019/Version20190510135230.php b/migrations/2019/Version20190510135230.php
deleted file mode 100644
index 01178a114..000000000
--- a/migrations/2019/Version20190510135230.php
+++ /dev/null
@@ -1,36 +0,0 @@
-addSql(<<<'SQL'
- CREATE TABLE tc_vehicle_roadworthy_scan (
- id INT AUTO_INCREMENT NOT NULL,
- vehicle_id INT UNSIGNED DEFAULT NULL,
- file_path VARCHAR(255) NOT NULL,
- INDEX IDX_270D2917545317D1 (vehicle_id),
- PRIMARY KEY(id)
- ) DEFAULT CHARACTER SET UTF8 COLLATE UTF8_unicode_ci ENGINE = InnoDB
- SQL);
-
- $this->addSql(<<<'SQL'
- ALTER TABLE tc_vehicle_roadworthy_scan
- ADD CONSTRAINT FK_270D2917545317D1
- FOREIGN KEY (vehicle_id) REFERENCES tc_vehicle (id)
- SQL);
- $this->addSql('DROP INDEX unit_id ON tc_vehicle');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('DROP TABLE tc_vehicle_roadworthy_scan');
- }
-}
diff --git a/migrations/2019/Version20190521135746.php b/migrations/2019/Version20190521135746.php
deleted file mode 100644
index 288120903..000000000
--- a/migrations/2019/Version20190521135746.php
+++ /dev/null
@@ -1,26 +0,0 @@
-addSql('ALTER TABLE ac_chits_item DROP id, CHANGE _id id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql(<<<'SQL'
- ALTER TABLE ac_chits_item
- CHANGE COLUMN id _id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
- ADD id INT(10) UNSIGNED NOT NULL
- SQL);
- $this->addSql('UPDATE ac_chits_item SET id = 1');
- }
-}
diff --git a/migrations/2019/Version20190521142825.php b/migrations/2019/Version20190521142825.php
deleted file mode 100644
index 00d74ef61..000000000
--- a/migrations/2019/Version20190521142825.php
+++ /dev/null
@@ -1,45 +0,0 @@
-addSql(<<<'SQL'
- CREATE TABLE ac_chit_to_item (
- chit_id BIGINT(10) UNSIGNED NOT NULL,
- item_id INT UNSIGNED NOT NULL,
- INDEX IDX_2EA9AB792AEA3AE4 (chit_id),
- UNIQUE INDEX UNIQ_2EA9AB79126F525E (item_id),
- PRIMARY KEY(chit_id, item_id)
- ) DEFAULT CHARACTER SET UTF8 COLLATE UTF8_unicode_ci ENGINE = InnoDB
- SQL);
- $this->addSql('ALTER TABLE ac_chit_to_item ADD CONSTRAINT FK_2EA9AB792AEA3AE4 FOREIGN KEY (chit_id) REFERENCES ac_chits (id) ON DELETE CASCADE');
- $this->addSql('ALTER TABLE ac_chit_to_item ADD CONSTRAINT FK_2EA9AB79126F525E FOREIGN KEY (item_id) REFERENCES ac_chits_item (id) ON DELETE CASCADE');
-
- $this->addSql('INSERT INTO ac_chit_to_item (chit_id, item_id) SELECT chit_id, id FROM ac_chits_item');
-
- $this->addSql('ALTER TABLE ac_chits_item DROP FOREIGN KEY ac_chits_item_ibfk_2');
- $this->addSql('DROP INDEX chit_id ON ac_chits_item');
- $this->addSql('ALTER TABLE ac_chits_item DROP chit_id');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('DROP TABLE ac_chit_to_item');
- $this->addSql('ALTER TABLE ac_chits_item ADD chit_id BIGINT UNSIGNED NOT NULL');
- $this->addSql(<<<'SQL'
- UPDATE ac_chits_item i
- JOIN ac_chit_to_item jt ON jt.item_id = i.id
- SET i.chit_id = jt.chit_id
- SQL);
- $this->addSql('ALTER TABLE ac_chits_item ADD CONSTRAINT ac_chits_item_ibfk_2 FOREIGN KEY (chit_id) REFERENCES ac_chits (id) ON UPDATE CASCADE ON DELETE CASCADE');
- $this->addSql('CREATE INDEX chit_id ON ac_chits_item (chit_id)');
- }
-}
diff --git a/migrations/2019/Version20190529204201.php b/migrations/2019/Version20190529204201.php
deleted file mode 100644
index 009e65ec5..000000000
--- a/migrations/2019/Version20190529204201.php
+++ /dev/null
@@ -1,28 +0,0 @@
-addSql(<<<'SQL'
- ALTER TABLE ac_camp_participants
- CHANGE actionId event_id INT UNSIGNED,
- ADD event_type VARCHAR(7) COLLATE utf8_czech_ci NOT NULL COMMENT '(DC2Type:string_enum)'
- SQL);
- $this->addSql('UPDATE ac_camp_participants SET event_type = \'camp\'');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql(
- 'ALTER TABLE ac_camp_participants CHANGE event_id actionId INT UNSIGNED NOT NULL, DROP event_type',
- );
- }
-}
diff --git a/migrations/2019/Version20190601191610.php b/migrations/2019/Version20190601191610.php
deleted file mode 100644
index e022a6040..000000000
--- a/migrations/2019/Version20190601191610.php
+++ /dev/null
@@ -1,29 +0,0 @@
-addSql(<<<'SQL'
- CREATE OR REPLACE VIEW `ac_chitsView` AS
- SELECT `ch`.`id` AS `chit_id`,`ch`.`eventId` AS `eventId`,`ch`.`recipient` AS `recipient`,`ch`.`num` AS `num`,`ch`.`date` AS `date`,
- `ch`.`lock` AS `lock`,`ch`.`payment_method` AS `payment_method`,`ci`.`id` AS `id`,`ci`.`purpose` AS `purpose`,
- `ci`.`price` AS `price`,`ci`.`priceText` AS `priceText`,`ci`.`category` AS `category`,`ci`.`category_operation_type` AS `category_operation_type`
- FROM `ac_chits` `ch`
- LEFT JOIN `ac_chit_to_item` `cti` ON `ch`.`id` = `cti`.`chit_id`
- LEFT JOIN `ac_chits_item` `ci` ON `cti`.`item_id` = `ci`.`id`;
- SQL);
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('DROP VIEW `ac_chitsView`');
- }
-}
diff --git a/migrations/2019/Version20190604193449.php b/migrations/2019/Version20190604193449.php
deleted file mode 100644
index 1348c5791..000000000
--- a/migrations/2019/Version20190604193449.php
+++ /dev/null
@@ -1,24 +0,0 @@
-addSql('ALTER TABLE `ac_camp_participants` RENAME TO `ac_participants`;');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE `ac_participants` RENAME TO `ac_camp_participants`;');
- }
-}
diff --git a/migrations/2019/Version20190604213432.php b/migrations/2019/Version20190604213432.php
deleted file mode 100644
index fccc2f419..000000000
--- a/migrations/2019/Version20190604213432.php
+++ /dev/null
@@ -1,44 +0,0 @@
-addSql(<<<'SQL'
- ALTER TABLE `ac_participants`
- ADD `id` varchar(36) NOT NULL FIRST,
- CHANGE `participantId` `participantId` int(10) unsigned NOT NULL COMMENT 'ID' AFTER `id`;
- SQL);
- }
-
- public function postUp(Schema $schema): void
- {
- parent::postUp($schema);
-
- $data = $this->connection->fetchAll('SELECT * FROM `ac_participants`');
- foreach ($data as $row) {
- $this->connection->update(
- 'ac_participants',
- ['id' => PaymentId::generate()->toString()],
- ['participantId' => $row['participantId'], 'event_type' => $row['event_type'], 'event_id' => $row['event_id']],
- );
- }
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql(<<<'SQL'
- ALTER TABLE `ac_participants`
- DROP `id`,
- CHANGE `participantId` `participantId` int(10) unsigned NOT NULL COMMENT 'ID' AUTO_INCREMENT FIRST;
- SQL);
- }
-}
diff --git a/migrations/2019/Version20190606072844.php b/migrations/2019/Version20190606072844.php
deleted file mode 100644
index 2d49d5fa2..000000000
--- a/migrations/2019/Version20190606072844.php
+++ /dev/null
@@ -1,32 +0,0 @@
-addSql(<<<'SQL'
- ALTER TABLE `ac_participants`
- ADD PRIMARY KEY `id` (`id`),
- DROP INDEX `PRIMARY`;
- SQL);
-
- $this->addSql('ALTER TABLE `ac_participants` ADD UNIQUE `participantId_event_type` (`participantId`, `event_type`);');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql(<<<'SQL'
- ALTER TABLE `ac_participants`
- ADD PRIMARY KEY `participantId` (`participantId`),
- DROP INDEX `PRIMARY`;
- SQL);
- $this->addSql('ALTER TABLE `ac_participants` DROP INDEX `participantId_event_type`;');
- }
-}
diff --git a/migrations/2019/Version20190617091058.php b/migrations/2019/Version20190617091058.php
deleted file mode 100644
index cc3db934e..000000000
--- a/migrations/2019/Version20190617091058.php
+++ /dev/null
@@ -1,33 +0,0 @@
-addSql('ALTER TABLE ac_chit_to_item DROP FOREIGN KEY FK_2EA9AB79126F525E');
- $this->addSql('ALTER TABLE ac_chit_to_item DROP FOREIGN KEY FK_2EA9AB792AEA3AE4');
-
- $this->addSql('DELETE i FROM `ac_chits_item` i LEFT JOIN ac_chit_to_item ci ON i.id = ci.item_id WHERE ci.chit_id IS NULL');
-
- $this->addSql('ALTER TABLE ac_chit_to_item CHANGE chit_id chit_id BIGINT UNSIGNED NOT NULL');
-
- $this->addSql('ALTER TABLE ac_chit_to_item ADD CONSTRAINT FK_2EA9AB79126F525E FOREIGN KEY (item_id) REFERENCES ac_chits_item (id) ON DELETE CASCADE');
- $this->addSql('ALTER TABLE ac_chit_to_item ADD CONSTRAINT FK_2EA9AB792AEA3AE4 FOREIGN KEY (chit_id) REFERENCES ac_chits (id) ON DELETE CASCADE');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE ac_chit_to_item DROP FOREIGN KEY FK_2EA9AB792AEA3AE4');
- $this->addSql('ALTER TABLE ac_chit_to_item DROP FOREIGN KEY FK_2EA9AB79126F525E');
- $this->addSql('ALTER TABLE ac_chit_to_item CHANGE chit_id chit_id BIGINT UNSIGNED NOT NULL');
- $this->addSql('ALTER TABLE ac_chit_to_item ADD CONSTRAINT FK_2EA9AB792AEA3AE4 FOREIGN KEY (chit_id) REFERENCES ac_chits (id)');
- $this->addSql('ALTER TABLE ac_chit_to_item ADD CONSTRAINT FK_2EA9AB79126F525E FOREIGN KEY (item_id) REFERENCES ac_chits_item (id)');
- }
-}
diff --git a/migrations/2019/Version20190824160013.php b/migrations/2019/Version20190824160013.php
deleted file mode 100644
index 15ce8a042..000000000
--- a/migrations/2019/Version20190824160013.php
+++ /dev/null
@@ -1,37 +0,0 @@
-addSql(<<<'SQL'
- ALTER TABLE tc_vehicle
- CHANGE unit_id unit_id INT UNSIGNED NOT NULL,
- CHANGE type type VARCHAR(64) NOT NULL,
- CHANGE registration registration VARCHAR(64) NOT NULL,
- CHANGE consumption consumption DOUBLE PRECISION UNSIGNED NOT NULL,
- CHANGE note note VARCHAR(64) NOT NULL,
- CHANGE archived archived TINYINT(1) DEFAULT '0' NOT NULL
- SQL);
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql(<<<'SQL'
- ALTER TABLE tc_vehicle
- CHANGE unit_id unit_id INT UNSIGNED NOT NULL COMMENT 'ID jednotky ze SkautISu ',
- CHANGE type type VARCHAR(64) NOT NULL COLLATE utf8_czech_ci COMMENT 'značka auta ',
- CHANGE registration registration VARCHAR(64) NOT NULL COLLATE utf8_czech_ci,
- CHANGE consumption consumption DOUBLE PRECISION UNSIGNED NOT NULL COMMENT 'spotřeba',
- CHANGE note note VARCHAR(64) DEFAULT '' NOT NULL COLLATE utf8_czech_ci COMMENT 'volitelná poznámka ',
- CHANGE archived archived TINYINT(1) DEFAULT '0' NOT NULL
- SQL);
- }
-}
diff --git a/migrations/2019/Version20190824171748.php b/migrations/2019/Version20190824171748.php
deleted file mode 100644
index bb2bc3685..000000000
--- a/migrations/2019/Version20190824171748.php
+++ /dev/null
@@ -1,53 +0,0 @@
-addSql('ALTER TABLE tc_travels DROP FOREIGN KEY tc_travels_ibfk_1');
- $this->addSql('ALTER TABLE tc_travels DROP FOREIGN KEY tc_travels_ibfk_3');
- $this->addSql('DROP INDEX type ON tc_travels');
- $this->addSql(<<<'SQL'
- ALTER TABLE tc_travels
- CHANGE id id INT UNSIGNED NOT NULL,
- CHANGE start_date start_date DATE NOT NULL COMMENT '(DC2Type:chronos_date)',
- CHANGE distance distance DOUBLE PRECISION UNSIGNED DEFAULT NULL,
- CHANGE has_fuel has_fuel SMALLINT NOT NULL
- SQL);
- $this->addSql('ALTER TABLE tc_travels ADD CONSTRAINT FK_F53E53633E1689A FOREIGN KEY (command_id) REFERENCES tc_commands (id)');
- $this->addSql('ALTER TABLE tc_travels RENAME INDEX tc_id TO IDX_F53E53633E1689A');
- $this->addSql(<<<'SQL'
- ALTER TABLE tc_travelTypes
- CHANGE hasFuel hasFuel TINYINT(1) DEFAULT '0' NOT NULL,
- CHANGE `order` `order` SMALLINT DEFAULT 10 NOT NULL
- SQL);
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql(<<<'SQL'
- ALTER TABLE tc_travelTypes
- CHANGE hasFuel hasFuel TINYINT(1) DEFAULT '0' NOT NULL,
- CHANGE `order` `order` TINYINT(1) DEFAULT '10' NOT NULL
- SQL);
- $this->addSql('ALTER TABLE tc_travels DROP FOREIGN KEY FK_F53E53633E1689A');
- $this->addSql(<<<'SQL'
- ALTER TABLE tc_travels
- CHANGE id id BIGINT UNSIGNED NOT NULL,
- CHANGE start_date start_date DATE NOT NULL,
- CHANGE has_fuel has_fuel TINYINT(1) NOT NULL,
- CHANGE distance distance DOUBLE PRECISION UNSIGNED NOT NULL
- SQL);
- $this->addSql('ALTER TABLE tc_travels ADD CONSTRAINT tc_travels_ibfk_1 FOREIGN KEY (command_id) REFERENCES tc_commands (id) ON UPDATE CASCADE ON DELETE CASCADE');
- $this->addSql('ALTER TABLE tc_travels ADD CONSTRAINT tc_travels_ibfk_3 FOREIGN KEY (type) REFERENCES tc_travelTypes (type) ON UPDATE CASCADE');
- $this->addSql('CREATE INDEX type ON tc_travels (type)');
- $this->addSql('ALTER TABLE tc_travels RENAME INDEX idx_f53e53633e1689a TO tc_id');
- }
-}
diff --git a/migrations/2019/Version20190824173018.php b/migrations/2019/Version20190824173018.php
deleted file mode 100644
index fe5277894..000000000
--- a/migrations/2019/Version20190824173018.php
+++ /dev/null
@@ -1,65 +0,0 @@
-addSql('ALTER TABLE tc_commands DROP FOREIGN KEY tc_commands_ibfk_1');
- $this->addSql('ALTER TABLE tc_commands DROP FOREIGN KEY tc_commands_ibfk_2');
- $this->addSql('DROP INDEX contract_id ON tc_commands');
- $this->addSql(<<<'SQL'
- ALTER TABLE tc_commands
- CHANGE fuel_price fuel_price NUMERIC(8, 2) NOT NULL COMMENT '(DC2Type:money)',
- CHANGE amortization amortization NUMERIC(8, 2) NOT NULL COMMENT '(DC2Type:money)',
- CHANGE closed closed DATETIME DEFAULT NULL COMMENT '(DC2Type:datetime_immutable)'
- SQL);
-
- $this->addSql('ALTER TABLE tc_commands ADD CONSTRAINT FK_4D5B6D0C545317D1 FOREIGN KEY (vehicle_id) REFERENCES tc_vehicle (id)');
- $this->addSql('ALTER TABLE tc_commands RENAME INDEX vehicle_id TO IDX_4D5B6D0C545317D1');
- $this->addSql('ALTER TABLE tc_command_types DROP FOREIGN KEY tc_command_types_ibfk_5');
- $this->addSql('ALTER TABLE tc_command_types DROP FOREIGN KEY tc_command_types_ibfk_6');
- $this->addSql('DROP INDEX unique_relationship ON tc_command_types');
- $this->addSql(<<<'SQL'
- ALTER TABLE tc_command_types
- CHANGE typeId typeId VARCHAR(5) NOT NULL, ADD PRIMARY KEY (commandId, typeId)
- SQL);
- $this->addSql('ALTER TABLE tc_command_types ADD CONSTRAINT FK_DC7EBB8F36C645 FOREIGN KEY (commandId) REFERENCES tc_commands (id)');
- $this->addSql('ALTER TABLE tc_command_types ADD CONSTRAINT FK_DC7EBB9BF49490 FOREIGN KEY (typeId) REFERENCES tc_travelTypes (type)');
- $this->addSql('ALTER TABLE tc_command_types RENAME INDEX commandid TO IDX_DC7EBB8F36C645');
- $this->addSql('ALTER TABLE tc_command_types RENAME INDEX typeid TO IDX_DC7EBB9BF49490');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE tc_command_types DROP INDEX `PRIMARY`, ADD UNIQUE INDEX unique_relationship (commandId, typeId)');
- $this->addSql('ALTER TABLE tc_command_types DROP FOREIGN KEY FK_DC7EBB8F36C645');
- $this->addSql('ALTER TABLE tc_command_types DROP FOREIGN KEY FK_DC7EBB9BF49490');
- $this->addSql(<<<'SQL'
- ALTER TABLE tc_command_types
- CHANGE typeId typeId VARCHAR(5) DEFAULT 'auv' NOT NULL COLLATE utf8_czech_ci
- SQL);
- $this->addSql('ALTER TABLE tc_command_types ADD CONSTRAINT tc_command_types_ibfk_5 FOREIGN KEY (commandId) REFERENCES tc_commands (id) ON UPDATE CASCADE ON DELETE CASCADE');
- $this->addSql('ALTER TABLE tc_command_types ADD CONSTRAINT tc_command_types_ibfk_6 FOREIGN KEY (typeId) REFERENCES tc_travelTypes (type) ON UPDATE CASCADE ON DELETE CASCADE');
- $this->addSql('ALTER TABLE tc_command_types RENAME INDEX idx_dc7ebb9bf49490 TO typeId');
- $this->addSql('ALTER TABLE tc_command_types RENAME INDEX idx_dc7ebb8f36c645 TO commandId');
- $this->addSql('ALTER TABLE tc_commands DROP FOREIGN KEY FK_4D5B6D0C545317D1');
- $this->addSql(<<<'SQL'
- ALTER TABLE tc_commands
- CHANGE fuel_price fuel_price DOUBLE PRECISION NOT NULL,
- CHANGE amortization amortization DOUBLE PRECISION NOT NULL,
- CHANGE closed closed DATETIME DEFAULT NULL,
- CHANGE unit unit VARCHAR(64) NOT NULL COLLATE utf8_czech_ci
- SQL);
- $this->addSql('ALTER TABLE tc_commands ADD CONSTRAINT tc_commands_ibfk_1 FOREIGN KEY (contract_id) REFERENCES tc_contracts (id) ON UPDATE CASCADE');
- $this->addSql('ALTER TABLE tc_commands ADD CONSTRAINT tc_commands_ibfk_2 FOREIGN KEY (vehicle_id) REFERENCES tc_vehicle (id) ON UPDATE CASCADE');
- $this->addSql('CREATE INDEX contract_id ON tc_commands (contract_id)');
- $this->addSql('ALTER TABLE tc_commands RENAME INDEX idx_4d5b6d0c545317d1 TO vehicle_id');
- }
-}
diff --git a/migrations/2019/Version20190825050311.php b/migrations/2019/Version20190825050311.php
deleted file mode 100644
index 6285b20f7..000000000
--- a/migrations/2019/Version20190825050311.php
+++ /dev/null
@@ -1,33 +0,0 @@
-addSql('DROP INDEX unit_id ON tc_contracts');
- $this->addSql(<<<'SQL'
- ALTER TABLE tc_contracts
- CHANGE unit_id unit_id INT UNSIGNED NOT NULL,
- CHANGE driver_birthday driver_birthday DATE DEFAULT NULL,
- CHANGE template template SMALLINT NOT NULL COMMENT '1-old, 2-podle NOZ'
- SQL);
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql(<<<'SQL'
- ALTER TABLE tc_contracts
- CHANGE unit_id unit_id INT UNSIGNED NOT NULL COMMENT 'SkautIS ID jednotky',
- CHANGE template template SMALLINT NOT NULL,
- CHANGE driver_birthday driver_birthday DATE NOT NULL
- SQL);
- $this->addSql('CREATE INDEX unit_id ON tc_contracts (unit_id)');
- }
-}
diff --git a/migrations/2019/Version20190825051352.php b/migrations/2019/Version20190825051352.php
deleted file mode 100644
index d00a1695d..000000000
--- a/migrations/2019/Version20190825051352.php
+++ /dev/null
@@ -1,49 +0,0 @@
-addSql('ALTER TABLE pa_payment DROP FOREIGN KEY pa_payment_ibfk_1');
- $this->addSql('DROP TABLE pa_payment_state');
- $this->addSql('DROP INDEX groupId ON pa_payment');
- $this->addSql('DROP INDEX state ON pa_payment');
- $this->addSql(<<<'SQL'
- ALTER TABLE pa_payment
- CHANGE state state VARCHAR(20) NOT NULL COMMENT '(DC2Type:string_enum)',
- CHANGE maturity maturity DATE NOT NULL COMMENT '(DC2Type:chronos_date)',
- CHANGE vs vs VARCHAR(10) DEFAULT NULL COMMENT '(DC2Type:variable_symbol)',
- CHANGE transactionId transactionId INT UNSIGNED DEFAULT NULL,
- CHANGE dateClosed dateClosed DATETIME DEFAULT NULL COMMENT '(DC2Type:datetime_immutable)'
- SQL);
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql(<<<'SQL'
- CREATE TABLE pa_payment_state (
- id VARCHAR(20) NOT NULL COLLATE utf8_czech_ci,
- label VARCHAR(64) NOT NULL COLLATE utf8_czech_ci,
- orderby TINYINT(1) NOT NULL, PRIMARY KEY(id)
- ) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB COMMENT = ''
- SQL);
- $this->addSql(<<<'SQL'
- ALTER TABLE pa_payment
- CHANGE maturity maturity DATE NOT NULL,
- CHANGE vs vs VARCHAR(10) DEFAULT NULL COLLATE utf8_czech_ci,
- CHANGE dateClosed dateClosed DATETIME DEFAULT NULL,
- CHANGE state state VARCHAR(20) NOT NULL COLLATE utf8_czech_ci,
- CHANGE transactionId transactionId BIGINT UNSIGNED DEFAULT NULL
- SQL);
- $this->addSql('ALTER TABLE pa_payment ADD CONSTRAINT pa_payment_ibfk_1 FOREIGN KEY (state) REFERENCES pa_payment_state (id) ON UPDATE CASCADE');
- $this->addSql('CREATE INDEX groupId ON pa_payment (groupId)');
- $this->addSql('CREATE INDEX state ON pa_payment (state)');
- }
-}
diff --git a/migrations/2019/Version20190825053508.php b/migrations/2019/Version20190825053508.php
deleted file mode 100644
index 3a259c689..000000000
--- a/migrations/2019/Version20190825053508.php
+++ /dev/null
@@ -1,62 +0,0 @@
-addSql('ALTER TABLE pa_group DROP FOREIGN KEY pa_group_ibfk_4');
- $this->addSql('DROP TABLE pa_group_state');
- $this->addSql('ALTER TABLE pa_group DROP FOREIGN KEY fk_bank_account_id');
- $this->addSql('ALTER TABLE pa_group DROP FOREIGN KEY pa_group_ibfk_6');
- $this->addSql('DROP INDEX smtp_id ON pa_group');
- $this->addSql('DROP INDEX groupType ON pa_group');
- $this->addSql('DROP INDEX state ON pa_group');
- $this->addSql('DROP INDEX fk_bank_account_id ON pa_group');
- $this->addSql('DROP INDEX objectId ON pa_group');
- $this->addSql(<<<'SQL'
- ALTER TABLE pa_group
- CHANGE groupType groupType VARCHAR(20) DEFAULT NULL COMMENT 'typ entity(DC2Type:string_enum)',
- CHANGE amount amount DOUBLE PRECISION DEFAULT NULL,
- CHANGE maturity maturity DATE DEFAULT NULL COMMENT '(DC2Type:chronos_date)',
- CHANGE nextVs nextVs VARCHAR(255) DEFAULT NULL COMMENT '(DC2Type:variable_symbol)',
- CHANGE created_at created_at DATETIME DEFAULT NULL COMMENT '(DC2Type:datetime_immutable)',
- CHANGE last_pairing last_pairing DATETIME DEFAULT NULL COMMENT '(DC2Type:datetime_immutable)'
- SQL);
- $this->addSql('ALTER TABLE pa_group_unit CHANGE group_id group_id INT UNSIGNED DEFAULT NULL');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql(<<<'SQL'
- CREATE TABLE pa_group_state (
- id VARCHAR(20) NOT NULL COLLATE utf8_czech_ci,
- label VARCHAR(64) NOT NULL COLLATE utf8_czech_ci,
- PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB COMMENT = ''
- SQL);
- $this->addSql(<<<'SQL'
- ALTER TABLE pa_group
- CHANGE groupType groupType VARCHAR(20) DEFAULT NULL COLLATE utf8_czech_ci COMMENT 'typ entity',
- CHANGE amount amount DOUBLE PRECISION UNSIGNED DEFAULT NULL,
- CHANGE maturity maturity DATE DEFAULT NULL,
- CHANGE nextVs nextVs INT UNSIGNED DEFAULT NULL,
- CHANGE created_at created_at DATETIME DEFAULT NULL,
- CHANGE last_pairing last_pairing DATETIME DEFAULT NULL
- SQL);
- $this->addSql('ALTER TABLE pa_group ADD CONSTRAINT fk_bank_account_id FOREIGN KEY (bank_account_id) REFERENCES pa_bank_account (id)');
- $this->addSql('ALTER TABLE pa_group ADD CONSTRAINT pa_group_ibfk_4 FOREIGN KEY (state) REFERENCES pa_group_state (id) ON UPDATE CASCADE');
- $this->addSql('ALTER TABLE pa_group ADD CONSTRAINT pa_group_ibfk_6 FOREIGN KEY (smtp_id) REFERENCES pa_smtp (id) ON UPDATE CASCADE ON DELETE SET NULL');
- $this->addSql('CREATE INDEX smtp_id ON pa_group (smtp_id)');
- $this->addSql('CREATE INDEX groupType ON pa_group (groupType)');
- $this->addSql('CREATE INDEX state ON pa_group (state)');
- $this->addSql('CREATE INDEX fk_bank_account_id ON pa_group (bank_account_id)');
- $this->addSql('CREATE INDEX objectId ON pa_group (sisId)');
- $this->addSql('ALTER TABLE pa_group_unit CHANGE group_id group_id INT UNSIGNED NOT NULL');
- }
-}
diff --git a/migrations/2019/Version20190825063512.php b/migrations/2019/Version20190825063512.php
deleted file mode 100644
index d9b3f62fd..000000000
--- a/migrations/2019/Version20190825063512.php
+++ /dev/null
@@ -1,31 +0,0 @@
-addSql('DROP INDEX unitId ON pa_smtp');
- $this->addSql(<<<'SQL'
- ALTER TABLE pa_smtp
- CHANGE secure secure VARCHAR(64) NOT NULL COMMENT '(DC2Type:string_enum)',
- CHANGE created created DATETIME NOT NULL COMMENT '(DC2Type:datetime_immutable)'
- SQL);
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql(<<<'SQL'
- ALTER TABLE pa_smtp
- CHANGE secure secure VARCHAR(64) NOT NULL COLLATE utf8_czech_ci,
- CHANGE created created DATETIME NOT NULL
- SQL);
- $this->addSql('CREATE INDEX unitId ON pa_smtp (unitId)');
- }
-}
diff --git a/migrations/2019/Version20190825132512.php b/migrations/2019/Version20190825132512.php
deleted file mode 100644
index 4677e97f2..000000000
--- a/migrations/2019/Version20190825132512.php
+++ /dev/null
@@ -1,30 +0,0 @@
-addSql(<<<'SQL'
- CREATE TABLE ac_chit_scan (
- id INT AUTO_INCREMENT NOT NULL,
- chit_id BIGINT(20) UNSIGNED NOT NULL,
- file_path VARCHAR(255) NOT NULL COMMENT '(DC2Type:file_path)',
- INDEX IDX_FEC2BFD22AEA3AE4 (chit_id),
- PRIMARY KEY(id)
- ) DEFAULT CHARACTER SET UTF8 COLLATE UTF8_unicode_ci ENGINE = InnoDB
- SQL);
- $this->addSql('ALTER TABLE ac_chit_scan ADD CONSTRAINT FK_FEC2BFD22AEA3AE4 FOREIGN KEY (chit_id) REFERENCES ac_chits (id)');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('DROP TABLE ac_chit_scan');
- }
-}
diff --git a/migrations/2019/Version20191117210220.php b/migrations/2019/Version20191117210220.php
deleted file mode 100644
index 740ce39d1..000000000
--- a/migrations/2019/Version20191117210220.php
+++ /dev/null
@@ -1,21 +0,0 @@
-addSql('ALTER TABLE `pa_payment` CHANGE `transactionId` `transactionId` varchar(64) NULL AFTER `note`;');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE `pa_payment` CHANGE `transactionId` `transactionId` int(10) unsigned NULL AFTER `note`;');
- }
-}
diff --git a/migrations/2020/Version20200101231338.php b/migrations/2020/Version20200101231338.php
deleted file mode 100644
index 63fc94581..000000000
--- a/migrations/2020/Version20200101231338.php
+++ /dev/null
@@ -1,43 +0,0 @@
-addSql(<<<'SQL'
- CREATE TABLE pa_payment_sent_emails (
- id INT UNSIGNED AUTO_INCREMENT NOT NULL,
- payment_id INT DEFAULT NULL,
- type VARCHAR(255) NOT NULL COMMENT '(DC2Type:string_enum)',
- time DATETIME NOT NULL COMMENT '(DC2Type:datetime_immutable)',
- sender_name VARCHAR(255) NOT NULL,
- INDEX IDX_95359C6C4C3A3BB (payment_id),
- PRIMARY KEY(id)
- ) DEFAULT CHARACTER SET UTF8 COLLATE `UTF8_unicode_ci` ENGINE = InnoDB
- SQL);
-
- $this->addSql('ALTER TABLE pa_payment_sent_emails ADD CONSTRAINT FK_95359C6C4C3A3BB FOREIGN KEY (payment_id) REFERENCES pa_payment (id)');
- $this->addSql(<<<'SQL'
- INSERT INTO pa_payment_sent_emails (payment_id, type, time, sender_name)
- SELECT id, 'payment_info', NOW(), 'Hospodaření' FROM pa_payment WHERE state = 'send'
- SQL);
- $this->addSql("UPDATE pa_payment SET state = 'preparing' WHERE state = 'send'");
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('DROP TABLE pa_payment_sent_emails');
- }
-}
diff --git a/migrations/2020/Version20200112173514.php b/migrations/2020/Version20200112173514.php
deleted file mode 100644
index 8abc4cf7c..000000000
--- a/migrations/2020/Version20200112173514.php
+++ /dev/null
@@ -1,69 +0,0 @@
-addSql(<<<'SQL'
- INSERT INTO `ac_chitsCategory` (`id`, `label`, `short`, `type`, `virtual`, `orderby`, `deleted`) VALUES
- (21, 'Vratka úč. poplatku - dítě', 'vrc', 'out', 1, 100, 0),
- (22, 'Vratka úč. poplatku - dospělý','vra', 'out', 1, 100, 0);
- SQL);
- $this->addSql('INSERT INTO `ac_chitsCategory_object` (`categoryId`, `objectTypeId`) VALUES (21, \'camp\'), (22, \'camp\');');
-
- $ids = $this->connection->fetchAll(<<<'SQL'
- SELECT i.id
- FROM `ac_chits_item` i
- left join ac_chit_to_item ci ON i.id = ci.item_id
- left join ac_chits c ON c.id = ci.chit_id
- LEFT JOIN ac_object o ON c.eventId = o.id
- WHERE `category` = '20' AND type ='camp'
- SQL);
-
- foreach ($ids as $row) {
- $this->connection->update(
- 'ac_chits_item',
- ['category' => 21],
- ['id' => $row['id']],
- );
- }
-
- $this->addSql('DELETE FROM `ac_chitsCategory_object` WHERE `categoryId` = \'20\' AND `objectTypeId` = \'camp\';');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('INSERT INTO `ac_chitsCategory_object` (`categoryId`, `objectTypeId`) VALUES (20, \'camp\');');
- $ids = $this->connection->fetchAll(<<<'SQL'
- SELECT i.id
- FROM `ac_chits_item` i
- left join ac_chit_to_item ci ON i.id = ci.item_id
- left join ac_chits c ON c.id = ci.chit_id
- LEFT JOIN ac_object o ON c.eventId = o.id
- WHERE (`category` = '21' OR `category` = '22') AND type ='camp'
- SQL);
-
- foreach ($ids as $row) {
- $this->connection->update(
- 'ac_chits_item',
- ['category' => 20],
- ['id' => $row['id']],
- );
- }
-
- $this->addSql('DELETE FROM `ac_chitsCategory_object` WHERE `categoryId` IN (\'21\', \'22\');');
- $this->addSql('DELETE FROM `ac_chitsCategory` WHERE `id` IN (\'21\', \'22\');');
- }
-}
diff --git a/migrations/2020/Version20200214111513.php b/migrations/2020/Version20200214111513.php
deleted file mode 100644
index 5569608cb..000000000
--- a/migrations/2020/Version20200214111513.php
+++ /dev/null
@@ -1,40 +0,0 @@
-addSql(<<<'SQL'
- ALTER TABLE ac_participants CHANGE isAccount isAccount VARCHAR(255) NOT NULL COMMENT '(DC2Type:string_enum)'
- SQL);
- $this->addSql(<<<'SQL'
- ALTER TABLE ac_chitsCategory CHANGE type type VARCHAR(255) NOT NULL COMMENT '(DC2Type:string_enum)'
- SQL);
- $this->addSql(<<<'SQL'
- ALTER TABLE ac_unit_budget_category CHANGE type type VARCHAR(255) NOT NULL COMMENT '(DC2Type:string_enum)'
- SQL);
- $this->addSql(<<<'SQL'
- ALTER TABLE log CHANGE type type VARCHAR(255) NOT NULL COMMENT '(DC2Type:string_enum)'
- SQL);
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql("ALTER TABLE ac_participants CHANGE isAccount isAccount ENUM('N', 'Y') COLLATE utf8_czech_ci DEFAULT 'N' COMMENT 'placeno na účet?'");
- $this->addSql("ALTER TABLE ac_chitsCategory CHANGE type type ENUM('in', 'out') COLLATE utf8_czech_ci NOT NULL DEFAULT 'out'");
- $this->addSql("ALTER TABLE ac_unit_budget_category CHANGE type type ENUM('in', 'out') COLLATE utf8_czech_ci NOT NULL DEFAULT 'out'");
- $this->addSql("ALTER TABLE log CHANGE type type ENUM('object', 'payment') CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL");
- }
-}
diff --git a/migrations/2020/Version20200214114359.php b/migrations/2020/Version20200214114359.php
deleted file mode 100644
index 216c05113..000000000
--- a/migrations/2020/Version20200214114359.php
+++ /dev/null
@@ -1,123 +0,0 @@
-addSql('DROP INDEX participantId_event_type ON ac_participants');
- $this->addSql(<<<'SQL'
- ALTER TABLE ac_participants
- CHANGE id id CHAR(36) NOT NULL COMMENT '(DC2Type:payment_id)',
- CHANGE participantId participantId INT UNSIGNED NOT NULL,
- CHANGE event_id event_id INT NOT NULL,
- CHANGE payment payment NUMERIC(8, 2) NOT NULL COMMENT '(DC2Type:money)',
- CHANGE repayment repayment NUMERIC(8, 2) NOT NULL COMMENT '(DC2Type:money)',
- CHANGE isAccount isAccount VARCHAR(255) NOT NULL
- SQL);
- $this->addSql('ALTER TABLE ac_chitsCategory_object DROP FOREIGN KEY ac_chitsCategory_object_ibfk_1');
- $this->addSql('ALTER TABLE ac_chitsCategory_object CHANGE objectTypeId objectTypeId VARCHAR(20) NOT NULL COMMENT \'(DC2Type:string_enum)\', ADD PRIMARY KEY (categoryId, objectTypeId)');
- $this->addSql('ALTER TABLE ac_chitsCategory_object ADD CONSTRAINT FK_824C4F259C370B71 FOREIGN KEY (categoryId) REFERENCES ac_chitsCategory (id)');
- $this->addSql('ALTER TABLE ac_chitsCategory_object RENAME INDEX categoryid TO IDX_824C4F259C370B71');
- $this->addSql('ALTER TABLE ac_chits_item CHANGE price price DOUBLE PRECISION UNSIGNED NOT NULL');
- $this->addSql('ALTER TABLE ac_chit_scan DROP FOREIGN KEY FK_FEC2BFD22AEA3AE4');
- $this->addSql('ALTER TABLE ac_chit_scan CHANGE chit_id chit_id INT UNSIGNED DEFAULT NULL');
-
- $this->addSql('DROP INDEX category ON ac_chits');
- $this->addSql('ALTER TABLE ac_chit_to_item DROP FOREIGN KEY FK_2EA9AB792AEA3AE4');
-
- $this->addSql(<<<'SQL'
- ALTER TABLE ac_chits
- DROP x_purpose,
- DROP x_price,
- DROP x_priceText,
- DROP x_category,
- DROP x_category_operation_type,
- CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL,
- CHANGE eventId eventId CHAR(36) DEFAULT NULL COMMENT '(DC2Type:cashbook_id)',
- CHANGE num num VARCHAR(5) DEFAULT NULL COMMENT '(DC2Type:chit_number)',
- CHANGE date date DATE NOT NULL COMMENT '(DC2Type:chronos_date)',
- CHANGE recipient recipient VARCHAR(64) DEFAULT NULL COMMENT '(DC2Type:recipient)',
- CHANGE payment_method payment_method VARCHAR(13) NOT NULL COMMENT '(DC2Type:string_enum)'
- SQL);
-
- $this->addSql('ALTER TABLE ac_chit_scan ADD CONSTRAINT FK_FEC2BFD22AEA3AE4 FOREIGN KEY (chit_id) REFERENCES ac_chits (id)');
- $this->addSql('ALTER TABLE ac_chits ADD CONSTRAINT FK_DBBC2DBC2B2EBB6C FOREIGN KEY (eventId) REFERENCES ac_cashbook (id)');
- $this->addSql('ALTER TABLE ac_chits RENAME INDEX eventid TO IDX_DBBC2DBC2B2EBB6C');
- $this->addSql('ALTER TABLE ac_chit_to_item DROP FOREIGN KEY FK_2EA9AB79126F525E');
- $this->addSql('ALTER TABLE ac_chit_to_item CHANGE chit_id chit_id INT UNSIGNED NOT NULL');
- $this->addSql('ALTER TABLE ac_chit_to_item ADD CONSTRAINT FK_2EA9AB79126F525E FOREIGN KEY (item_id) REFERENCES ac_chits_item (id) ON DELETE CASCADE');
- $this->addSql('ALTER TABLE ac_chit_to_item ADD CONSTRAINT FK_2EA9AB792AEA3AE4 FOREIGN KEY (chit_id) REFERENCES ac_chits (id) ON DELETE CASCADE');
- $this->addSql('ALTER TABLE ac_chits DROP FOREIGN KEY FK_DBBC2DBC2B2EBB6C');
- $this->addSql('ALTER TABLE ac_cashbook CHANGE id id CHAR(36) NOT NULL COMMENT \'(DC2Type:cashbook_id)\'');
- $this->addSql('ALTER TABLE ac_chits ADD CONSTRAINT FK_DBBC2DBC2B2EBB6C FOREIGN KEY (eventId) references ac_cashbook (id)');
-
- $this->addSql('ALTER TABLE ac_chitsCategory RENAME INDEX short TO UNIQ_43247D658F2890A2');
- $this->addSql('ALTER TABLE ac_unit_budget_category DROP FOREIGN KEY ac_unit_budget_category_ibfk_4');
- $this->addSql('ALTER TABLE ac_unit_budget_category DROP deleted');
- $this->addSql('ALTER TABLE ac_unit_budget_category ADD CONSTRAINT FK_356BCD1F10EE4CEE FOREIGN KEY (parentId) REFERENCES ac_unit_budget_category (id)');
- $this->addSql('ALTER TABLE ac_unit_budget_category RENAME INDEX parentid TO IDX_356BCD1F10EE4CEE');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE ac_cashbook CHANGE id id VARCHAR(36) CHARACTER SET utf8 NOT NULL COLLATE `utf8_czech_ci`');
- $this->addSql('ALTER TABLE ac_chit_scan CHANGE chit_id chit_id BIGINT UNSIGNED NOT NULL');
- $this->addSql('ALTER TABLE ac_chit_to_item DROP FOREIGN KEY FK_2EA9AB792AEA3AE4');
- $this->addSql('ALTER TABLE ac_chit_to_item DROP FOREIGN KEY FK_2EA9AB79126F525E');
- $this->addSql('ALTER TABLE ac_chit_to_item CHANGE chit_id chit_id BIGINT UNSIGNED NOT NULL');
- $this->addSql('ALTER TABLE ac_chit_to_item ADD CONSTRAINT FK_2EA9AB792AEA3AE4 FOREIGN KEY (chit_id) REFERENCES ac_chits (id) ON DELETE CASCADE');
- $this->addSql('ALTER TABLE ac_chit_to_item ADD CONSTRAINT FK_2EA9AB79126F525E FOREIGN KEY (item_id) REFERENCES ac_chits_item (id) ON DELETE CASCADE');
-
- $this->addSql('ALTER TABLE ac_chits DROP FOREIGN KEY FK_DBBC2DBC2B2EBB6C');
- $this->addSql(<<<'SQL'
- ALTER TABLE ac_chits
- ADD x_purpose VARCHAR(120) CHARACTER SET utf8 DEFAULT NULL COLLATE `utf8_czech_ci`,
- ADD x_price DOUBLE PRECISION DEFAULT NULL,
- ADD x_priceText VARCHAR(100) CHARACTER SET utf8 DEFAULT NULL COLLATE `utf8_czech_ci`,
- ADD x_category INT UNSIGNED DEFAULT NULL,
- ADD x_category_operation_type VARCHAR(255) CHARACTER SET utf8 DEFAULT NULL COLLATE `utf8_czech_ci` COMMENT '(DC2Type:string_enum)',
- CHANGE id id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL,
- CHANGE payment_method payment_method VARCHAR(13) CHARACTER SET utf8 NOT NULL COLLATE `utf8_czech_ci`,
- CHANGE num num VARCHAR(5) CHARACTER SET utf8 DEFAULT NULL COLLATE `utf8_czech_ci`,
- CHANGE date date DATE NOT NULL,
- CHANGE recipient recipient VARCHAR(64) CHARACTER SET utf8 DEFAULT NULL COLLATE `utf8_czech_ci`,
- CHANGE eventId eventId VARCHAR(36) CHARACTER SET utf8 DEFAULT NULL COLLATE `utf8_czech_ci`
- SQL);
-
- $this->addSql('CREATE INDEX category ON ac_chits (x_category)');
- $this->addSql('ALTER TABLE ac_chits RENAME INDEX idx_dbbc2dbc2b2ebb6c TO eventId');
- $this->addSql('ALTER TABLE ac_chitsCategory RENAME INDEX UNIQ_43247D658F2890A2 TO short');
- $this->addSql('ALTER TABLE ac_chitsCategory_object DROP FOREIGN KEY FK_824C4F259C370B71');
- $this->addSql('ALTER TABLE ac_chitsCategory_object DROP PRIMARY KEY');
- $this->addSql('ALTER TABLE ac_chitsCategory_object CHANGE objectTypeId objectTypeId VARCHAR(20) CHARACTER SET utf8 NOT NULL COLLATE `utf8_czech_ci`');
- $this->addSql('ALTER TABLE ac_chitsCategory_object ADD CONSTRAINT ac_chitsCategory_object_ibfk_1 FOREIGN KEY (categoryId) REFERENCES ac_chitsCategory (id) ON UPDATE CASCADE ON DELETE CASCADE');
- $this->addSql('ALTER TABLE ac_chitsCategory_object RENAME INDEX idx_824c4f259c370b71 TO categoryId');
- $this->addSql('ALTER TABLE ac_chits_item CHANGE price price DOUBLE PRECISION NOT NULL');
- $this->addSql(<<<'SQL'
- ALTER TABLE ac_participants
- CHANGE id id VARCHAR(36) CHARACTER SET utf8 NOT NULL COLLATE `utf8_czech_ci`,
- CHANGE participantId participantId INT UNSIGNED NOT NULL COMMENT 'ID',
- CHANGE payment payment DOUBLE PRECISION UNSIGNED NOT NULL,
- CHANGE repayment repayment DOUBLE PRECISION UNSIGNED NOT NULL,
- CHANGE isAccount isAccount VARCHAR(255) CHARACTER SET utf8 DEFAULT NULL COLLATE `utf8_czech_ci`,
- CHANGE event_id event_id INT UNSIGNED DEFAULT NULL
- SQL);
- $this->addSql('CREATE UNIQUE INDEX participantId_event_type ON ac_participants (participantId, event_type)');
- $this->addSql('ALTER TABLE ac_unit_budget_category DROP FOREIGN KEY FK_356BCD1F10EE4CEE');
- $this->addSql('ALTER TABLE ac_unit_budget_category ADD deleted TINYINT(1) DEFAULT \'0\' NOT NULL');
- $this->addSql('ALTER TABLE ac_unit_budget_category ADD CONSTRAINT ac_unit_budget_category_ibfk_4 FOREIGN KEY (parentId) REFERENCES ac_unit_budget_category (id) ON UPDATE CASCADE');
- $this->addSql('ALTER TABLE ac_unit_budget_category RENAME INDEX idx_356bcd1f10ee4cee TO parentId');
- }
-}
diff --git a/migrations/2020/Version20200214130535.php b/migrations/2020/Version20200214130535.php
deleted file mode 100644
index 9ae63da66..000000000
--- a/migrations/2020/Version20200214130535.php
+++ /dev/null
@@ -1,40 +0,0 @@
-addSql('ALTER TABLE tc_vehicle_roadworthy_scan CHANGE file_path file_path VARCHAR(255) NOT NULL COMMENT \'(DC2Type:file_path)\'');
- $this->addSql(<<<'SQL'
- ALTER TABLE tc_contracts
- CHANGE driver_birthday driver_birthday DATE DEFAULT NULL COMMENT '(DC2Type:chronos_date)',
- CHANGE start start DATE DEFAULT NULL COMMENT '(DC2Type:chronos_date)',
- CHANGE end end DATE DEFAULT NULL COMMENT '(DC2Type:chronos_date)'
- SQL);
- $this->addSql('ALTER TABLE log CHANGE date date DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\'');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE log CHANGE date date DATETIME NOT NULL');
- $this->addSql(<<<'SQL'
- ALTER TABLE tc_contracts
- CHANGE start start DATE DEFAULT NULL,
- CHANGE end end DATE DEFAULT NULL,
- CHANGE driver_birthday driver_birthday DATE DEFAULT NULL
- SQL);
- $this->addSql('ALTER TABLE tc_vehicle_roadworthy_scan CHANGE file_path file_path VARCHAR(255) CHARACTER SET utf8 NOT NULL COLLATE `utf8_unicode_ci`');
- }
-}
diff --git a/migrations/2020/Version20200323131412.php b/migrations/2020/Version20200323131412.php
deleted file mode 100644
index c86565efb..000000000
--- a/migrations/2020/Version20200323131412.php
+++ /dev/null
@@ -1,54 +0,0 @@
- 'airplane',
- 'p' => 'on_foot',
- 'mov' => 'motorcycle',
- 'o' => 'train',
- 'r' => 'express_train',
- 'a' => 'bus',
- 'auv' => 'car',
- ];
-
- public function getDescription(): string
- {
- return 'Map transport type as regular types instead of entities';
- }
-
- public function up(Schema $schema): void
- {
- $this->addSql('ALTER TABLE tc_command_types DROP FOREIGN KEY FK_DC7EBB9BF49490');
- $this->addSql('ALTER TABLE tc_commands ADD transport_types JSON NOT NULL COMMENT \'(DC2Type:transport_types)\'');
- $this->addSql('ALTER TABLE tc_travels CHANGE type type VARCHAR(255) NOT NULL COMMENT \'(DC2Type:string_enum)\'');
-
- $this->addSql('ALTER TABLE tc_command_types CHANGE typeId typeId VARCHAR(255) NOT NULL');
-
- foreach (self::RENAMED_TYPES as $original => $new) {
- $this->addSql('UPDATE tc_command_types SET typeId = ? WHERE typeId = ?', [$new, $original]);
- $this->addSql('UPDATE tc_travels SET type = ? WHERE type = ?', [$new, $original]);
- }
-
- $this->addSql(<<<'SQL'
- UPDATE tc_commands c
- SET transport_types = (SELECT JSON_ARRAYAGG(typeId) FROM tc_command_types WHERE commandId = c.id)
- SQL);
-
- $this->addSql('DROP TABLE tc_command_types');
- $this->addSql('DROP TABLE tc_travelTypes');
- }
-
- public function down(Schema $schema): void
- {
- // Since MySQL does not support unnest() function or any equivalent, this would be cumbersome to implement.
- // Backup was performed instead before deployment
- }
-}
diff --git a/migrations/2020/Version20200330183259.php b/migrations/2020/Version20200330183259.php
deleted file mode 100644
index cde206275..000000000
--- a/migrations/2020/Version20200330183259.php
+++ /dev/null
@@ -1,28 +0,0 @@
-addSql('ALTER TABLE tc_travels ADD price NUMERIC(8, 2) DEFAULT NULL COMMENT \'(DC2Type:money)\'');
- $this->addSql('UPDATE tc_travels SET price = distance, distance = NULL WHERE has_fuel = 0');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('UPDATE tc_travels SET distance = price WHERE price IS NOT NULL');
- $this->addSql('ALTER TABLE tc_travels DROP price');
- }
-}
diff --git a/migrations/2020/Version20200406114332.php b/migrations/2020/Version20200406114332.php
deleted file mode 100644
index 113255e07..000000000
--- a/migrations/2020/Version20200406114332.php
+++ /dev/null
@@ -1,60 +0,0 @@
-addSql('UPDATE tc_commands SET fuel_price = fuel_price * 100, amortization = amortization * 100');
- $this->addSql(<<<'SQL'
- ALTER TABLE tc_commands
- CHANGE fuel_price fuel_price INT NOT NULL COMMENT '(DC2Type:money)',
- CHANGE amortization amortization INT NOT NULL COMMENT '(DC2Type:money)'
- SQL);
-
- $this->addSql('UPDATE ac_participants SET payment = payment * 100, repayment = repayment * 100');
- $this->addSql(<<<'SQL'
- ALTER TABLE ac_participants
- CHANGE payment payment INT NOT NULL COMMENT '(DC2Type:money)',
- CHANGE repayment repayment INT NOT NULL COMMENT '(DC2Type:money)'
- SQL);
-
- $this->addSql('UPDATE tc_travels SET price = price * 100');
- $this->addSql(<<<'SQL'
- ALTER TABLE tc_travels CHANGE price price INT DEFAULT NULL COMMENT '(DC2Type:money)'
- SQL);
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql(<<<'SQL'
- ALTER TABLE ac_participants
- CHANGE payment payment NUMERIC(8, 2) NOT NULL COMMENT '(DC2Type:money)',
- CHANGE repayment repayment NUMERIC(8, 2) NOT NULL COMMENT '(DC2Type:money)'
- SQL);
- $this->addSql('UPDATE ac_participants SET payment = payment / 100, repayment = repayment / 100');
-
- $this->addSql(<<<'SQL'
- ALTER TABLE tc_commands
- CHANGE fuel_price fuel_price NUMERIC(8, 2) NOT NULL COMMENT '(DC2Type:money)',
- CHANGE amortization amortization NUMERIC(8, 2) NOT NULL COMMENT '(DC2Type:money)'
- SQL);
- $this->addSql('UPDATE tc_commands SET fuel_price = fuel_price / 100, amortization = amortization / 100');
-
- $this->addSql(<<<'SQL'
- ALTER TABLE tc_travels CHANGE price price NUMERIC(8, 2) DEFAULT NULL COMMENT '(DC2Type:money)'
- SQL);
- $this->addSql('UPDATE tc_travels SET price = price / 100');
- }
-}
diff --git a/migrations/2020/Version20200410190351.php b/migrations/2020/Version20200410190351.php
deleted file mode 100644
index 9e5edeb94..000000000
--- a/migrations/2020/Version20200410190351.php
+++ /dev/null
@@ -1,22 +0,0 @@
-addSql('ALTER TABLE `pa_payment` ADD `closed_by_username` varchar(64) NULL AFTER `dateClosed`;');
- $this->addSql('UPDATE `pa_payment` SET closed_by_username = "Hospodaření" WHERE transaction_payer IS NULL AND state = "completed"');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE `pa_payment` DROP `closed_by_username`;');
- }
-}
diff --git a/migrations/2020/Version20200411105206.php b/migrations/2020/Version20200411105206.php
deleted file mode 100644
index 61976c475..000000000
--- a/migrations/2020/Version20200411105206.php
+++ /dev/null
@@ -1,42 +0,0 @@
-connection->fetchAll('SELECT id FROM `ac_object` WHERE length(id) < 36');
- $this->connection->beginTransaction();
- try {
- foreach ($cashbookIds as $cashbookId) {
- $ids = [Uuid::uuid4()->toString(), $cashbookId['id']];
-
- $this->addSql('UPDATE ac_object SET id = ? WHERE id = ?', $ids);
- $this->addSql('UPDATE ac_cashbook SET id = ? WHERE id = ?', $ids);
- $this->addSql('UPDATE ac_chits SET eventId = ? WHERE eventId = ?', $ids);
- $this->addSql('UPDATE ac_unit_cashbooks SET cashbook_id = ? WHERE cashbook_id = ?', $ids);
- }
-
- $this->connection->commit();
- } catch (Throwable) {
- $this->connection->rollBack();
- }
- }
-
- public function down(Schema $schema): void
- {
- }
-}
diff --git a/migrations/2020/Version20200508102927.php b/migrations/2020/Version20200508102927.php
deleted file mode 100644
index 13cedbdef..000000000
--- a/migrations/2020/Version20200508102927.php
+++ /dev/null
@@ -1,24 +0,0 @@
-addSql('ALTER TABLE `ac_cashbook` ADD `bank_chit_number_prefix` varchar(255) COLLATE \'utf8_czech_ci\' NULL AFTER `chit_number_prefix`;');
- $this->addSql('ALTER TABLE `ac_cashbook` CHANGE `chit_number_prefix` `cash_chit_number_prefix` varchar(255) COLLATE \'utf8_czech_ci\' NULL AFTER `type`;');
- $this->addSql('UPDATE `ac_cashbook` SET `bank_chit_number_prefix`=`cash_chit_number_prefix` ');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE `ac_cashbook` CHANGE `cash_chit_number_prefix` `chit_number_prefix` varchar(255) COLLATE \'utf8_czech_ci\' NULL AFTER `type`;');
- $this->addSql('ALTER TABLE `ac_cashbook` DROP `bank_chit_number_prefix`;');
- }
-}
diff --git a/migrations/2020/Version20200724125509.php b/migrations/2020/Version20200724125509.php
deleted file mode 100644
index 5e1dd63bc..000000000
--- a/migrations/2020/Version20200724125509.php
+++ /dev/null
@@ -1,36 +0,0 @@
-addSql(<<<'SQL'
- CREATE TABLE google_oauth (
- id CHAR(36) NOT NULL COMMENT '(DC2Type:ouath_id)',
- unit_id CHAR(36) NOT NULL COMMENT '(DC2Type:unit_id)',
- email VARCHAR(255) NOT NULL,
- token VARCHAR(255) NOT NULL,
- updated_at DATETIME NOT NULL COMMENT '(DC2Type:datetime_immutable)',
- UNIQUE INDEX unitid_email (unit_id, email),
- PRIMARY KEY(id)
- ) DEFAULT CHARACTER SET UTF8 COLLATE `UTF8_unicode_ci` ENGINE = InnoDB
-SQL);
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('DROP TABLE oauth');
- }
-}
diff --git a/migrations/2020/Version20200729121516.php b/migrations/2020/Version20200729121516.php
deleted file mode 100644
index 407268261..000000000
--- a/migrations/2020/Version20200729121516.php
+++ /dev/null
@@ -1,21 +0,0 @@
-addSql('ALTER TABLE pa_group ADD oauth_id CHAR(36) DEFAULT NULL COMMENT \'(DC2Type:ouath_id)\'');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE pa_group DROP oauth_id');
- }
-}
diff --git a/migrations/2020/Version20201126130912.php b/migrations/2020/Version20201126130912.php
deleted file mode 100644
index 3daa712a8..000000000
--- a/migrations/2020/Version20201126130912.php
+++ /dev/null
@@ -1,28 +0,0 @@
-addSql("ALTER TABLE google_oauth MODIFY COLUMN id CHAR(36) NOT NULL COMMENT '(DC2Type:oauth_id)'");
- $this->addSql("ALTER TABLE pa_group MODIFY COLUMN oauth_id CHAR(36) DEFAULT NULL COMMENT '(DC2Type:oauth_id)'");
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql("ALTER TABLE google_oauth MODIFY COLUMN id CHAR(36) NOT NULL COMMENT '(DC2Type:ouath_id)'");
- $this->addSql("ALTER TABLE pa_group MODIFY COLUMN oauth_id CHAR(36) DEFAULT NULL COMMENT '(DC2Type:ouath_id)'");
- }
-}
diff --git a/migrations/2020/Version20201128164940.php b/migrations/2020/Version20201128164940.php
deleted file mode 100644
index 8daa0e1c8..000000000
--- a/migrations/2020/Version20201128164940.php
+++ /dev/null
@@ -1,49 +0,0 @@
-addSql(<<<'SQL'
- CREATE TABLE pa_payment_email_recipients (
- id INT UNSIGNED AUTO_INCREMENT NOT NULL,
- payment_id INT DEFAULT NULL,
- email_address VARCHAR(255) NOT NULL COMMENT '(DC2Type:email_address)',
- INDEX IDX_A3FBD6514C3A3BB (payment_id),
- PRIMARY KEY(id)) DEFAULT CHARACTER SET UTF8 COLLATE `UTF8_unicode_ci` ENGINE = InnoDB
-SQL);
- $this->addSql('ALTER TABLE pa_payment_email_recipients ADD CONSTRAINT FK_A3FBD6514C3A3BB FOREIGN KEY (payment_id) REFERENCES pa_payment (id)');
- }
-
- public function postUp(Schema $schema): void
- {
- $paymentsPairs = $this->connection->fetchAllKeyValue('SELECT id, email FROM pa_payment');
- foreach ($paymentsPairs as $paymentId => $email) {
- if ($email === null) {
- continue;
- }
-
- $this->connection->insert('pa_payment_email_recipients', [
- 'payment_id' => $paymentId,
- 'email_address' => $email,
- ]);
- }
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('DROP TABLE pa_payment_email_recipients');
- }
-}
diff --git a/migrations/2021/Version20210109123938.php b/migrations/2021/Version20210109123938.php
deleted file mode 100644
index 171eaf8cf..000000000
--- a/migrations/2021/Version20210109123938.php
+++ /dev/null
@@ -1,61 +0,0 @@
-connection->beginTransaction();
- $this->addSql('CREATE TABLE ac_camp_cashbooks (id CHAR(36) NOT NULL COMMENT \'(DC2Type:skautis_camp_id)\', cashbook_id CHAR(36) NOT NULL COMMENT \'(DC2Type:cashbook_id)\', PRIMARY KEY(id)) DEFAULT CHARACTER SET UTF8 COLLATE `UTF8_unicode_ci` ENGINE = InnoDB');
- $this->addSql('CREATE TABLE ac_event_cashbooks (id CHAR(36) NOT NULL COMMENT \'(DC2Type:skautis_event_id)\', cashbook_id CHAR(36) NOT NULL COMMENT \'(DC2Type:cashbook_id)\', PRIMARY KEY(id)) DEFAULT CHARACTER SET UTF8 COLLATE `UTF8_unicode_ci` ENGINE = InnoDB');
-
- $this->addSql(<<<'SQL'
- INSERT INTO ac_camp_cashbooks (id, cashbook_id)
- SELECT skautisId as id, id as cashbook_id FROM ac_object WHERE type = 'camp'
- SQL);
-
- $this->addSql(<<<'SQL'
- INSERT INTO ac_event_cashbooks (id, cashbook_id)
- SELECT skautisId as id, id as cashbook_id FROM ac_object WHERE type = 'general'
- SQL);
-
- $this->addSql('DROP TABLE ac_object');
- $this->connection->commit();
- }
-
- public function down(Schema $schema): void
- {
- $this->connection->beginTransaction();
- $this->addSql(<<<'SQL'
- CREATE TABLE `ac_object` (
- `id` varchar(36) COLLATE utf8_czech_ci NOT NULL,
- `skautisId` int unsigned NOT NULL,
- `type` varchar(20) CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL,
- PRIMARY KEY (`id`),
- UNIQUE KEY `skautisId_type` (`skautisId`,`type`),
- KEY `type` (`type`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
- SQL);
-
- $this->addSql(<<<'SQL'
- INSERT INTO ac_object (id, skautisId, `type`)
- SELECT cashbook_id, id, 'general' as type FROM `ac_event_cashbooks`
-
- SQL);
-
- $this->addSql(<<<'SQL'
- INSERT INTO ac_object (id, skautisId, `type`)
- SELECT cashbook_id, id, 'camp' as type FROM `ac_camp_cashbooks`
- SQL);
-
- $this->addSql('DROP TABLE ac_camp_cashbooks');
- $this->addSql('DROP TABLE ac_event_cashbooks');
- $this->connection->commit();
- }
-}
diff --git a/migrations/2021/Version20210109150939.php b/migrations/2021/Version20210109150939.php
deleted file mode 100644
index 4113b6bee..000000000
--- a/migrations/2021/Version20210109150939.php
+++ /dev/null
@@ -1,38 +0,0 @@
-addSql('DROP TABLE pa_smtp');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql(<<<'SQL'
- CREATE TABLE pa_smtp (
- id INT UNSIGNED AUTO_INCREMENT NOT NULL,
- unitId INT UNSIGNED NOT NULL,
- host VARCHAR(255) CHARACTER SET utf8 NOT NULL COLLATE `utf8_czech_ci`,
- username VARCHAR(255) CHARACTER SET utf8 NOT NULL COLLATE `utf8_czech_ci`,
- password VARCHAR(255) CHARACTER SET utf8 NOT NULL COLLATE `utf8_czech_ci`,
- secure VARCHAR(64) CHARACTER SET utf8 NOT NULL COLLATE `utf8_czech_ci` COMMENT '(DC2Type:string_enum)',
- sender VARCHAR(255) CHARACTER SET utf8 NOT NULL COLLATE `utf8_czech_ci`,
- created DATETIME NOT NULL COMMENT '(DC2Type:datetime_immutable)',
- PRIMARY KEY(id)
- ) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB COMMENT = ''
-SQL);
- }
-}
diff --git a/migrations/2021/Version20210205181552.php b/migrations/2021/Version20210205181552.php
deleted file mode 100644
index 011f2ed16..000000000
--- a/migrations/2021/Version20210205181552.php
+++ /dev/null
@@ -1,180 +0,0 @@
-addSql(<<<'SQL'
- ALTER TABLE `ac_chitsCategory`
- CHANGE `label` `name` varchar(64) NOT NULL,
- CHANGE `short` `shortcut` varchar(64) NOT NULL,
- CHANGE `type` `operation_type` varchar(64) NOT NULL COMMENT '(DC2Type:string_enum)',
- CHANGE `orderby` `priority` smallint NOT NULL
- ;
- SQL);
-
- $this->addSql(<<<'SQL'
- ALTER TABLE `ac_chits` CHANGE `lock` `locked` int NULL;
- SQL);
- $this->addSql(<<<'SQL'
- ALTER TABLE `tc_commands`
- CHANGE `passengers` `fellow_passengers` varchar(64) COLLATE 'utf8_czech_ci' NOT NULL,
- CHANGE `closed` `closed_at` datetime NULL COMMENT '(DC2Type:datetime_immutable)';
- SQL);
-
- $this->addSql(<<<'SQL'
- ALTER TABLE `tc_contracts`
- CHANGE `unit_person` `unit_representative` varchar(64) COLLATE 'utf8_czech_ci' NOT NULL COMMENT 'jméno osoby zastupující jednotku',
- CHANGE `start` `since` date NULL COMMENT '(DC2Type:chronos_date)',
- CHANGE `end` `until` date NULL COMMENT '(DC2Type:chronos_date)',
- CHANGE `template` `template_version` smallint NOT NULL COMMENT '1-old, 2-podle NOZ';
- SQL);
-
- $this->addSql(<<<'SQL'
- ALTER TABLE `pa_group`
- CHANGE `label` `name` varchar(64) COLLATE 'utf8_czech_ci' NOT NULL,
- CHANGE `state_info` `note` varchar(250) COLLATE 'utf8_czech_ci' NOT NULL;
- SQL);
-
- $this->addSql(<<<'SQL'
- ALTER TABLE `log`
- CHANGE `unitId` `unit_id` int NOT NULL,
- CHANGE `userId` `user_id` int NOT NULL,
- CHANGE `type` `type` varchar(255) COLLATE 'utf8_czech_ci' NOT NULL COMMENT '(DC2Type:string_enum)',
- CHANGE `typeId` `type_id` int NULL;
- SQL);
-
- $this->addSql(<<<'SQL'
- ALTER TABLE `ac_chitsCategory_object`
- CHANGE `categoryId` `category_id` int unsigned NOT NULL,
- CHANGE `objectTypeId` `type` varchar(20) COLLATE 'utf8_general_ci' NOT NULL COMMENT '(DC2Type:string_enum)';
- SQL);
-
- $this->addSql(<<<'SQL'
- ALTER TABLE `ac_participants`
- CHANGE `participantId` `participant_id` int NOT NULL AFTER `id`,
- CHANGE `isAccount` `account` varchar(255) COLLATE 'utf8_czech_ci' NOT NULL AFTER `repayment`;
- SQL);
-
- $this->addSql(<<<'SQL'
- ALTER TABLE `pa_payment`
- CHANGE `groupId` `group_id` int NOT NULL AFTER `id`,
- CHANGE `personId` `person_id` int NULL AFTER `email`,
- CHANGE `maturity` `due_date` date NOT NULL COMMENT '(DC2Type:chronos_date)' AFTER `amount`,
- CHANGE `vs` `variable_symbol` varchar(10) COLLATE 'utf8_czech_ci' NULL COMMENT '(DC2Type:variable_symbol)' AFTER `due_date`,
- CHANGE `ks` `constant_symbol` smallint NULL AFTER `variable_symbol`,
- CHANGE `dateClosed` `closed_at` datetime NULL COMMENT '(DC2Type:datetime_immutable)' AFTER `transactionId`,
- CHANGE `paidFrom` `bank_account` varchar(64) COLLATE 'utf8_czech_ci' NULL AFTER `closed_by_username`;;
- SQL);
-
- $this->addSql(<<<'SQL'
- ALTER TABLE `pa_group`
- CHANGE `maturity` `due_date` date NULL COMMENT '(DC2Type:chronos_date)' AFTER `amount`,
- CHANGE `ks` `constant_symbol` int NULL AFTER `due_date`,
- CHANGE `nextVs` `next_variable_symbol` varchar(255) COLLATE 'utf8_czech_ci' NULL COMMENT '(DC2Type:variable_symbol)' AFTER `constant_symbol`;
- SQL);
-
- $this->addSql(<<<'SQL'
- ALTER TABLE `tc_travels`
- CHANGE `type` `transport_type` varchar(255) COLLATE 'utf8_czech_ci' NOT NULL COMMENT '(DC2Type:string_enum)' AFTER `distance`;
- SQL);
-
- $this->addSql('ALTER TABLE ac_chitsCategory RENAME INDEX uniq_43247d658f2890a2 TO UNIQ_43247D652EF83F9C');
- $this->addSql('ALTER TABLE ac_chitsCategory RENAME INDEX orderby TO priority');
- $this->addSql('ALTER TABLE ac_chitsCategory_object RENAME INDEX idx_824c4f259c370b71 TO IDX_824C4F2512469DE2');
- $this->addSql('ALTER TABLE ac_chitsCategory_object RENAME INDEX objecttypeid TO type');
- $this->addSql('ALTER TABLE ac_participants RENAME INDEX actionid TO eventId');
- $this->addSql('ALTER TABLE ac_unit_budget_category RENAME INDEX objectid_year TO unitId_year');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql(<<<'SQL'
- ALTER TABLE `ac_chitsCategory`
- CHANGE `name` `label` varchar(64) NOT NULL,
- CHANGE `shortcut` `short` varchar(64) NOT NULL,
- CHANGE `operation_type` `type` varchar(255) NOT NULL,
- CHANGE `priority` `orderby` smallint unsigned NOT NULL;
- SQL);
-
- $this->addSql(<<<'SQL'
- ALTER TABLE `ac_chits` CHANGE `locked` `lock` int unsigned NULL;
- SQL);
-
- $this->addSql(<<<'SQL'
- ALTER TABLE `tc_commands`
- CHANGE `fellow_passengers` `passengers` varchar(64) COLLATE 'utf8_czech_ci' NOT NULL,
- CHANGE `closed_at` `closed` datetime NULL COMMENT '(DC2Type:datetime_immutable)';
- SQL);
-
- $this->addSql(<<<'SQL'
- ALTER TABLE `tc_contracts`
- CHANGE `unit_representative` `unit_person` varchar(64) COLLATE 'utf8_czech_ci' NOT NULL COMMENT 'jméno osoby zastupující jednotku',
- CHANGE `since` `start` date NULL COMMENT '(DC2Type:chronos_date)',
- CHANGE `until` `end` date NULL COMMENT '(DC2Type:chronos_date)',
- CHANGE `template_version` `template` smallint NOT NULL COMMENT '1-old, 2-podle NOZ';
- SQL);
-
- $this->addSql(<<<'SQL'
- ALTER TABLE `pa_group`
- CHANGE `name` `label` varchar(64) COLLATE 'utf8_czech_ci' NOT NULL,
- CHANGE `note` `state_info` varchar(250) COLLATE 'utf8_czech_ci' NOT NULL;
- SQL);
-
- $this->addSql(<<<'SQL'
- ALTER TABLE `log`
- CHANGE `unit_id` `unitId` int unsigned NOT NULL AFTER `id`,
- CHANGE `user_id` `userId` int unsigned NOT NULL AFTER `date`,
- CHANGE `type_id` `typeId` int unsigned NULL AFTER `type`;
- SQL);
-
- $this->addSql(<<<'SQL'
- ALTER TABLE `ac_chitsCategory_object`
- CHANGE `category_id` `categoryId` int unsigned NOT NULL,
- CHANGE `type` `objectTypeId` varchar(20) COLLATE 'utf8_general_ci' NOT NULL COMMENT '(DC2Type:string_enum)';
- SQL);
-
- $this->addSql(<<<'SQL'
- ALTER TABLE `ac_participants`
- CHANGE `participant_id` `participantId` int unsigned NOT NULL AFTER `id`,
- CHANGE `account` `isAccount` varchar(255) COLLATE 'utf8_czech_ci' NOT NULL AFTER `repayment`;
- SQL);
-
- $this->addSql(<<<'SQL'
- ALTER TABLE `pa_payment`
- CHANGE `group_id` `groupId` int unsigned NOT NULL AFTER `id`,
- CHANGE `person_id` `personId` int NULL AFTER `email`,
- CHANGE `due_date` `maturity` date NOT NULL COMMENT '(DC2Type:chronos_date)' AFTER `amount`,
- CHANGE `variable_symbol` `vs` varchar(10) COLLATE 'utf8_czech_ci' NULL COMMENT '(DC2Type:variable_symbol)' AFTER `maturity`,
- CHANGE `constant_symbol` `ks` smallint unsigned NULL AFTER `vs`,
- CHANGE `closed_at` `dateClosed` datetime NULL COMMENT '(DC2Type:datetime_immutable)' AFTER `transactionId`,
- CHANGE `bank_account` `paidFrom` varchar(64) COLLATE 'utf8_czech_ci' NULL AFTER `closed_by_username`;
- SQL);
-
- $this->addSql(<<<'SQL'
- ALTER TABLE `pa_group`
- CHANGE `due_date` `maturity` date NULL COMMENT '(DC2Type:chronos_date)' AFTER `amount`,
- CHANGE `constant_symbol` `ks` int unsigned NULL AFTER `maturity`,
- CHANGE `next_variable_symbol` `nextVs` varchar(255) COLLATE 'utf8_czech_ci' NULL COMMENT '(DC2Type:variable_symbol)' AFTER `ks`;
- SQL);
-
- $this->addSql(<<<'SQL'
- ALTER TABLE `tc_travels`
- CHANGE `transport_type` `type` varchar(255) COLLATE 'utf8_czech_ci' NOT NULL COMMENT '(DC2Type:string_enum)' AFTER `distance`;
- SQL);
-
- $this->addSql('ALTER TABLE ac_chitsCategory RENAME INDEX priority TO orderby');
- $this->addSql('ALTER TABLE ac_chitsCategory RENAME INDEX uniq_43247d652ef83f9c TO UNIQ_43247D658F2890A2');
- $this->addSql('ALTER TABLE ac_chitsCategory_object RENAME INDEX idx_824c4f2512469de2 TO IDX_824C4F259C370B71');
- $this->addSql('ALTER TABLE ac_chitsCategory_object RENAME INDEX type TO objectTypeId');
- $this->addSql('ALTER TABLE ac_participants RENAME INDEX eventid TO actionId');
- $this->addSql('ALTER TABLE ac_unit_budget_category RENAME INDEX unitid_year TO objectId_year');
- }
-}
diff --git a/migrations/2021/Version20210206080027.php b/migrations/2021/Version20210206080027.php
deleted file mode 100644
index 561fde60e..000000000
--- a/migrations/2021/Version20210206080027.php
+++ /dev/null
@@ -1,93 +0,0 @@
-dropForeignKeys();
-
- $this->addSql('ALTER TABLE ac_chits CHANGE id id INT AUTO_INCREMENT NOT NULL');
- $this->addSql('ALTER TABLE ac_chit_scan CHANGE chit_id chit_id INT DEFAULT NULL');
- $this->addSql('ALTER TABLE ac_chit_to_item CHANGE chit_id chit_id INT NOT NULL, CHANGE item_id item_id INT NOT NULL');
- $this->addSql(<<<'SQL'
- ALTER TABLE ac_chits_item
- CHANGE id id INT AUTO_INCREMENT NOT NULL,
- CHANGE price price DOUBLE PRECISION NOT NULL,
- CHANGE category category INT NOT NULL
- SQL);
-
- $this->addSql('ALTER TABLE ac_chitsCategory CHANGE id id INT AUTO_INCREMENT NOT NULL');
- $this->addSql('ALTER TABLE ac_chitsCategory_object CHANGE category_id category_id INT NOT NULL');
-
- $this->addSql(<<<'SQL'
- ALTER TABLE ac_unit_budget_category
- CHANGE id id INT AUTO_INCREMENT NOT NULL,
- CHANGE parentId parentId INT DEFAULT NULL,
- CHANGE value value DOUBLE PRECISION DEFAULT '0' NOT NULL,
- CHANGE year year SMALLINT NOT NULL
- SQL);
- $this->addForeignKeys();
- }
-
- public function down(Schema $schema): void
- {
- $this->dropForeignKeys();
-
- $this->addSql('ALTER TABLE ac_chits CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL');
- $this->addSql('ALTER TABLE ac_chit_scan CHANGE chit_id chit_id INT UNSIGNED DEFAULT NULL');
- $this->addSql('ALTER TABLE ac_chit_to_item CHANGE chit_id chit_id INT UNSIGNED NOT NULL, CHANGE item_id item_id INT UNSIGNED NOT NULL');
- $this->addSql(<<<'SQL'
- ALTER TABLE ac_chits_item
- CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL,
- CHANGE price price DOUBLE PRECISION UNSIGNED NOT NULL,
- CHANGE category category INT UNSIGNED NOT NULL
- SQL);
-
- $this->addSql('ALTER TABLE ac_chitsCategory CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL');
- $this->addSql('ALTER TABLE ac_chitsCategory_object CHANGE category_id category_id INT UNSIGNED NOT NULL');
-
- $this->addSql(<<<'SQL'
- ALTER TABLE ac_unit_budget_category
- CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL,
- CHANGE parentId parentId INT UNSIGNED DEFAULT NULL,
- CHANGE value value DOUBLE PRECISION UNSIGNED DEFAULT '0' NOT NULL,
- CHANGE year year SMALLINT UNSIGNED NOT NULL
- SQL);
-
- $this->addForeignKeys();
- }
-
- private function dropForeignKeys(): void
- {
- $this->addSql('ALTER TABLE ac_chit_scan DROP FOREIGN KEY FK_FEC2BFD22AEA3AE4');
- $this->addSql('ALTER TABLE ac_chit_to_item DROP FOREIGN KEY FK_2EA9AB792AEA3AE4');
- $this->addSql('ALTER TABLE ac_chit_to_item DROP FOREIGN KEY FK_2EA9AB79126F525E');
-
- $this->addSql('ALTER TABLE ac_chitsCategory_object DROP FOREIGN KEY FK_824C4F259C370B71');
-
- $this->addSql('ALTER TABLE ac_unit_budget_category DROP FOREIGN KEY FK_356BCD1F10EE4CEE');
- }
-
- private function addForeignKeys(): void
- {
- $this->addSql('ALTER TABLE ac_chit_scan ADD CONSTRAINT FK_FEC2BFD22AEA3AE4 FOREIGN KEY (chit_id) REFERENCES ac_chits (id)');
- $this->addSql('ALTER TABLE ac_chit_to_item ADD CONSTRAINT FK_2EA9AB792AEA3AE4 FOREIGN KEY (`chit_id`) REFERENCES `ac_chits` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT');
- $this->addSql('ALTER TABLE ac_chit_to_item ADD CONSTRAINT FK_2EA9AB79126F525E FOREIGN KEY (`item_id`) REFERENCES `ac_chits_item` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT');
-
- $this->addSql('ALTER TABLE ac_chitsCategory_object ADD CONSTRAINT FK_824C4F259C370B71 FOREIGN KEY (`category_id`) REFERENCES `ac_chitsCategory` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT');
-
- $this->addSql('ALTER TABLE `ac_unit_budget_category` ADD CONSTRAINT FK_356BCD1F10EE4CEE FOREIGN KEY (`parentId`) REFERENCES `ac_unit_budget_category` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT');
- }
-}
diff --git a/migrations/2021/Version20210206085905.php b/migrations/2021/Version20210206085905.php
deleted file mode 100644
index 212eaf29c..000000000
--- a/migrations/2021/Version20210206085905.php
+++ /dev/null
@@ -1,116 +0,0 @@
-dropForeignKeys();
- $this->addSql('ALTER TABLE log CHANGE id id INT AUTO_INCREMENT NOT NULL');
- $this->addSql(<<<'SQL'
- ALTER TABLE pa_group
- CHANGE id id INT AUTO_INCREMENT NOT NULL,
- CHANGE smtp_id smtp_id INT DEFAULT NULL
- SQL);
- $this->addSql('ALTER TABLE pa_group_email CHANGE group_id group_id INT DEFAULT NULL');
- $this->addSql('ALTER TABLE pa_group_unit CHANGE group_id group_id INT DEFAULT NULL');
- $this->addSql('ALTER TABLE pa_payment_email_recipients CHANGE id id INT AUTO_INCREMENT NOT NULL');
- $this->addSql('ALTER TABLE pa_payment_sent_emails CHANGE id id INT AUTO_INCREMENT NOT NULL');
- $this->addSql(<<<'SQL'
- ALTER TABLE tc_commands
- CHANGE id id INT AUTO_INCREMENT NOT NULL,
- CHANGE vehicle_id vehicle_id INT DEFAULT NULL,
- CHANGE contract_id contract_id INT DEFAULT NULL,
- CHANGE unit_id unit_id INT NOT NULL
- SQL);
- $this->addSql(<<<'SQL'
- ALTER TABLE tc_contracts
- CHANGE id id INT AUTO_INCREMENT NOT NULL,
- CHANGE unit_id unit_id INT NOT NULL
- SQL);
- $this->addSql(<<<'SQL'
- ALTER TABLE tc_travels
- CHANGE id id INT NOT NULL,
- CHANGE command_id command_id INT NOT NULL,
- CHANGE distance distance DOUBLE PRECISION DEFAULT NULL
- SQL);
- $this->addSql(<<<'SQL'
- ALTER TABLE tc_vehicle
- CHANGE id id INT AUTO_INCREMENT NOT NULL,
- CHANGE unit_id unit_id INT NOT NULL,
- CHANGE consumption consumption DOUBLE PRECISION NOT NULL
- SQL);
- $this->addSql('ALTER TABLE tc_vehicle_roadworthy_scan CHANGE vehicle_id vehicle_id INT DEFAULT NULL');
- $this->addForeignKeys();
- }
-
- public function down(Schema $schema): void
- {
- $this->dropForeignKeys();
- $this->addSql('ALTER TABLE log CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL');
- $this->addSql(<<<'SQL'
- ALTER TABLE pa_group
- CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL,
- CHANGE smtp_id smtp_id INT UNSIGNED DEFAULT NULL
- SQL);
- $this->addSql('ALTER TABLE pa_group_email CHANGE group_id group_id INT UNSIGNED DEFAULT NULL');
- $this->addSql('ALTER TABLE pa_group_unit CHANGE group_id group_id INT UNSIGNED DEFAULT NULL');
- $this->addSql('ALTER TABLE pa_payment_email_recipients CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL');
- $this->addSql('ALTER TABLE pa_payment_sent_emails CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL');
- $this->addSql(<<<'SQL'
- ALTER TABLE tc_commands
- CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL,
- CHANGE vehicle_id vehicle_id INT UNSIGNED DEFAULT NULL,
- CHANGE unit_id unit_id INT UNSIGNED NOT NULL,
- CHANGE contract_id contract_id INT UNSIGNED DEFAULT NULL
- SQL);
- $this->addSql(<<<'SQL'
- ALTER TABLE tc_contracts
- CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL,
- CHANGE unit_id unit_id INT UNSIGNED NOT NULL
- SQL);
- $this->addSql(<<<'SQL'
- ALTER TABLE tc_travels
- CHANGE id id INT UNSIGNED NOT NULL,
- CHANGE command_id command_id INT UNSIGNED NOT NULL,
- CHANGE distance distance DOUBLE PRECISION UNSIGNED DEFAULT NULL
- SQL);
- $this->addSql(<<<'SQL'
- ALTER TABLE tc_vehicle
- CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL,
- CHANGE unit_id unit_id INT UNSIGNED NOT NULL,
- CHANGE consumption consumption DOUBLE PRECISION UNSIGNED NOT NULL
- SQL);
- $this->addSql('ALTER TABLE tc_vehicle_roadworthy_scan CHANGE vehicle_id vehicle_id INT UNSIGNED DEFAULT NULL');
- $this->addForeignKeys();
- }
-
- private function dropForeignKeys(): void
- {
- $this->addSql('ALTER TABLE pa_group_email DROP FOREIGN KEY FK_7A67EADBFE54D947');
- $this->addSql('ALTER TABLE pa_group_unit DROP FOREIGN KEY FK_FB5A0CD6FE54D947');
- $this->addSql('ALTER TABLE tc_commands DROP FOREIGN KEY FK_4D5B6D0C545317D1');
- $this->addSql('ALTER TABLE tc_travels DROP FOREIGN KEY FK_F53E53633E1689A');
- $this->addSql('ALTER TABLE tc_vehicle_roadworthy_scan DROP FOREIGN KEY FK_270D2917545317D1');
- }
-
- private function addForeignKeys(): void
- {
- $this->addSql('ALTER TABLE pa_group_email ADD CONSTRAINT FK_7A67EADBFE54D947 FOREIGN KEY (`group_id`) REFERENCES `pa_group` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT');
- $this->addSql('ALTER TABLE pa_group_unit ADD CONSTRAINT FK_FB5A0CD6FE54D947 FOREIGN KEY (`group_id`) REFERENCES `pa_group` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT');
- $this->addSql('ALTER TABLE tc_commands ADD CONSTRAINT FK_4D5B6D0C545317D1 FOREIGN KEY (`vehicle_id`) REFERENCES `tc_vehicle` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT');
- $this->addSql('ALTER TABLE tc_travels ADD CONSTRAINT FK_F53E53633E1689A FOREIGN KEY (`command_id`) REFERENCES `tc_commands` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT');
- $this->addSql('ALTER TABLE tc_vehicle_roadworthy_scan ADD CONSTRAINT FK_270D2917545317D1 FOREIGN KEY (`vehicle_id`) REFERENCES `tc_vehicle` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT');
- }
-}
diff --git a/migrations/2021/Version20210711221851.php b/migrations/2021/Version20210711221851.php
deleted file mode 100644
index 4a9b48e7d..000000000
--- a/migrations/2021/Version20210711221851.php
+++ /dev/null
@@ -1,31 +0,0 @@
-addSql('ALTER TABLE tc_contracts CHANGE unit_representative unit_representative VARCHAR(64) NOT NULL');
- }
-
- public function down(Schema $schema): void
- {
- // this down() migration is auto-generated, please modify it to your needs
- $this->addSql('ALTER TABLE tc_contracts CHANGE unit_representative unit_representative VARCHAR(64) CHARACTER SET utf8 NOT NULL COLLATE `utf8_czech_ci` COMMENT \'jméno osoby zastupující jednotku\'');
- }
-}
diff --git a/migrations/2021/Version20211121182733.php b/migrations/2021/Version20211121182733.php
deleted file mode 100644
index 2f446e1af..000000000
--- a/migrations/2021/Version20211121182733.php
+++ /dev/null
@@ -1,26 +0,0 @@
-addSql('ALTER TABLE pa_payment DROP email');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE pa_payment ADD email TEXT CHARACTER SET utf8 DEFAULT NULL COLLATE `utf8_czech_ci`');
- }
-}
diff --git a/migrations/2021/Version20211121183832.php b/migrations/2021/Version20211121183832.php
deleted file mode 100644
index 85fa6f621..000000000
--- a/migrations/2021/Version20211121183832.php
+++ /dev/null
@@ -1,42 +0,0 @@
-addSql('ALTER TABLE ac_chit_scan CHANGE chit_id chit_id INT NOT NULL');
- $this->addSql('ALTER TABLE ac_chits CHANGE eventId eventId CHAR(36) NOT NULL COMMENT \'(DC2Type:cashbook_id)\'');
- $this->addSql('ALTER TABLE ac_unit_budget_category CHANGE unit_id unit_id INT NOT NULL');
- $this->addSql('ALTER TABLE pa_group_email CHANGE group_id group_id INT NOT NULL');
- $this->addSql('ALTER TABLE pa_group_unit CHANGE group_id group_id INT NOT NULL');
- $this->addSql('ALTER TABLE pa_payment_email_recipients CHANGE payment_id payment_id INT NOT NULL');
- $this->addSql('ALTER TABLE pa_payment_sent_emails CHANGE payment_id payment_id INT NOT NULL');
- $this->addSql('ALTER TABLE tc_commands CHANGE place place VARCHAR(64) NOT NULL');
- $this->addSql('ALTER TABLE tc_vehicle_roadworthy_scan CHANGE vehicle_id vehicle_id INT NOT NULL');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE ac_chit_scan CHANGE chit_id chit_id INT DEFAULT NULL');
- $this->addSql('ALTER TABLE ac_chits CHANGE eventId eventId CHAR(36) CHARACTER SET utf8 DEFAULT NULL COLLATE `utf8_czech_ci` COMMENT \'(DC2Type:cashbook_id)\'');
- $this->addSql('ALTER TABLE ac_unit_budget_category CHANGE unit_id unit_id INT DEFAULT NULL');
- $this->addSql('ALTER TABLE pa_group_email CHANGE group_id group_id INT DEFAULT NULL');
- $this->addSql('ALTER TABLE pa_group_unit CHANGE group_id group_id INT DEFAULT NULL');
- $this->addSql('ALTER TABLE pa_payment_email_recipients CHANGE payment_id payment_id INT DEFAULT NULL');
- $this->addSql('ALTER TABLE pa_payment_sent_emails CHANGE payment_id payment_id INT DEFAULT NULL');
- $this->addSql('ALTER TABLE tc_commands CHANGE place place VARCHAR(64) CHARACTER SET utf8 DEFAULT NULL COLLATE `utf8_czech_ci`');
- $this->addSql('ALTER TABLE tc_vehicle_roadworthy_scan CHANGE vehicle_id vehicle_id INT DEFAULT NULL');
- }
-}
diff --git a/migrations/2021/Version20211121192425.php b/migrations/2021/Version20211121192425.php
deleted file mode 100644
index 06a80007b..000000000
--- a/migrations/2021/Version20211121192425.php
+++ /dev/null
@@ -1,27 +0,0 @@
-addSql(<<<'SQL'
- CREATE TABLE ac_education_cashbooks (
- id CHAR(36) NOT NULL COMMENT '(DC2Type:skautis_education_id)',
- cashbook_id CHAR(36) NOT NULL COMMENT '(DC2Type:cashbook_id)',
- PRIMARY KEY(id)
- ) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB
-SQL);
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('DROP TABLE ac_education_cashbooks');
- }
-}
diff --git a/migrations/2021/Version20211122211254.php b/migrations/2021/Version20211122211254.php
deleted file mode 100644
index 67c96b8cf..000000000
--- a/migrations/2021/Version20211122211254.php
+++ /dev/null
@@ -1,21 +0,0 @@
-addSql('ALTER TABLE ac_participants CHANGE event_type event_type VARCHAR(9) NOT NULL COMMENT \'(DC2Type:string_enum)\'');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE ac_participants CHANGE event_type event_type VARCHAR(7) NOT NULL COMMENT \'(DC2Type:string_enum)\'');
- }
-}
diff --git a/migrations/2023/Version20231008115940.php b/migrations/2023/Version20231008115940.php
deleted file mode 100644
index 1d666ecbd..000000000
--- a/migrations/2023/Version20231008115940.php
+++ /dev/null
@@ -1,26 +0,0 @@
-addSql('INSERT INTO `ac_chitsCategory_object` (`category_id`, `type`) VALUES (20, \'education\');');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('DELETE FROM `ac_chitsCategory_object` WHERE `category_id` = \'20\' AND `type` = \'education\';');
- }
-}
diff --git a/migrations/2023/Version20231025231859.php b/migrations/2023/Version20231025231859.php
deleted file mode 100644
index fae608c43..000000000
--- a/migrations/2023/Version20231025231859.php
+++ /dev/null
@@ -1,28 +0,0 @@
-addSql('ALTER TABLE `ac_education_cashbooks` ADD COLUMN `year` INT NOT NULL AFTER `id`;');
- $this->addSql('ALTER TABLE `ac_education_cashbooks` DROP PRIMARY KEY, ADD PRIMARY KEY(`id`, `year`);');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE `ac_education_cashbooks` DROP PRIMARY KEY, ADD PRIMARY KEY(`id`);');
- $this->addSql('ALTER TABLE `ac_education_cashbooks` DROP COLUMN `year`;');
- }
-}
diff --git a/migrations/2023/Version20231027085506.php b/migrations/2023/Version20231027085506.php
deleted file mode 100644
index 4e8e0e5a3..000000000
--- a/migrations/2023/Version20231027085506.php
+++ /dev/null
@@ -1,104 +0,0 @@
- */
- private array $tables_utf8mb3_czech_ci = [
- 'ac_cashbook',
- 'ac_chits',
- 'ac_chitsCategory',
- 'ac_chits_item',
- 'ac_participants',
- 'ac_unit_budget_category',
- 'ac_unit_cashbooks',
- 'ac_units',
- 'pa_group',
- 'pa_payment',
- 'tc_commands',
- 'tc_contracts',
- 'tc_travels',
- 'tc_vehicle',
- ];
-
- /** @var array */
- private array $tables_utf8mb3_general_ci = ['ac_chitsCategory_object'];
-
- /** @var array */
- private array $tables_utf8mb3_unicode_ci = [
- 'ac_camp_cashbooks',
- 'ac_chit_scan',
- 'ac_chit_to_item',
- 'ac_education_cashbooks',
- 'ac_event_cashbooks',
- 'doctrine_migrations',
- 'google_oauth',
- 'pa_bank_account',
- 'pa_group_email',
- 'pa_group_unit',
- 'pa_payment_email_recipients',
- 'pa_payment_sent_emails',
- 'tc_vehicle_roadworthy_scan',
- ];
-
- /** @var array */
- private array $tables_latin1_swedish_ci = ['log'];
-
- public function getDescription(): string
- {
- return 'Sjednocení charsetů a collation celé databáze';
- }
-
- public function up(Schema $schema): void
- {
- $this->addSql('ALTER DATABASE CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci;');
-
- $this->addSql('SET foreign_key_checks = 0;');
-
- foreach (
- array_merge(
- $this->tables_utf8mb3_czech_ci,
- $this->tables_utf8mb3_general_ci,
- $this->tables_utf8mb3_unicode_ci,
- $this->tables_latin1_swedish_ci,
- ) as $table
- ) {
- $this->addSql('ALTER TABLE `' . $table . '` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci;');
- }
-
- $this->addSql('SET foreign_key_checks = 1;');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('SET foreign_key_checks = 0;');
-
- foreach ($this->tables_utf8mb3_czech_ci as $table) {
- $this->addSql('ALTER TABLE `' . $table . '` CONVERT TO CHARACTER SET utf8mb3 COLLATE utf8mb3_czech_ci;');
- }
-
- foreach ($this->tables_utf8mb3_general_ci as $table) {
- $this->addSql('ALTER TABLE `' . $table . '` CONVERT TO CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci;');
- }
-
- foreach ($this->tables_utf8mb3_unicode_ci as $table) {
- $this->addSql('ALTER TABLE `' . $table . '` CONVERT TO CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci;');
- }
-
- foreach ($this->tables_latin1_swedish_ci as $table) {
- $this->addSql('ALTER TABLE `' . $table . '` CONVERT TO CHARACTER SET latin1 COLLATE latin1_swedish_ci;');
- }
-
- $this->addSql('SET foreign_key_checks = 1;');
- }
-}
diff --git a/migrations/2024/Version20240422113851.php b/migrations/2024/Version20240422113851.php
deleted file mode 100644
index 6c04c761d..000000000
--- a/migrations/2024/Version20240422113851.php
+++ /dev/null
@@ -1,26 +0,0 @@
-addSql('ALTER TABLE tc_commands MODIFY fellow_passengers VARCHAR(256) NOT NULL;');
- }
-
- public function down(Schema $schema): void
- {
- $this->addSql('ALTER TABLE tc_commands MODIFY fellow_passengers VARCHAR(64) NOT NULL;');
- }
-}
diff --git a/migrations/2023/Version20231127061041.php b/migrations/2025/Version20251019194523.php
similarity index 70%
rename from migrations/2023/Version20231127061041.php
rename to migrations/2025/Version20251019194523.php
index f6a26b007..6e594f5ba 100644
--- a/migrations/2023/Version20231127061041.php
+++ b/migrations/2025/Version20251019194523.php
@@ -10,7 +10,7 @@
/**
* Auto-generated Migration: Please modify to your needs!
*/
-final class Version20231127061041 extends AbstractMigration
+final class Version20251019194523 extends AbstractMigration
{
public function getDescription(): string
{
@@ -20,12 +20,12 @@ public function getDescription(): string
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
- $this->addSql('ALTER TABLE pa_payment ADD date DATE DEFAULT NULL COMMENT \'(DC2Type:chronos_date)\'');
+ $this->addSql('ALTER TABLE pa_group ADD is_reminders_enabled TINYINT(1) DEFAULT 0 NOT NULL');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
- $this->addSql('ALTER TABLE pa_payment DROP date');
+ $this->addSql('ALTER TABLE pa_group DROP is_reminders_enabled');
}
}
diff --git a/phpcs.xml b/phpcs.xml
index 4b49e41e9..e309878e6 100644
--- a/phpcs.xml
+++ b/phpcs.xml
@@ -30,4 +30,10 @@
/tests/*
+
+ tests/Http/NoOpResponse.php
+
+
+ tests/Http/NoOpResponse.php
+
diff --git a/phpstan.neon b/phpstan.neon
index 0e06dd9cb..8e74aa9ef 100644
--- a/phpstan.neon
+++ b/phpstan.neon
@@ -16,6 +16,8 @@ parameters:
scanDirectories:
- tests/_support
+ bootstrapFiles:
+ - tests/Http/NoOpResponse.php # místo autoload_files
services:
- class: CodeQuality\ObjectIdentityComparisonRule
diff --git a/tests/Http/NoOpResponse.php b/tests/Http/NoOpResponse.php
new file mode 100644
index 000000000..1cf42dc52
--- /dev/null
+++ b/tests/Http/NoOpResponse.php
@@ -0,0 +1,87 @@
+code = $code;
+
+ return $this;
+ }
+
+ public function getCode(): int
+ {
+ return $this->code;
+ }
+
+ public function setHeader(string $name, string $value): static
+ {
+ return $this;
+ }
+
+ public function addHeader(string $name, string $value): static
+ {
+ return $this;
+ }
+
+ public function deleteHeader(string $name): static
+ {
+ return $this;
+ }
+
+ public function getHeader(string $header): string|null
+ {
+ return null;
+ }
+
+ /** @return array */
+ public function getHeaders(): array
+ {
+ return [];
+ }
+
+ public function setExpiration(string|null $expire): static
+ {
+ return $this;
+ }
+
+ public function isSent(): bool
+ {
+ return false;
+ }
+
+ public function setContentType(string $type, string|null $charset = null): static
+ {
+ return $this;
+ }
+
+ public function redirect(string $url, int $code = IResponse::S302_Found): void
+ {
+ /* no-op */
+ }
+
+ /**
+ * @param string|int|DateTimeInterface $expire time, value null means "until the browser session ends"
+ *
+ * @return $this
+ */
+ public function setCookie(string $name, string $value, $expire, string|null $path = null, string|null $domain = null, bool|null $secure = null, bool|null $httpOnly = null, string|null $sameSite = null): static
+ {
+ return $this;
+ }
+
+ public function deleteCookie(string $name, string|null $path = null, string|null $domain = null, bool|null $secure = null): static
+ {
+ return $this;
+ }
+}
diff --git a/tests/_data/acceptance_init.sql b/tests/_data/acceptance_init.sql
index 674a29ea9..41c0c68cd 100644
--- a/tests/_data/acceptance_init.sql
+++ b/tests/_data/acceptance_init.sql
@@ -1,4 +1,12 @@
+-- google_oauth
INSERT INTO google_oauth (id, unit_id, email, token, updated_at)
-VALUES ('42288e92-27fb-453c-9904-36a7ebd14fe2', 27266, 'test@hospodareni.loc', '1//02yV7BM31saaQCgYIAPOOREPSNwF-L9Irbcw-iJEHRUnfxt2KULTjXQkPI-jl8LEN-SwVp6OybduZT21RiDf7RZBA4ZoZu86UXC8', '2017-06-15 00:00:00');
+VALUES ('42288e92-27fb-453c-9904-36a7ebd14fe2', 27266, 'test@hospodareni.loc',
+ '1//02yV7BM31saaQCgYIAPOOREPSNwF-L9Irbcw-iJEHRUnfxt2KULTjXQkPI-jl8LEN-SwVp6OybduZT21RiDf7RZBA4ZoZu86UXC8',
+ '2017-06-15 00:00:00')
+ ON DUPLICATE KEY UPDATE
+ unit_id = VALUES(unit_id),
+ email = VALUES(email),
+ token = VALUES(token),
+ updated_at = VALUES(updated_at);
INSERT INTO pa_bank_account (name, unit_id, token, created_at, allowed_for_subunits, number_prefix, number_number, number_bank_code)
VALUES ('Acceptance', 27266, NULL, '2017-08-24 00:00:00', 1, NULL, '2000942144', '2010');
diff --git a/tests/_hacks/SoapCodeTransform.php b/tests/_hacks/SoapCodeTransform.php
index 5dd44c677..9b61dfed7 100644
--- a/tests/_hacks/SoapCodeTransform.php
+++ b/tests/_hacks/SoapCodeTransform.php
@@ -1,13 +1,13 @@
loadSessionSnapshot('login')) {
$I->amOnPage('/');
- $I->click('Akce');
return;
}
@@ -49,7 +48,7 @@ public function login(string $role) : void
$I->fillField('(//input)[9]', self::LOGIN);
$I->fillField('(//input)[10]', self::PASSWORD);
$I->click('//button');
- $I->waitForText('Seznam akcí');
+ $I->waitForText('Nástěnka');
$roleButtonSelector = "//button[contains(@class, 'ui--current-role')]";
diff --git a/tests/_support/IntegrationTest.php b/tests/_support/IntegrationTest.php
index 8063c5197..7d81669d5 100644
--- a/tests/_support/IntegrationTest.php
+++ b/tests/_support/IntegrationTest.php
@@ -48,7 +48,13 @@ protected function _before() : void
$this->entityManager = $this->tester->grabService(EntityManager::class);
$this->metadata = array_map([$this->entityManager, 'getClassMetadata'], $this->getTestedEntities());
$this->schemaTool = new SchemaTool($this->entityManager);
+ // pro MySQL jistota kvůli FK
+ $conn = $this->entityManager->getConnection();
+ $conn->executeStatement('SET FOREIGN_KEY_CHECKS=0');
+
$this->schemaTool->dropSchema($this->metadata);
+ $conn->executeStatement('SET FOREIGN_KEY_CHECKS=1');
+
$this->schemaTool->createSchema($this->metadata);
}
diff --git a/tests/acceptance/CampCest.php b/tests/acceptance/CampCest.php
new file mode 100644
index 000000000..1810cac8a
--- /dev/null
+++ b/tests/acceptance/CampCest.php
@@ -0,0 +1,30 @@
+I = $I;
+ $I->login(AcceptanceTester::UNIT_LEADER_ROLE);
+ }
+
+ public function createListCamp(): void
+ {
+ $I = $this->I;
+ $I->wantTo('List camps');
+ $I->click('Tábory');
+ $I->waitForText('Tábory');
+ $I->selectOption('Rok', 2024);
+ }
+}
diff --git a/tests/acceptance/EventCashbookCest.php b/tests/acceptance/EventCashbookCest.php
index 0522d88fe..78b4df267 100644
--- a/tests/acceptance/EventCashbookCest.php
+++ b/tests/acceptance/EventCashbookCest.php
@@ -35,6 +35,7 @@ public function _before(AcceptanceTester $I): void
/** @group cashbook */
public function createEventCashbook(): void
{
+ $this->I->click('Akce');
$this->createEvent();
$this->goToCashbookPage();
$this->createExpenseChit();
diff --git a/tests/acceptance/TravelCest.php b/tests/acceptance/TravelCest.php
new file mode 100644
index 000000000..0de801a69
--- /dev/null
+++ b/tests/acceptance/TravelCest.php
@@ -0,0 +1,270 @@
+I = $I;
+ $I->login(AcceptanceTester::UNIT_LEADER_ROLE);
+ $this->licensePlate = 'RZ-' . time();
+ }
+
+ public function createTravelOrder(AcceptanceTester $I): void
+ {
+ $name = 'Porada s vedoucími';
+ $unitRepresentative = 'Pavel Zástupce';
+ $licensePlate = 'RZA-' . time();
+ $I->wantTo('Create travel order');
+ $this->navigateToVehicle($I);
+ $this->newVehicle($I, $licensePlate);
+ $this->navigationToContract($I);
+ $this->newContract($I, $unitRepresentative);
+ $this->navigateToTravelOrder($I);
+ $this->newTravelOrder($I, $name, $licensePlate);
+ $this->navigateToTravelOrder($I);
+ $this->deleteTravelOrder($I, $name);
+ $this->navigateToVehicle($I);
+ $this->deleteVehicle($I, $licensePlate);
+ $this->navigationToContract($I);
+ $this->deleteContract($I, $unitRepresentative);
+ }
+
+ protected function navigateToTravelOrder(AcceptanceTester $I): void
+ {
+ $I->amOnPage('/');
+ $I->click('Cesťáky');
+ $I->seeInCurrentUrl('/cestaky');
+ }
+
+ protected function newTravelOrder(AcceptanceTester $I, string $name, string $licensePlate): void
+ {
+ $I->click('Založit cestovní příkaz');
+ $I->waitForText('Založit cestovní příkaz');
+
+ $I->waitForElementVisible('#frm-form-form-purpose', 10);
+
+ $I->fillField('#frm-form-form-purpose', $name);
+ $I->fillField('#frm-form-form-place', 'Praha');
+ $I->fillField('#frm-form-form-fellowPassengers', 'Pepa Novák, Alena Malá');
+ $I->fillField('#frm-form-form-note', 'Vzít materiál ze skladu');
+
+ $I->selectOption('#frm-form-form-type', ['car']);
+ $I->click(['xpath' => '//*[@id="frm-form-form-contract_id"]/option[@value!=""][1]']);
+
+ $I->waitForElementNotVisible('#passengerName', 5);
+ $I->waitForElementNotVisible('#passengerContact', 5);
+ $I->waitForElementNotVisible('#passengerAddress', 5);
+
+ // (Alternativa bez smlouvy – odkomentuj a vyplň)
+ /*
+ $I->selectOption('#frm-form-form-contract_id', '');
+ $I->executeJS('document.getElementById("frm-form-form-contract_id").dispatchEvent(new Event("change",{bubbles:true}));');
+ $I->waitForElementVisible('#passengerName', 5);
+ $I->fillField('#frm-form-form-passenger-name', 'Jan Novák');
+ $I->fillField('#frm-form-form-passenger-contact', '777123456');
+ $I->fillField('#frm-form-form-passenger-address', 'Ulice 1, Praha');
+ */
+
+ // 5) Vozidlo – po výběru "car" jsou pole povinná
+ $I->waitForElementVisible('#frm-form-form-vehicle_id', 5);
+ $I->selectOption('#frm-form-form-vehicle_id', ['text' => 'Osobní (' . $licensePlate . ')']);
+ $I->fillField('#frm-form-form-fuel_price', '38.50');
+ $I->fillField('#frm-form-form-amortization', '1.20');
+
+ // 6) Odeslání
+ $I->scrollTo('footer');
+ $I->waitForElementVisible('[name=send]', 5);
+ $I->click('[name=send]');
+
+ // 7) Ověření (uprav dle app – flash zpráva / redirect / nadpis)
+ $I->waitForText('Cestovní příkaz byl založen', 10);
+ $I->seeInCurrentUrl('/cestaky');
+ }
+
+ protected function deleteTravelOrder(AcceptanceTester $I, string $name): void
+ {
+ $I->click($name);
+ $I->waitForText('Cestovní příkaz');
+ $I->click('Smazat');
+ try {
+ $I->acceptPopup();
+ } catch (Throwable) {
+ }
+
+ $I->waitForText('Cestovní příkaz byl smazán.');
+ }
+
+ public function createVehicle(AcceptanceTester $I): void
+ {
+ $I->wantTo('Create vehicle');
+ $this->navigateToVehicle($I);
+ $this->newVehicle($I, $this->licensePlate);
+ $this->navigateToVehicle($I);
+ $this->checkVehicle($I, $this->licensePlate);
+ $this->navigateToVehicle($I);
+ $this->deleteVehicle($I, $this->licensePlate);
+ }
+
+ protected function navigateToVehicle(AcceptanceTester $I): void
+ {
+ $I->amOnPage('/');
+ $I->click('Cesťáky');
+ $I->seeInCurrentUrl('/cestaky');
+ $I->click('Vozidla');
+ $I->seeInCurrentUrl('/cestaky/vozidla');
+ }
+
+ protected function newVehicle(AcceptanceTester $I, string $licensePlate): void
+ {
+ $I->click('Založit nové vozidlo');
+ $I->see('Nové vozidlo');
+
+ $I->fillField(['id' => 'frm-formCreateVehicle-type'], $this->vehicleType);
+ $I->fillField(['id' => 'frm-formCreateVehicle-registration'], $licensePlate);
+ $I->fillField(['id' => 'frm-formCreateVehicle-consumption'], $this->harmonizedConsumption);
+ $I->selectOption(['id' => 'frm-formCreateVehicle-subunitId'], $this->division);
+ $I->click('Založit');
+ $I->click('Založit nové vozidlo');
+ $I->see('Nové vozidlo');
+
+ $I->fillField(['id' => 'frm-formCreateVehicle-type'], $this->vehicleType);
+ $I->fillField(['id' => 'frm-formCreateVehicle-registration'], $licensePlate);
+ $I->fillField(['id' => 'frm-formCreateVehicle-consumption'], $this->harmonizedConsumption);
+ $I->selectOption(['id' => 'frm-formCreateVehicle-subunitId'], $this->division);
+ $I->click('Založit');
+ }
+
+ protected function checkVehicle(AcceptanceTester $I, string $licensePlate): void
+ {
+ $I->see('Vozidla');
+ $I->see($licensePlate);
+ $I->see($this->vehicleType);
+ $I->see($this->division);
+ $I->click('#frm-grid-grid-filter-filter-search');
+ $I->fillField('#frm-grid-grid-filter-filter-search', 'AUV');
+ $I->pressKey('#frm-grid-grid-filter-filter-search', [WebDriverKeys::ENTER]);
+ $I->wait(3);
+ $I->dontSee($licensePlate, '#snippet-grid-grid-table');
+ $I->see('Nenalezeny žádné záznamy.', '#snippet-grid-grid-table');
+ $I->click('#frm-grid-grid-filter-filter-search');
+ $I->fillField('#frm-grid-grid-filter-filter-search', $licensePlate);
+ $I->pressKey('#frm-grid-grid-filter-filter-search', [WebDriverKeys::ENTER]);
+ $I->waitForText($licensePlate, 10, '#snippet-grid-grid-table');
+ $I->wait(3);
+ $I->click($licensePlate, '#snippet-grid-grid-table');
+ $I->waitForText('Údaje o vozidle');
+ }
+
+ protected function deleteVehicle(AcceptanceTester $I, string $licensePlate): void
+ {
+ $I->click($licensePlate, '#snippet-grid-grid-table');
+ $I->waitForText('Údaje o vozidle');
+ $I->click('Smazat vozidlo');
+ try {
+ $I->acceptPopup();
+ } catch (Throwable) {
+ }
+
+ $I->waitForText('Vozidlo bylo odebráno.');
+ }
+
+ public function createContact(AcceptanceTester $I): void
+ {
+ $I->wantTo('Create contract');
+ $this->navigationToContract($I);
+ $this->newContract($I, $this->unitRepresentative);
+ $this->navigationToContract($I);
+ $this->detailContract($I, $this->unitRepresentative);
+ $this->navigationToContract($I);
+ $this->deleteContract($I, $this->unitRepresentative);
+ }
+
+ protected function navigationToContract(AcceptanceTester $I): void
+ {
+ $I->amOnPage('/');
+ $I->click('Cesťáky');
+ $I->seeInCurrentUrl('/cestaky');
+ $I->click('Smlouvy');
+ $I->seeInCurrentUrl('/cestaky/smlouvy');
+ $I->waitForText('Smlouvy');
+ }
+
+ protected function newContract(AcceptanceTester $I, string $unitRepresentative): void
+ {
+ $I->click('Založit smlouvu');
+ $I->waitForText('Nová smlouva o proplácení cestovních náhrad');
+ $I->waitForElementVisible('#frm-formCreateContract', 10);
+ $I->fillField('#frm-formCreateContract-passengerName', 'Jan Novák');
+ $I->fillField('#frm-formCreateContract-passengerAddress', 'Ulice 1, 100 00 Praha');
+ $I->fillField('#frm-formCreateContract-passengerContact', '777123456');
+ $I->fillField('#frm-formCreateContract-unitRepresentative', $unitRepresentative);
+ $I->fillField('#frm-formCreateContract-start', '18.10.2025');
+ $I->click('#frm-formCreateContract-passengerBirthday');
+ $I->fillField('#frm-formCreateContract-passengerBirthday', '01.01.1990');
+ $I->pressKey('#frm-formCreateContract-passengerBirthday', [WebDriverKeys::TAB]);
+ $I->scrollTo('footer');
+ $I->click('#frm-formCreateContract [name=send]');
+ $I->waitForText('Smlouva byla založena.');
+ $I->see($unitRepresentative);
+ }
+
+ protected function detailContract(AcceptanceTester $I, string $unitRepresentative): void
+ {
+ $I->click(sprintf('[data-test="%s"]', $unitRepresentative));
+ $I->waitForElementVisible('body', 10);
+ $I->see('Smlouva o proplácení cestovních náhrad');
+
+ // --- Vytisknout -> PDF ve stejném tabu ---
+ $I->waitForElementVisible('[data-test="contract-print"]', 10);
+ $urlBefore = $I->grabFromCurrentUrl();
+ $I->click('[data-test="contract-print"]');
+
+ $I->waitForJS('return window.location.href !== ' . json_encode($urlBefore) . ';', 10);
+ $I->seeInCurrentUrl('/print');
+
+ $I->moveBack();
+
+ $I->waitForText('Údaje smlouvy', 10);
+ }
+
+ protected function deleteContract(AcceptanceTester $I, string $unitRepresentative): void
+ {
+ $I->click(sprintf('[data-test="%s"]', $unitRepresentative));
+ $I->waitForElementVisible('body', 10);
+ $I->see('Smlouva o proplácení cestovních náhrad');
+ $I->waitForElementVisible('[data-test="contract-delete"]', 10);
+ // --- Smazat ---
+ $I->click('[data-test="contract-delete"]');
+ try {
+ $I->acceptPopup();
+ } catch (Throwable) {
+ }
+
+ $I->waitForText('Smlouva byla smazána', 10);
+ $I->seeInCurrentUrl('/smlouvy');
+ }
+}
diff --git a/tests/integration/Cashbook/CashbookIntegrationTest.php b/tests/integration/Cashbook/CashbookIntegrationTest.php
index d3928d44b..673dff321 100644
--- a/tests/integration/Cashbook/CashbookIntegrationTest.php
+++ b/tests/integration/Cashbook/CashbookIntegrationTest.php
@@ -216,7 +216,7 @@ public function testAddInverseTransferAddsChitToCalledCashbook(
$this->assertTrue($event->getCashbookId()->equals($cashbookId));
}
- /** @return list>> */
+ /** @return list> */
public function getValidTransfers(): array
{
return [ // expense -> income
diff --git a/tests/integration/config/doctrine.neon b/tests/integration/config/doctrine.neon
index 7296aab66..8df06db3d 100644
--- a/tests/integration/config/doctrine.neon
+++ b/tests/integration/config/doctrine.neon
@@ -10,11 +10,16 @@ services:
- Model\Common\Services\MessengerCommandBus(@messenger.commandBus.bus)
- Model\Common\Services\MessengerQueryBus(@messenger.queryBus.bus)
- Model\Common\Services\MessengerEventBus(@messenger.eventBus.bus)
+ http.response:
+ factory: Tests\Http\NoOpResponse
+ type: Nette\Http\IResponse
+
extensions:
console: Contributte\Console\DI\ConsoleExtension(%consoleMode%)
decorator: Nette\DI\Extensions\DecoratorExtension # default extension in Nette DI
messenger: Fmasa\Messenger\DI\MessengerExtension
+ http: Nette\Bridges\HttpDI\HttpExtension
messenger:
buses:
diff --git a/tests/object-manager.php b/tests/object-manager.php
index d2d92ba01..fd2179666 100644
--- a/tests/object-manager.php
+++ b/tests/object-manager.php
@@ -10,6 +10,7 @@
use Doctrine\Persistence\ObjectManager;
use Nette\Bootstrap\Configurator;
use Nette\DI\Extensions\ExtensionsExtension;
+use Tracy\Bridges\Nette\TracyExtension;
require __DIR__ . '/../vendor/autoload.php';
@@ -29,7 +30,7 @@
$configurator->defaultExtensions = [
'extensions' => ExtensionsExtension::class,
- 'tracy' => [Tracy\Bridges\Nette\TracyExtension::class, ['%debugMode%', '%consoleMode%']],
+ 'tracy' => [TracyExtension::class, ['%debugMode%', '%consoleMode%']],
];
$configurator->addStaticParameters(['env' => getenv()]);
diff --git a/tests/unit/BankServiceTest.php b/tests/unit/BankServiceTest.php
index 7148ca976..e11cc29da 100644
--- a/tests/unit/BankServiceTest.php
+++ b/tests/unit/BankServiceTest.php
@@ -200,7 +200,7 @@ public function testDefaultIntervalIsUsedForGroupThatIsNotPairedYetWhenPairingMu
->once()
->withArgs(
fn (ChronosDate $since, ChronosDate $until) => $since->equals(ChronosDate::today()->subDays(60))
- && $until->equals(ChronosDate::today())
+ && $until->equals(ChronosDate::today()),
)
->andReturn($transactions1);
diff --git a/webpack.config.js b/webpack.config.js
index 8ee089251..a4abf240c 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -33,7 +33,17 @@ export default {
MiniCssExtractPlugin.loader,
'css-loader',
'postcss-loader',
- 'sass-loader',
+ {
+ loader: 'sass-loader',
+ options: {
+ sassOptions: {
+ // umlčí warnings z node_modules (Bootstrap apod.)
+ quietDeps: true,
+ // volitelné – potlačí konkrétní typy hlášek (Sass >=1.77)
+ silenceDeprecations: ['mixed-decls', 'color-functions', 'import'],
+ },
+ },
+ },
],
}
]
diff --git a/www/images/front/ChatIcons/badge.png b/www/images/front/ChatIcons/badge.png
new file mode 100644
index 000000000..ce70a1480
Binary files /dev/null and b/www/images/front/ChatIcons/badge.png differ
diff --git a/www/images/front/ChatIcons/calculate.png b/www/images/front/ChatIcons/calculate.png
new file mode 100644
index 000000000..5d45f53cf
Binary files /dev/null and b/www/images/front/ChatIcons/calculate.png differ
diff --git a/www/images/front/ChatIcons/database.png b/www/images/front/ChatIcons/database.png
new file mode 100644
index 000000000..3a80b3dd6
Binary files /dev/null and b/www/images/front/ChatIcons/database.png differ
diff --git a/www/images/front/ChatIcons/file.png b/www/images/front/ChatIcons/file.png
new file mode 100644
index 000000000..8af8b6361
Binary files /dev/null and b/www/images/front/ChatIcons/file.png differ
diff --git a/www/images/front/ChatIcons/house.png b/www/images/front/ChatIcons/house.png
new file mode 100644
index 000000000..3556ebca5
Binary files /dev/null and b/www/images/front/ChatIcons/house.png differ
diff --git a/www/images/front/ChatIcons/intro1.png b/www/images/front/ChatIcons/intro1.png
new file mode 100644
index 000000000..584acda31
Binary files /dev/null and b/www/images/front/ChatIcons/intro1.png differ
diff --git a/www/images/front/badge.png b/www/images/front/badge.png
new file mode 100644
index 000000000..606396dd3
Binary files /dev/null and b/www/images/front/badge.png differ
diff --git a/www/images/front/calculate.png b/www/images/front/calculate.png
new file mode 100644
index 000000000..4774cc43c
Binary files /dev/null and b/www/images/front/calculate.png differ
diff --git a/www/images/front/database.png b/www/images/front/database.png
new file mode 100644
index 000000000..d41d8fa6a
Binary files /dev/null and b/www/images/front/database.png differ
diff --git a/www/images/front/file.png b/www/images/front/file.png
new file mode 100644
index 000000000..707eb9f23
Binary files /dev/null and b/www/images/front/file.png differ
diff --git a/www/images/front/house.png b/www/images/front/house.png
new file mode 100644
index 000000000..8cbb83f33
Binary files /dev/null and b/www/images/front/house.png differ
diff --git a/www/images/front/integration.png b/www/images/front/integration.png
new file mode 100644
index 000000000..141b16c9b
Binary files /dev/null and b/www/images/front/integration.png differ
diff --git a/www/images/front/intro1.png b/www/images/front/intro1.png
new file mode 100644
index 000000000..0abd2efc2
Binary files /dev/null and b/www/images/front/intro1.png differ
diff --git a/www/images/front/old/1/pokladni-kniha.png b/www/images/front/old/1/pokladni-kniha.png
deleted file mode 100755
index c86426cec..000000000
Binary files a/www/images/front/old/1/pokladni-kniha.png and /dev/null differ
diff --git a/www/images/front/old/1/prehled-akci.png b/www/images/front/old/1/prehled-akci.png
deleted file mode 100755
index d2223dcfa..000000000
Binary files a/www/images/front/old/1/prehled-akci.png and /dev/null differ
diff --git a/www/images/front/old/1/seznam-ucastniku-akce.png b/www/images/front/old/1/seznam-ucastniku-akce.png
deleted file mode 100644
index 5b1f4e8d6..000000000
Binary files a/www/images/front/old/1/seznam-ucastniku-akce.png and /dev/null differ
diff --git a/www/images/front/old/1/zakladni-udaje-akce.png b/www/images/front/old/1/zakladni-udaje-akce.png
deleted file mode 100755
index 09f79bb93..000000000
Binary files a/www/images/front/old/1/zakladni-udaje-akce.png and /dev/null differ
diff --git a/www/images/front/old/2/pokladni-kniha.png b/www/images/front/old/2/pokladni-kniha.png
deleted file mode 100644
index 5104b609f..000000000
Binary files a/www/images/front/old/2/pokladni-kniha.png and /dev/null differ
diff --git a/www/images/front/old/2/prehled-akci.png b/www/images/front/old/2/prehled-akci.png
deleted file mode 100644
index 2f0e14cd8..000000000
Binary files a/www/images/front/old/2/prehled-akci.png and /dev/null differ
diff --git a/www/images/front/old/2/seznam-ucastniku-akce.png b/www/images/front/old/2/seznam-ucastniku-akce.png
deleted file mode 100644
index 986b3f146..000000000
Binary files a/www/images/front/old/2/seznam-ucastniku-akce.png and /dev/null differ
diff --git a/www/images/front/old/2/zakladni-udaje-akce.png b/www/images/front/old/2/zakladni-udaje-akce.png
deleted file mode 100644
index 5833a6b46..000000000
Binary files a/www/images/front/old/2/zakladni-udaje-akce.png and /dev/null differ
diff --git a/www/images/front/old/3/pokladni-kniha.png b/www/images/front/old/3/pokladni-kniha.png
deleted file mode 100644
index 040bfcce3..000000000
Binary files a/www/images/front/old/3/pokladni-kniha.png and /dev/null differ
diff --git a/www/images/front/old/3/prehled-akci.png b/www/images/front/old/3/prehled-akci.png
deleted file mode 100644
index 7ecfce008..000000000
Binary files a/www/images/front/old/3/prehled-akci.png and /dev/null differ
diff --git a/www/images/front/old/3/seznam-ucastniku-akce.png b/www/images/front/old/3/seznam-ucastniku-akce.png
deleted file mode 100644
index 986b3f146..000000000
Binary files a/www/images/front/old/3/seznam-ucastniku-akce.png and /dev/null differ
diff --git a/www/images/front/old/3/zakladni-udaje-akce.png b/www/images/front/old/3/zakladni-udaje-akce.png
deleted file mode 100644
index 97525d38e..000000000
Binary files a/www/images/front/old/3/zakladni-udaje-akce.png and /dev/null differ
diff --git a/www/images/front/pokladni-kniha.png b/www/images/front/pokladni-kniha.png
deleted file mode 100644
index 46836d789..000000000
Binary files a/www/images/front/pokladni-kniha.png and /dev/null differ
diff --git a/www/images/front/prehled-akci.png b/www/images/front/prehled-akci.png
deleted file mode 100644
index 11f4d2ee6..000000000
Binary files a/www/images/front/prehled-akci.png and /dev/null differ
diff --git a/www/images/front/seznam-ucastniku-akce.png b/www/images/front/seznam-ucastniku-akce.png
deleted file mode 100644
index 367554a58..000000000
Binary files a/www/images/front/seznam-ucastniku-akce.png and /dev/null differ
diff --git a/www/images/front/support.png b/www/images/front/support.png
new file mode 100644
index 000000000..73938a50e
Binary files /dev/null and b/www/images/front/support.png differ
diff --git a/www/images/front/zakladni-udaje-akce.png b/www/images/front/zakladni-udaje-akce.png
deleted file mode 100644
index 03df3d5bb..000000000
Binary files a/www/images/front/zakladni-udaje-akce.png and /dev/null differ