From 07c12ccdb43b8c3565aa71b651418591ac54c331 Mon Sep 17 00:00:00 2001 From: Alisa Date: Thu, 4 Apr 2024 01:38:29 +0300 Subject: [PATCH 1/4] hw8 --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..723ef36f4 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea \ No newline at end of file From 7c4c2469531b3b1416ead2e84995c8536c552d20 Mon Sep 17 00:00:00 2001 From: Alisa Date: Fri, 5 Apr 2024 02:31:13 +0300 Subject: [PATCH 2/4] v1 --- .gitignore | 2 +- .idea/PHP_2023.iml | 8 + .idea/dataSources.local.xml | 20 + .idea/dataSources.xml | 11 + .../02b2050d-7d7e-46e0-8e21-4c76adb8c35f.xml | 1884 ++ .../_src_/database/cinema.8fLqrg.meta | 1 + .../schema/information_schema.FNRwLQ.meta | 2 + .../schema/pg_catalog.0S1ZNQ.meta | 2 + .../cinema.8fLqrg/schema/public.abK9xQ.meta | 2 + .idea/modules.xml | 8 + .idea/php.xml | 4 + .idea/vcs.xml | 6 + .idea/workspace.xml | 1140 + README.md | 12 +- app/.env | 5 + app/.env.example | 5 + app/Dockerfile | 33 + app/README.md | 53 + app/docker-compose.yml | 31 + app/www/.gitignore | 1 + app/www/books.json | 20002 ++++++++++++++++ app/www/composer.json | 17 + app/www/composer.lock | 966 + app/www/index.php | 89 + app/www/src/MainElasticsearch.php | 93 + app/www/vendor/autoload.php | 25 + app/www/vendor/composer/ClassLoader.php | 579 + app/www/vendor/composer/InstalledVersions.php | 359 + app/www/vendor/composer/LICENSE | 21 + app/www/vendor/composer/autoload_classmap.php | 10 + app/www/vendor/composer/autoload_files.php | 12 + .../vendor/composer/autoload_namespaces.php | 9 + app/www/vendor/composer/autoload_psr4.php | 21 + app/www/vendor/composer/autoload_real.php | 50 + app/www/vendor/composer/autoload_static.php | 110 + app/www/vendor/composer/installed.json | 995 + app/www/vendor/composer/installed.php | 182 + app/www/vendor/composer/platform_check.php | 26 + app/www/vendor/elastic/transport | 1 + app/www/vendor/elasticsearch/elasticsearch | 1 + app/www/vendor/guzzlehttp/guzzle | 1 + app/www/vendor/guzzlehttp/promises | 1 + app/www/vendor/guzzlehttp/psr7 | 1 + app/www/vendor/php-http/discovery | 1 + app/www/vendor/php-http/httplug | 1 + app/www/vendor/php-http/promise | 1 + app/www/vendor/psr/http-client | 1 + app/www/vendor/psr/http-factory | 1 + app/www/vendor/psr/http-message | 1 + app/www/vendor/psr/log | 1 + app/www/vendor/ralouphie/getallheaders | 1 + app/www/vendor/symfony/deprecation-contracts | 1 + images/2024-04-05_01-35-56.png | Bin 0 -> 172313 bytes 53 files changed, 26808 insertions(+), 2 deletions(-) create mode 100644 .idea/PHP_2023.iml create mode 100644 .idea/dataSources.local.xml create mode 100644 .idea/dataSources.xml create mode 100644 .idea/dataSources/02b2050d-7d7e-46e0-8e21-4c76adb8c35f.xml create mode 100644 .idea/dataSources/02b2050d-7d7e-46e0-8e21-4c76adb8c35f/storage_v2/_src_/database/cinema.8fLqrg.meta create mode 100644 .idea/dataSources/02b2050d-7d7e-46e0-8e21-4c76adb8c35f/storage_v2/_src_/database/cinema.8fLqrg/schema/information_schema.FNRwLQ.meta create mode 100644 .idea/dataSources/02b2050d-7d7e-46e0-8e21-4c76adb8c35f/storage_v2/_src_/database/cinema.8fLqrg/schema/pg_catalog.0S1ZNQ.meta create mode 100644 .idea/dataSources/02b2050d-7d7e-46e0-8e21-4c76adb8c35f/storage_v2/_src_/database/cinema.8fLqrg/schema/public.abK9xQ.meta create mode 100644 .idea/modules.xml create mode 100644 .idea/php.xml create mode 100644 .idea/vcs.xml create mode 100644 .idea/workspace.xml create mode 100644 app/.env create mode 100644 app/.env.example create mode 100644 app/Dockerfile create mode 100644 app/README.md create mode 100644 app/docker-compose.yml create mode 100644 app/www/.gitignore create mode 100644 app/www/books.json create mode 100644 app/www/composer.json create mode 100644 app/www/composer.lock create mode 100644 app/www/index.php create mode 100644 app/www/src/MainElasticsearch.php create mode 100644 app/www/vendor/autoload.php create mode 100644 app/www/vendor/composer/ClassLoader.php create mode 100644 app/www/vendor/composer/InstalledVersions.php create mode 100644 app/www/vendor/composer/LICENSE create mode 100644 app/www/vendor/composer/autoload_classmap.php create mode 100644 app/www/vendor/composer/autoload_files.php create mode 100644 app/www/vendor/composer/autoload_namespaces.php create mode 100644 app/www/vendor/composer/autoload_psr4.php create mode 100644 app/www/vendor/composer/autoload_real.php create mode 100644 app/www/vendor/composer/autoload_static.php create mode 100644 app/www/vendor/composer/installed.json create mode 100644 app/www/vendor/composer/installed.php create mode 100644 app/www/vendor/composer/platform_check.php create mode 160000 app/www/vendor/elastic/transport create mode 160000 app/www/vendor/elasticsearch/elasticsearch create mode 160000 app/www/vendor/guzzlehttp/guzzle create mode 160000 app/www/vendor/guzzlehttp/promises create mode 160000 app/www/vendor/guzzlehttp/psr7 create mode 160000 app/www/vendor/php-http/discovery create mode 160000 app/www/vendor/php-http/httplug create mode 160000 app/www/vendor/php-http/promise create mode 160000 app/www/vendor/psr/http-client create mode 160000 app/www/vendor/psr/http-factory create mode 160000 app/www/vendor/psr/http-message create mode 160000 app/www/vendor/psr/log create mode 160000 app/www/vendor/ralouphie/getallheaders create mode 160000 app/www/vendor/symfony/deprecation-contracts create mode 100644 images/2024-04-05_01-35-56.png diff --git a/.gitignore b/.gitignore index 723ef36f4..c28948fb0 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -.idea \ No newline at end of file +/app/.env \ No newline at end of file diff --git a/.idea/PHP_2023.iml b/.idea/PHP_2023.iml new file mode 100644 index 000000000..c956989b2 --- /dev/null +++ b/.idea/PHP_2023.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/dataSources.local.xml b/.idea/dataSources.local.xml new file mode 100644 index 000000000..5845f2281 --- /dev/null +++ b/.idea/dataSources.local.xml @@ -0,0 +1,20 @@ + + + + + + " + + + master_key + alisa + + + + + + + + + + \ No newline at end of file diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml new file mode 100644 index 000000000..48c65e8ca --- /dev/null +++ b/.idea/dataSources.xml @@ -0,0 +1,11 @@ + + + + + postgresql + true + org.postgresql.Driver + jdbc:postgresql://localhost:5432/cinema + + + \ No newline at end of file diff --git a/.idea/dataSources/02b2050d-7d7e-46e0-8e21-4c76adb8c35f.xml b/.idea/dataSources/02b2050d-7d7e-46e0-8e21-4c76adb8c35f.xml new file mode 100644 index 000000000..42804187d --- /dev/null +++ b/.idea/dataSources/02b2050d-7d7e-46e0-8e21-4c76adb8c35f.xml @@ -0,0 +1,1884 @@ + + + + + 15.5 + mdy + true ACDT +true ACSST +false ACST +false ACT +false ACWST +true ADT +true AEDT +true AESST +false AEST +false AFT +true AKDT +false AKST +true ALMST +false ALMT +false AMST +false AMT +false ANAST +false ANAT +false ARST +false ART +false AST +true AWSST +false AWST +true AZOST +false AZOT +false AZST +false AZT +false Africa/Abidjan +false Africa/Accra +false Africa/Addis_Ababa +false Africa/Algiers +false Africa/Asmara +false Africa/Asmera +false Africa/Bamako +false Africa/Bangui +false Africa/Banjul +false Africa/Bissau +false Africa/Blantyre +false Africa/Brazzaville +false Africa/Bujumbura +false Africa/Cairo +true Africa/Casablanca +true Africa/Ceuta +false Africa/Conakry +false Africa/Dakar +false Africa/Dar_es_Salaam +false Africa/Djibouti +false Africa/Douala +true Africa/El_Aaiun +false Africa/Freetown +false Africa/Gaborone +false Africa/Harare +false Africa/Johannesburg +false Africa/Juba +false Africa/Kampala +false Africa/Khartoum +false Africa/Kigali +false Africa/Kinshasa +false Africa/Lagos +false Africa/Libreville +false Africa/Lome +false Africa/Luanda +false Africa/Lubumbashi +false Africa/Lusaka +false Africa/Malabo +false Africa/Maputo +false Africa/Maseru +false Africa/Mbabane +false Africa/Mogadishu +false Africa/Monrovia +false Africa/Nairobi +false Africa/Ndjamena +false Africa/Niamey +false Africa/Nouakchott +false Africa/Ouagadougou +false Africa/Porto-Novo +false Africa/Sao_Tome +false Africa/Timbuktu +false Africa/Tripoli +false Africa/Tunis +false Africa/Windhoek +true America/Adak +true America/Anchorage +false America/Anguilla +false America/Antigua +false America/Araguaina +false America/Argentina/Buenos_Aires +false America/Argentina/Catamarca +false America/Argentina/ComodRivadavia +false America/Argentina/Cordoba +false America/Argentina/Jujuy +false America/Argentina/La_Rioja +false America/Argentina/Mendoza +false America/Argentina/Rio_Gallegos +false America/Argentina/Salta +false America/Argentina/San_Juan +false America/Argentina/San_Luis +false America/Argentina/Tucuman +false America/Argentina/Ushuaia +false America/Aruba +false America/Asuncion +false America/Atikokan +true America/Atka +false America/Bahia +false America/Bahia_Banderas +false America/Barbados +false America/Belem +false America/Belize +false America/Blanc-Sablon +false America/Boa_Vista +false America/Bogota +true America/Boise +false America/Buenos_Aires +true America/Cambridge_Bay +false America/Campo_Grande +false America/Cancun +false America/Caracas +false America/Catamarca +false America/Cayenne +false America/Cayman +true America/Chicago +false America/Chihuahua +true America/Ciudad_Juarez +false America/Coral_Harbour +false America/Cordoba +false America/Costa_Rica +false America/Creston +false America/Cuiaba +false America/Curacao +false America/Danmarkshavn +false America/Dawson +false America/Dawson_Creek +true America/Denver +true America/Detroit +false America/Dominica +true America/Edmonton +false America/Eirunepe +false America/El_Salvador +true America/Ensenada +false America/Fort_Nelson +true America/Fort_Wayne +false America/Fortaleza +true America/Glace_Bay +true America/Godthab +true America/Goose_Bay +true America/Grand_Turk +false America/Grenada +false America/Guadeloupe +false America/Guatemala +false America/Guayaquil +false America/Guyana +true America/Halifax +true America/Havana +false America/Hermosillo +true America/Indiana/Indianapolis +true America/Indiana/Knox +true America/Indiana/Marengo +true America/Indiana/Petersburg +true America/Indiana/Tell_City +true America/Indiana/Vevay +true America/Indiana/Vincennes +true America/Indiana/Winamac +true America/Indianapolis +true America/Inuvik +true America/Iqaluit +false America/Jamaica +false America/Jujuy +true America/Juneau +true America/Kentucky/Louisville +true America/Kentucky/Monticello +true America/Knox_IN +false America/Kralendijk +false America/La_Paz +false America/Lima +true America/Los_Angeles +true America/Louisville +false America/Lower_Princes +false America/Maceio +false America/Managua +false America/Manaus +false America/Marigot +false America/Martinique +true America/Matamoros +false America/Mazatlan +false America/Mendoza +true America/Menominee +false America/Merida +true America/Metlakatla +false America/Mexico_City +true America/Miquelon +true America/Moncton +false America/Monterrey +false America/Montevideo +true America/Montreal +false America/Montserrat +true America/Nassau +true America/New_York +true America/Nipigon +true America/Nome +false America/Noronha +true America/North_Dakota/Beulah +true America/North_Dakota/Center +true America/North_Dakota/New_Salem +true America/Nuuk +true America/Ojinaga +false America/Panama +true America/Pangnirtung +false America/Paramaribo +false America/Phoenix +true America/Port-au-Prince +false America/Port_of_Spain +false America/Porto_Acre +false America/Porto_Velho +false America/Puerto_Rico +false America/Punta_Arenas +true America/Rainy_River +true America/Rankin_Inlet +false America/Recife +false America/Regina +true America/Resolute +false America/Rio_Branco +false America/Rosario +true America/Santa_Isabel +false America/Santarem +true America/Santiago +false America/Santo_Domingo +false America/Sao_Paulo +true America/Scoresbysund +true America/Shiprock +true America/Sitka +false America/St_Barthelemy +true America/St_Johns +false America/St_Kitts +false America/St_Lucia +false America/St_Thomas +false America/St_Vincent +false America/Swift_Current +false America/Tegucigalpa +true America/Thule +true America/Thunder_Bay +true America/Tijuana +true America/Toronto +false America/Tortola +true America/Vancouver +false America/Virgin +false America/Whitehorse +true America/Winnipeg +true America/Yakutat +true America/Yellowknife +false Antarctica/Casey +false Antarctica/Davis +false Antarctica/DumontDUrville +true Antarctica/Macquarie +false Antarctica/Mawson +true Antarctica/McMurdo +false Antarctica/Palmer +false Antarctica/Rothera +true Antarctica/South_Pole +false Antarctica/Syowa +true Antarctica/Troll +false Antarctica/Vostok +true Arctic/Longyearbyen +false Asia/Aden +false Asia/Almaty +false Asia/Amman +false Asia/Anadyr +false Asia/Aqtau +false Asia/Aqtobe +false Asia/Ashgabat +false Asia/Ashkhabad +false Asia/Atyrau +false Asia/Baghdad +false Asia/Bahrain +false Asia/Baku +false Asia/Bangkok +false Asia/Barnaul +true Asia/Beirut +false Asia/Bishkek +false Asia/Brunei +false Asia/Calcutta +false Asia/Chita +false Asia/Choibalsan +false Asia/Chongqing +false Asia/Chungking +false Asia/Colombo +false Asia/Dacca +false Asia/Damascus +false Asia/Dhaka +false Asia/Dili +false Asia/Dubai +false Asia/Dushanbe +true Asia/Famagusta +false Asia/Gaza +false Asia/Harbin +false Asia/Hebron +false Asia/Ho_Chi_Minh +false Asia/Hong_Kong +false Asia/Hovd +false Asia/Irkutsk +false Asia/Istanbul +false Asia/Jakarta +false Asia/Jayapura +true Asia/Jerusalem +false Asia/Kabul +false Asia/Kamchatka +false Asia/Karachi +false Asia/Kashgar +false Asia/Kathmandu +false Asia/Katmandu +false Asia/Khandyga +false Asia/Kolkata +false Asia/Krasnoyarsk +false Asia/Kuala_Lumpur +false Asia/Kuching +false Asia/Kuwait +false Asia/Macao +false Asia/Macau +false Asia/Magadan +false Asia/Makassar +false Asia/Manila +false Asia/Muscat +true Asia/Nicosia +false Asia/Novokuznetsk +false Asia/Novosibirsk +false Asia/Omsk +false Asia/Oral +false Asia/Phnom_Penh +false Asia/Pontianak +false Asia/Pyongyang +false Asia/Qatar +false Asia/Qostanay +false Asia/Qyzylorda +false Asia/Rangoon +false Asia/Riyadh +false Asia/Saigon +false Asia/Sakhalin +false Asia/Samarkand +false Asia/Seoul +false Asia/Shanghai +false Asia/Singapore +false Asia/Srednekolymsk +false Asia/Taipei +false Asia/Tashkent +false Asia/Tbilisi +false Asia/Tehran +true Asia/Tel_Aviv +false Asia/Thimbu +false Asia/Thimphu +false Asia/Tokyo +false Asia/Tomsk +false Asia/Ujung_Pandang +false Asia/Ulaanbaatar +false Asia/Ulan_Bator +false Asia/Urumqi +false Asia/Ust-Nera +false Asia/Vientiane +false Asia/Vladivostok +false Asia/Yakutsk +false Asia/Yangon +false Asia/Yekaterinburg +false Asia/Yerevan +true Atlantic/Azores +true Atlantic/Bermuda +true Atlantic/Canary +false Atlantic/Cape_Verde +true Atlantic/Faeroe +true Atlantic/Faroe +true Atlantic/Jan_Mayen +true Atlantic/Madeira +false Atlantic/Reykjavik +false Atlantic/South_Georgia +false Atlantic/St_Helena +false Atlantic/Stanley +true Australia/ACT +true Australia/Adelaide +false Australia/Brisbane +true Australia/Broken_Hill +true Australia/Canberra +true Australia/Currie +false Australia/Darwin +false Australia/Eucla +true Australia/Hobart +true Australia/LHI +false Australia/Lindeman +true Australia/Lord_Howe +true Australia/Melbourne +true Australia/NSW +false Australia/North +false Australia/Perth +false Australia/Queensland +true Australia/South +true Australia/Sydney +true Australia/Tasmania +true Australia/Victoria +false Australia/West +true Australia/Yancowinna +true BDST +false BDT +false BNT +false BORT +false BOT +false BRA +true BRST +false BRT +true BST +false BTT +false Brazil/Acre +false Brazil/DeNoronha +false Brazil/East +false Brazil/West +true CADT +false CAST +false CCT +true CDT +true CEST +false CET +true CETDST +true CHADT +false CHAST +false CHUT +false CKT +true CLST +true CLT +false COT +false CST +true CST6CDT +false CXT +true Canada/Atlantic +true Canada/Central +true Canada/Eastern +true Canada/Mountain +true Canada/Newfoundland +true Canada/Pacific +false Canada/Saskatchewan +false Canada/Yukon +true Chile/Continental +true Chile/EasterIsland +true Cuba +false DAVT +false DDUT +true EASST +true EAST +false EAT +true EDT +true EEST +false EET +true EETDST +true EGST +false EGT +false EST +true EST5EDT +false Egypt +false Eire +false Etc/GMT +false Etc/GMT+0 +false Etc/GMT+1 +false Etc/GMT+10 +false Etc/GMT+11 +false Etc/GMT+12 +false Etc/GMT+2 +false Etc/GMT+3 +false Etc/GMT+4 +false Etc/GMT+5 +false Etc/GMT+6 +false Etc/GMT+7 +false Etc/GMT+8 +false Etc/GMT+9 +false Etc/GMT-0 +false Etc/GMT-1 +false Etc/GMT-10 +false Etc/GMT-11 +false Etc/GMT-12 +false Etc/GMT-13 +false Etc/GMT-14 +false Etc/GMT-2 +false Etc/GMT-3 +false Etc/GMT-4 +false Etc/GMT-5 +false Etc/GMT-6 +false Etc/GMT-7 +false Etc/GMT-8 +false Etc/GMT-9 +false Etc/GMT0 +false Etc/Greenwich +false Etc/UCT +false Etc/UTC +false Etc/Universal +false Etc/Zulu +true Europe/Amsterdam +true Europe/Andorra +false Europe/Astrakhan +true Europe/Athens +true Europe/Belfast +true Europe/Belgrade +true Europe/Berlin +true Europe/Bratislava +true Europe/Brussels +true Europe/Bucharest +true Europe/Budapest +true Europe/Busingen +true Europe/Chisinau +true Europe/Copenhagen +false Europe/Dublin +true Europe/Gibraltar +true Europe/Guernsey +true Europe/Helsinki +true Europe/Isle_of_Man +false Europe/Istanbul +true Europe/Jersey +false Europe/Kaliningrad +true Europe/Kiev +false Europe/Kirov +true Europe/Kyiv +true Europe/Lisbon +true Europe/Ljubljana +true Europe/London +true Europe/Luxembourg +true Europe/Madrid +true Europe/Malta +true Europe/Mariehamn +false Europe/Minsk +true Europe/Monaco +false Europe/Moscow +true Europe/Nicosia +true Europe/Oslo +true Europe/Paris +true Europe/Podgorica +true Europe/Prague +true Europe/Riga +true Europe/Rome +false Europe/Samara +true Europe/San_Marino +true Europe/Sarajevo +false Europe/Saratov +false Europe/Simferopol +true Europe/Skopje +true Europe/Sofia +true Europe/Stockholm +true Europe/Tallinn +true Europe/Tirane +true Europe/Tiraspol +false Europe/Ulyanovsk +true Europe/Uzhgorod +true Europe/Vaduz +true Europe/Vatican +true Europe/Vienna +true Europe/Vilnius +false Europe/Volgograd +true Europe/Warsaw +true Europe/Zagreb +true Europe/Zaporozhye +true Europe/Zurich +false FET +true FJST +false FJT +false FKST +false FKT +true FNST +false FNT +false Factory +false GALT +false GAMT +true GB +true GB-Eire +false GEST +false GET +false GFT +false GILT +false GMT +false GMT+0 +false GMT-0 +false GMT0 +false GYT +false Greenwich +false HKT +false HST +false Hongkong +false ICT +true IDT +false IOT +false IRKST +false IRKT +false IRT +false IST +false Iceland +false Indian/Antananarivo +false Indian/Chagos +false Indian/Christmas +false Indian/Cocos +false Indian/Comoro +false Indian/Kerguelen +false Indian/Mahe +false Indian/Maldives +false Indian/Mauritius +false Indian/Mayotte +false Indian/Reunion +false Iran +true Israel +false JAYT +false JST +false Jamaica +false Japan +true KDT +true KGST +false KGT +false KOST +false KRAST +false KRAT +false KST +false Kwajalein +true LHDT +false LHST +false LIGT +false LINT +false LKT +false Libya +false MAGST +false MAGT +false MART +false MAWT +true MDT +true MEST +true MESZ +true MET +true METDST +false MEZ +false MHT +false MMT +false MPT +true MSD +false MSK +false MST +true MST7MDT +true MUST +false MUT +false MVT +false MYT +true Mexico/BajaNorte +false Mexico/BajaSur +false Mexico/General +true NDT +false NFT +false NOVST +false NOVT +false NPT +false NST +false NUT +true NZ +true NZ-CHAT +true NZDT +false NZST +false NZT +true Navajo +false OMSST +false OMST +true PDT +false PET +false PETST +false PETT +false PGT +false PHT +true PKST +false PKT +true PMDT +false PMST +false PONT +false PRC +false PST +true PST8PDT +false PWT +true PYST +false PYT +false Pacific/Apia +true Pacific/Auckland +false Pacific/Bougainville +true Pacific/Chatham +false Pacific/Chuuk +true Pacific/Easter +false Pacific/Efate +false Pacific/Enderbury +false Pacific/Fakaofo +false Pacific/Fiji +false Pacific/Funafuti +false Pacific/Galapagos +false Pacific/Gambier +false Pacific/Guadalcanal +false Pacific/Guam +false Pacific/Honolulu +false Pacific/Johnston +false Pacific/Kanton +false Pacific/Kiritimati +false Pacific/Kosrae +false Pacific/Kwajalein +false Pacific/Majuro +false Pacific/Marquesas +false Pacific/Midway +false Pacific/Nauru +false Pacific/Niue +true Pacific/Norfolk +false Pacific/Noumea +false Pacific/Pago_Pago +false Pacific/Palau +false Pacific/Pitcairn +false Pacific/Pohnpei +false Pacific/Ponape +false Pacific/Port_Moresby +false Pacific/Rarotonga +false Pacific/Saipan +false Pacific/Samoa +false Pacific/Tahiti +false Pacific/Tarawa +false Pacific/Tongatapu +false Pacific/Truk +false Pacific/Wake +false Pacific/Wallis +false Pacific/Yap +true Poland +true Portugal +false RET +false ROC +false ROK +true SADT +false SAST +false SCT +false SGT +false Singapore +false TAHT +false TFT +false TJT +false TKT +false TMT +false TOT +false TRUT +false TVT +false Turkey +false UCT +true ULAST +false ULAT +true US/Alaska +true US/Aleutian +false US/Arizona +true US/Central +true US/East-Indiana +true US/Eastern +false US/Hawaii +true US/Indiana-Starke +true US/Michigan +true US/Mountain +true US/Pacific +false US/Samoa +false UT +false UTC +true UYST +false UYT +true UZST +false UZT +false Universal +false VET +false VLAST +false VLAT +false VOLT +false VUT +false W-SU +true WADT +false WAKT +false WAST +false WAT +true WDT +true WET +true WETDST +false WFT +true WGST +false WGT +false XJT +false YAKST +false YAKT +false YAPT +true YEKST +false YEKT +false Z +false Zulu +false localtime +false posix/Africa/Abidjan +false posix/Africa/Accra +false posix/Africa/Addis_Ababa +false posix/Africa/Algiers +false posix/Africa/Asmara +false posix/Africa/Asmera +false posix/Africa/Bamako +false posix/Africa/Bangui +false posix/Africa/Banjul +false posix/Africa/Bissau +false posix/Africa/Blantyre +false posix/Africa/Brazzaville +false posix/Africa/Bujumbura +false posix/Africa/Cairo +true posix/Africa/Casablanca +true posix/Africa/Ceuta +false posix/Africa/Conakry +false posix/Africa/Dakar +false posix/Africa/Dar_es_Salaam +false posix/Africa/Djibouti +false posix/Africa/Douala +true posix/Africa/El_Aaiun +false posix/Africa/Freetown +false posix/Africa/Gaborone +false posix/Africa/Harare +false posix/Africa/Johannesburg +false posix/Africa/Juba +false posix/Africa/Kampala +false posix/Africa/Khartoum +false posix/Africa/Kigali +false posix/Africa/Kinshasa +false posix/Africa/Lagos +false posix/Africa/Libreville +false posix/Africa/Lome +false posix/Africa/Luanda +false posix/Africa/Lubumbashi +false posix/Africa/Lusaka +false posix/Africa/Malabo +false posix/Africa/Maputo +false posix/Africa/Maseru +false posix/Africa/Mbabane +false posix/Africa/Mogadishu +false posix/Africa/Monrovia +false posix/Africa/Nairobi +false posix/Africa/Ndjamena +false posix/Africa/Niamey +false posix/Africa/Nouakchott +false posix/Africa/Ouagadougou +false posix/Africa/Porto-Novo +false posix/Africa/Sao_Tome +false posix/Africa/Timbuktu +false posix/Africa/Tripoli +false posix/Africa/Tunis +false posix/Africa/Windhoek +true posix/America/Adak +true posix/America/Anchorage +false posix/America/Anguilla +false posix/America/Antigua +false posix/America/Araguaina +false posix/America/Argentina/Buenos_Aires +false posix/America/Argentina/Catamarca +false posix/America/Argentina/ComodRivadavia +false posix/America/Argentina/Cordoba +false posix/America/Argentina/Jujuy +false posix/America/Argentina/La_Rioja +false posix/America/Argentina/Mendoza +false posix/America/Argentina/Rio_Gallegos +false posix/America/Argentina/Salta +false posix/America/Argentina/San_Juan +false posix/America/Argentina/San_Luis +false posix/America/Argentina/Tucuman +false posix/America/Argentina/Ushuaia +false posix/America/Aruba +false posix/America/Asuncion +false posix/America/Atikokan +true posix/America/Atka +false posix/America/Bahia +false posix/America/Bahia_Banderas +false posix/America/Barbados +false posix/America/Belem +false posix/America/Belize +false posix/America/Blanc-Sablon +false posix/America/Boa_Vista +false posix/America/Bogota +true posix/America/Boise +false posix/America/Buenos_Aires +true posix/America/Cambridge_Bay +false posix/America/Campo_Grande +false posix/America/Cancun +false posix/America/Caracas +false posix/America/Catamarca +false posix/America/Cayenne +false posix/America/Cayman +true posix/America/Chicago +false posix/America/Chihuahua +true posix/America/Ciudad_Juarez +false posix/America/Coral_Harbour +false posix/America/Cordoba +false posix/America/Costa_Rica +false posix/America/Creston +false posix/America/Cuiaba +false posix/America/Curacao +false posix/America/Danmarkshavn +false posix/America/Dawson +false posix/America/Dawson_Creek +true posix/America/Denver +true posix/America/Detroit +false posix/America/Dominica +true posix/America/Edmonton +false posix/America/Eirunepe +false posix/America/El_Salvador +true posix/America/Ensenada +false posix/America/Fort_Nelson +true posix/America/Fort_Wayne +false posix/America/Fortaleza +true posix/America/Glace_Bay +true posix/America/Godthab +true posix/America/Goose_Bay +true posix/America/Grand_Turk +false posix/America/Grenada +false posix/America/Guadeloupe +false posix/America/Guatemala +false posix/America/Guayaquil +false posix/America/Guyana +true posix/America/Halifax +true posix/America/Havana +false posix/America/Hermosillo +true posix/America/Indiana/Indianapolis +true posix/America/Indiana/Knox +true posix/America/Indiana/Marengo +true posix/America/Indiana/Petersburg +true posix/America/Indiana/Tell_City +true posix/America/Indiana/Vevay +true posix/America/Indiana/Vincennes +true posix/America/Indiana/Winamac +true posix/America/Indianapolis +true posix/America/Inuvik +true posix/America/Iqaluit +false posix/America/Jamaica +false posix/America/Jujuy +true posix/America/Juneau +true posix/America/Kentucky/Louisville +true posix/America/Kentucky/Monticello +true posix/America/Knox_IN +false posix/America/Kralendijk +false posix/America/La_Paz +false posix/America/Lima +true posix/America/Los_Angeles +true posix/America/Louisville +false posix/America/Lower_Princes +false posix/America/Maceio +false posix/America/Managua +false posix/America/Manaus +false posix/America/Marigot +false posix/America/Martinique +true posix/America/Matamoros +false posix/America/Mazatlan +false posix/America/Mendoza +true posix/America/Menominee +false posix/America/Merida +true posix/America/Metlakatla +false posix/America/Mexico_City +true posix/America/Miquelon +true posix/America/Moncton +false posix/America/Monterrey +false posix/America/Montevideo +true posix/America/Montreal +false posix/America/Montserrat +true posix/America/Nassau +true posix/America/New_York +true posix/America/Nipigon +true posix/America/Nome +false posix/America/Noronha +true posix/America/North_Dakota/Beulah +true posix/America/North_Dakota/Center +true posix/America/North_Dakota/New_Salem +true posix/America/Nuuk +true posix/America/Ojinaga +false posix/America/Panama +true posix/America/Pangnirtung +false posix/America/Paramaribo +false posix/America/Phoenix +true posix/America/Port-au-Prince +false posix/America/Port_of_Spain +false posix/America/Porto_Acre +false posix/America/Porto_Velho +false posix/America/Puerto_Rico +false posix/America/Punta_Arenas +true posix/America/Rainy_River +true posix/America/Rankin_Inlet +false posix/America/Recife +false posix/America/Regina +true posix/America/Resolute +false posix/America/Rio_Branco +false posix/America/Rosario +true posix/America/Santa_Isabel +false posix/America/Santarem +true posix/America/Santiago +false posix/America/Santo_Domingo +false posix/America/Sao_Paulo +true posix/America/Scoresbysund +true posix/America/Shiprock +true posix/America/Sitka +false posix/America/St_Barthelemy +true posix/America/St_Johns +false posix/America/St_Kitts +false posix/America/St_Lucia +false posix/America/St_Thomas +false posix/America/St_Vincent +false posix/America/Swift_Current +false posix/America/Tegucigalpa +true posix/America/Thule +true posix/America/Thunder_Bay +true posix/America/Tijuana +true posix/America/Toronto +false posix/America/Tortola +true posix/America/Vancouver +false posix/America/Virgin +false posix/America/Whitehorse +true posix/America/Winnipeg +true posix/America/Yakutat +true posix/America/Yellowknife +false posix/Antarctica/Casey +false posix/Antarctica/Davis +false posix/Antarctica/DumontDUrville +true posix/Antarctica/Macquarie +false posix/Antarctica/Mawson +true posix/Antarctica/McMurdo +false posix/Antarctica/Palmer +false posix/Antarctica/Rothera +true posix/Antarctica/South_Pole +false posix/Antarctica/Syowa +true posix/Antarctica/Troll +false posix/Antarctica/Vostok +true posix/Arctic/Longyearbyen +false posix/Asia/Aden +false posix/Asia/Almaty +false posix/Asia/Amman +false posix/Asia/Anadyr +false posix/Asia/Aqtau +false posix/Asia/Aqtobe +false posix/Asia/Ashgabat +false posix/Asia/Ashkhabad +false posix/Asia/Atyrau +false posix/Asia/Baghdad +false posix/Asia/Bahrain +false posix/Asia/Baku +false posix/Asia/Bangkok +false posix/Asia/Barnaul +true posix/Asia/Beirut +false posix/Asia/Bishkek +false posix/Asia/Brunei +false posix/Asia/Calcutta +false posix/Asia/Chita +false posix/Asia/Choibalsan +false posix/Asia/Chongqing +false posix/Asia/Chungking +false posix/Asia/Colombo +false posix/Asia/Dacca +false posix/Asia/Damascus +false posix/Asia/Dhaka +false posix/Asia/Dili +false posix/Asia/Dubai +false posix/Asia/Dushanbe +true posix/Asia/Famagusta +false posix/Asia/Gaza +false posix/Asia/Harbin +false posix/Asia/Hebron +false posix/Asia/Ho_Chi_Minh +false posix/Asia/Hong_Kong +false posix/Asia/Hovd +false posix/Asia/Irkutsk +false posix/Asia/Istanbul +false posix/Asia/Jakarta +false posix/Asia/Jayapura +true posix/Asia/Jerusalem +false posix/Asia/Kabul +false posix/Asia/Kamchatka +false posix/Asia/Karachi +false posix/Asia/Kashgar +false posix/Asia/Kathmandu +false posix/Asia/Katmandu +false posix/Asia/Khandyga +false posix/Asia/Kolkata +false posix/Asia/Krasnoyarsk +false posix/Asia/Kuala_Lumpur +false posix/Asia/Kuching +false posix/Asia/Kuwait +false posix/Asia/Macao +false posix/Asia/Macau +false posix/Asia/Magadan +false posix/Asia/Makassar +false posix/Asia/Manila +false posix/Asia/Muscat +true posix/Asia/Nicosia +false posix/Asia/Novokuznetsk +false posix/Asia/Novosibirsk +false posix/Asia/Omsk +false posix/Asia/Oral +false posix/Asia/Phnom_Penh +false posix/Asia/Pontianak +false posix/Asia/Pyongyang +false posix/Asia/Qatar +false posix/Asia/Qostanay +false posix/Asia/Qyzylorda +false posix/Asia/Rangoon +false posix/Asia/Riyadh +false posix/Asia/Saigon +false posix/Asia/Sakhalin +false posix/Asia/Samarkand +false posix/Asia/Seoul +false posix/Asia/Shanghai +false posix/Asia/Singapore +false posix/Asia/Srednekolymsk +false posix/Asia/Taipei +false posix/Asia/Tashkent +false posix/Asia/Tbilisi +false posix/Asia/Tehran +true posix/Asia/Tel_Aviv +false posix/Asia/Thimbu +false posix/Asia/Thimphu +false posix/Asia/Tokyo +false posix/Asia/Tomsk +false posix/Asia/Ujung_Pandang +false posix/Asia/Ulaanbaatar +false posix/Asia/Ulan_Bator +false posix/Asia/Urumqi +false posix/Asia/Ust-Nera +false posix/Asia/Vientiane +false posix/Asia/Vladivostok +false posix/Asia/Yakutsk +false posix/Asia/Yangon +false posix/Asia/Yekaterinburg +false posix/Asia/Yerevan +true posix/Atlantic/Azores +true posix/Atlantic/Bermuda +true posix/Atlantic/Canary +false posix/Atlantic/Cape_Verde +true posix/Atlantic/Faeroe +true posix/Atlantic/Faroe +true posix/Atlantic/Jan_Mayen +true posix/Atlantic/Madeira +false posix/Atlantic/Reykjavik +false posix/Atlantic/South_Georgia +false posix/Atlantic/St_Helena +false posix/Atlantic/Stanley +true posix/Australia/ACT +true posix/Australia/Adelaide +false posix/Australia/Brisbane +true posix/Australia/Broken_Hill +true posix/Australia/Canberra +true posix/Australia/Currie +false posix/Australia/Darwin +false posix/Australia/Eucla +true posix/Australia/Hobart +true posix/Australia/LHI +false posix/Australia/Lindeman +true posix/Australia/Lord_Howe +true posix/Australia/Melbourne +true posix/Australia/NSW +false posix/Australia/North +false posix/Australia/Perth +false posix/Australia/Queensland +true posix/Australia/South +true posix/Australia/Sydney +true posix/Australia/Tasmania +true posix/Australia/Victoria +false posix/Australia/West +true posix/Australia/Yancowinna +false posix/Brazil/Acre +false posix/Brazil/DeNoronha +false posix/Brazil/East +false posix/Brazil/West +true posix/CET +true posix/CST6CDT +true posix/Canada/Atlantic +true posix/Canada/Central +true posix/Canada/Eastern +true posix/Canada/Mountain +true posix/Canada/Newfoundland +true posix/Canada/Pacific +false posix/Canada/Saskatchewan +false posix/Canada/Yukon +true posix/Chile/Continental +true posix/Chile/EasterIsland +true posix/Cuba +true posix/EET +false posix/EST +true posix/EST5EDT +false posix/Egypt +false posix/Eire +false posix/Etc/GMT +false posix/Etc/GMT+0 +false posix/Etc/GMT+1 +false posix/Etc/GMT+10 +false posix/Etc/GMT+11 +false posix/Etc/GMT+12 +false posix/Etc/GMT+2 +false posix/Etc/GMT+3 +false posix/Etc/GMT+4 +false posix/Etc/GMT+5 +false posix/Etc/GMT+6 +false posix/Etc/GMT+7 +false posix/Etc/GMT+8 +false posix/Etc/GMT+9 +false posix/Etc/GMT-0 +false posix/Etc/GMT-1 +false posix/Etc/GMT-10 +false posix/Etc/GMT-11 +false posix/Etc/GMT-12 +false posix/Etc/GMT-13 +false posix/Etc/GMT-14 +false posix/Etc/GMT-2 +false posix/Etc/GMT-3 +false posix/Etc/GMT-4 +false posix/Etc/GMT-5 +false posix/Etc/GMT-6 +false posix/Etc/GMT-7 +false posix/Etc/GMT-8 +false posix/Etc/GMT-9 +false posix/Etc/GMT0 +false posix/Etc/Greenwich +false posix/Etc/UCT +false posix/Etc/UTC +false posix/Etc/Universal +false posix/Etc/Zulu +true posix/Europe/Amsterdam +true posix/Europe/Andorra +false posix/Europe/Astrakhan +true posix/Europe/Athens +true posix/Europe/Belfast +true posix/Europe/Belgrade +true posix/Europe/Berlin +true posix/Europe/Bratislava +true posix/Europe/Brussels +true posix/Europe/Bucharest +true posix/Europe/Budapest +true posix/Europe/Busingen +true posix/Europe/Chisinau +true posix/Europe/Copenhagen +false posix/Europe/Dublin +true posix/Europe/Gibraltar +true posix/Europe/Guernsey +true posix/Europe/Helsinki +true posix/Europe/Isle_of_Man +false posix/Europe/Istanbul +true posix/Europe/Jersey +false posix/Europe/Kaliningrad +true posix/Europe/Kiev +false posix/Europe/Kirov +true posix/Europe/Kyiv +true posix/Europe/Lisbon +true posix/Europe/Ljubljana +true posix/Europe/London +true posix/Europe/Luxembourg +true posix/Europe/Madrid +true posix/Europe/Malta +true posix/Europe/Mariehamn +false posix/Europe/Minsk +true posix/Europe/Monaco +false posix/Europe/Moscow +true posix/Europe/Nicosia +true posix/Europe/Oslo +true posix/Europe/Paris +true posix/Europe/Podgorica +true posix/Europe/Prague +true posix/Europe/Riga +true posix/Europe/Rome +false posix/Europe/Samara +true posix/Europe/San_Marino +true posix/Europe/Sarajevo +false posix/Europe/Saratov +false posix/Europe/Simferopol +true posix/Europe/Skopje +true posix/Europe/Sofia +true posix/Europe/Stockholm +true posix/Europe/Tallinn +true posix/Europe/Tirane +true posix/Europe/Tiraspol +false posix/Europe/Ulyanovsk +true posix/Europe/Uzhgorod +true posix/Europe/Vaduz +true posix/Europe/Vatican +true posix/Europe/Vienna +true posix/Europe/Vilnius +false posix/Europe/Volgograd +true posix/Europe/Warsaw +true posix/Europe/Zagreb +true posix/Europe/Zaporozhye +true posix/Europe/Zurich +false posix/Factory +true posix/GB +true posix/GB-Eire +false posix/GMT +false posix/GMT+0 +false posix/GMT-0 +false posix/GMT0 +false posix/Greenwich +false posix/HST +false posix/Hongkong +false posix/Iceland +false posix/Indian/Antananarivo +false posix/Indian/Chagos +false posix/Indian/Christmas +false posix/Indian/Cocos +false posix/Indian/Comoro +false posix/Indian/Kerguelen +false posix/Indian/Mahe +false posix/Indian/Maldives +false posix/Indian/Mauritius +false posix/Indian/Mayotte +false posix/Indian/Reunion +false posix/Iran +true posix/Israel +false posix/Jamaica +false posix/Japan +false posix/Kwajalein +false posix/Libya +true posix/MET +false posix/MST +true posix/MST7MDT +true posix/Mexico/BajaNorte +false posix/Mexico/BajaSur +false posix/Mexico/General +true posix/NZ +true posix/NZ-CHAT +true posix/Navajo +false posix/PRC +true posix/PST8PDT +false posix/Pacific/Apia +true posix/Pacific/Auckland +false posix/Pacific/Bougainville +true posix/Pacific/Chatham +false posix/Pacific/Chuuk +true posix/Pacific/Easter +false posix/Pacific/Efate +false posix/Pacific/Enderbury +false posix/Pacific/Fakaofo +false posix/Pacific/Fiji +false posix/Pacific/Funafuti +false posix/Pacific/Galapagos +false posix/Pacific/Gambier +false posix/Pacific/Guadalcanal +false posix/Pacific/Guam +false posix/Pacific/Honolulu +false posix/Pacific/Johnston +false posix/Pacific/Kanton +false posix/Pacific/Kiritimati +false posix/Pacific/Kosrae +false posix/Pacific/Kwajalein +false posix/Pacific/Majuro +false posix/Pacific/Marquesas +false posix/Pacific/Midway +false posix/Pacific/Nauru +false posix/Pacific/Niue +true posix/Pacific/Norfolk +false posix/Pacific/Noumea +false posix/Pacific/Pago_Pago +false posix/Pacific/Palau +false posix/Pacific/Pitcairn +false posix/Pacific/Pohnpei +false posix/Pacific/Ponape +false posix/Pacific/Port_Moresby +false posix/Pacific/Rarotonga +false posix/Pacific/Saipan +false posix/Pacific/Samoa +false posix/Pacific/Tahiti +false posix/Pacific/Tarawa +false posix/Pacific/Tongatapu +false posix/Pacific/Truk +false posix/Pacific/Wake +false posix/Pacific/Wallis +false posix/Pacific/Yap +true posix/Poland +true posix/Portugal +false posix/ROC +false posix/ROK +false posix/Singapore +false posix/Turkey +false posix/UCT +true posix/US/Alaska +true posix/US/Aleutian +false posix/US/Arizona +true posix/US/Central +true posix/US/East-Indiana +true posix/US/Eastern +false posix/US/Hawaii +true posix/US/Indiana-Starke +true posix/US/Michigan +true posix/US/Mountain +true posix/US/Pacific +false posix/US/Samoa +false posix/UTC +false posix/Universal +false posix/W-SU +true posix/WET +false posix/Zulu +true posixrules + + 1712228415 + + + 16384 + alisa + 758 + 1 + sequence|table|16389|16390|1 +sequence|table|16400|16401|1 +sequence|table|16414|16415|1 +sequence|table|16422|16423|1 +sequence|table|16432|16433|1 + + + + 5 + default administrative connection database + alisa + + + 10 + 1 + 1 + 1 + 1 + 1 + 1 + + + 4544 + + + 6171 + + + 4571 + + + 3373 + + + 6181 + + + 3374 + + + 3375 + + + 4569 + + + 4200 + + + 3377 + + + 6182 + + + 4570 + + + 13209 + 524 + alisa + + + 11 + system catalog schema + 518 + alisa + + + 2200 + standard public schema + 518 + pg_database_owner + 1 + + + 2 + heap table access method + 1 + pg_catalog.heap_tableam_handler + 3 + + + 403 + b-tree index access method + 1 + pg_catalog.bthandler + 330 + index + + + 405 + hash index access method + 1 + pg_catalog.hashhandler + 331 + index + + + 783 + GiST index access method + 1 + pg_catalog.gisthandler + 332 + index + + + 2742 + GIN index access method + 1 + pg_catalog.ginhandler + 333 + index + + + 4000 + SP-GiST index access method + 1 + pg_catalog.spghandler + 334 + index + + + 3580 + block range index (BRIN) access method + 1 + pg_catalog.brinhandler + 335 + index + + + 13561 + PL/pgSQL procedural language + 678 + 1.0 + pg_catalog + 11 + + + + + + + 16389 + alisa + 739 + integer|0s + + + 16422 + alisa + 747 + integer|0s + + + 16400 + alisa + 741 + integer|0s + + + 16414 + alisa + 744 + integer|0s + + + 16432 + alisa + 750 + integer|0s + + + 16390 + alisa + 741 +
+ + 16423 + alisa + 747 +
+ + 16401 + alisa + 741 +
+ + 16441 + alisa + 753 +
+ + 16415 + alisa + 757 +
+ + 16433 + alisa + 750 +
+ + 1 + integer|0s + 1 + 739 + nextval('cinema_id_seq'::regclass) + 23 + + + 2 + varchar|0s + 1 + 739 + 1043 + + + 3 + integer|0s + 739 + 1 + 23 + + + 4 + varchar|0s + 739 + 1043 + + + 5 + integer|0s + 739 + 1 + 23 + + + 16398 + 739 + id + 1 + 1 + + + 16399 + 739 + id + 1 + cinema_pk + + + 1 + integer|0s + 1 + 747 + nextval('film_id_seq'::regclass) + 23 + + + 2 + varchar|0s + 1 + 747 + 1043 + + + 3 + integer|0s + 1 + 747 + 23 + + + 16431 + 749 + id + 1 + + + 16429 + 747 + id + 1 + 1 + + + 16430 + 747 + id + 1 + film_pk + + + 1 + integer|0s + 1 + 741 + nextval('hall_id_seq'::regclass) + 23 + + + 2 + integer|0s + 1 + 741 + 23 + + + 3 + integer|0s + 741 + 1 + 23 + + + 16413 + 743 + id + 1 + + + 16406 + 741 + id + 1 + 1 + + + 16407 + 741 + id + 1 + hall_pk + + + 16408 + 741 + cinema_id + 16390 + 1 + cinema + cinema_pk + id + cascade + cascade + + + 1 + integer|0s + 1 + 753 + 23 + + + 2 + integer|0s + 1 + 753 + 23 + + + 3 + integer|0s + 1 + 753 + 23 + + + 1 + integer|0s + 1 + 744 + nextval('session_id_seq'::regclass) + 23 + + + 2 + integer|0s + 1 + 744 + 23 + + + 3 + integer|0s + 1 + 744 + 23 + + + 4 + integer|0s + 1 + 744 + 23 + + + 5 + integer|0s + 1 + 757 + 23 + + + 16421 + 746 + id + 1 + + + 16419 + 744 + id + 1 + 1 + + + 16420 + 744 + id + 1 + session_pk + + + 1 + integer|0s + 1 + 750 + nextval('ticket_id_seq'::regclass) + 23 + + + 2 + integer|0s + 1 + 750 + 23 + + + 3 + integer|0s + 1 + 750 + 23 + + + 4 + integer|0s + 1 + 750 + 23 + + + 5 + integer|0s + 1 + 750 + 1 + 23 + + + 6 + integer|0s + 1 + 750 + 23 + + + 16440 + 752 + id + 1 + + + 16438 + 750 + id + 1 + 1 + + + 16439 + 750 + id + 1 + ticket_pk + +
+
\ No newline at end of file diff --git a/.idea/dataSources/02b2050d-7d7e-46e0-8e21-4c76adb8c35f/storage_v2/_src_/database/cinema.8fLqrg.meta b/.idea/dataSources/02b2050d-7d7e-46e0-8e21-4c76adb8c35f/storage_v2/_src_/database/cinema.8fLqrg.meta new file mode 100644 index 000000000..f023a70cc --- /dev/null +++ b/.idea/dataSources/02b2050d-7d7e-46e0-8e21-4c76adb8c35f/storage_v2/_src_/database/cinema.8fLqrg.meta @@ -0,0 +1 @@ +#n:cinema \ No newline at end of file diff --git a/.idea/dataSources/02b2050d-7d7e-46e0-8e21-4c76adb8c35f/storage_v2/_src_/database/cinema.8fLqrg/schema/information_schema.FNRwLQ.meta b/.idea/dataSources/02b2050d-7d7e-46e0-8e21-4c76adb8c35f/storage_v2/_src_/database/cinema.8fLqrg/schema/information_schema.FNRwLQ.meta new file mode 100644 index 000000000..1ff3db2eb --- /dev/null +++ b/.idea/dataSources/02b2050d-7d7e-46e0-8e21-4c76adb8c35f/storage_v2/_src_/database/cinema.8fLqrg/schema/information_schema.FNRwLQ.meta @@ -0,0 +1,2 @@ +#n:information_schema +! [null, 0, null, null, -2147483648, -2147483648] diff --git a/.idea/dataSources/02b2050d-7d7e-46e0-8e21-4c76adb8c35f/storage_v2/_src_/database/cinema.8fLqrg/schema/pg_catalog.0S1ZNQ.meta b/.idea/dataSources/02b2050d-7d7e-46e0-8e21-4c76adb8c35f/storage_v2/_src_/database/cinema.8fLqrg/schema/pg_catalog.0S1ZNQ.meta new file mode 100644 index 000000000..44e65b16e --- /dev/null +++ b/.idea/dataSources/02b2050d-7d7e-46e0-8e21-4c76adb8c35f/storage_v2/_src_/database/cinema.8fLqrg/schema/pg_catalog.0S1ZNQ.meta @@ -0,0 +1,2 @@ +#n:pg_catalog +! [null, 0, null, null, -2147483648, -2147483648] diff --git a/.idea/dataSources/02b2050d-7d7e-46e0-8e21-4c76adb8c35f/storage_v2/_src_/database/cinema.8fLqrg/schema/public.abK9xQ.meta b/.idea/dataSources/02b2050d-7d7e-46e0-8e21-4c76adb8c35f/storage_v2/_src_/database/cinema.8fLqrg/schema/public.abK9xQ.meta new file mode 100644 index 000000000..97ec5dfc0 --- /dev/null +++ b/.idea/dataSources/02b2050d-7d7e-46e0-8e21-4c76adb8c35f/storage_v2/_src_/database/cinema.8fLqrg/schema/public.abK9xQ.meta @@ -0,0 +1,2 @@ +#n:public +! [null, 0, null, null, -2147483648, -2147483648] diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 000000000..eb106889f --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/php.xml b/.idea/php.xml new file mode 100644 index 000000000..734168855 --- /dev/null +++ b/.idea/php.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 000000000..94a25f7f4 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 000000000..fa7cb74b6 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,1140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + - - - - - - - - - - - - - - - - + - - - - - - @@ -927,6 +911,13 @@ + + + + + + + @@ -955,6 +946,9 @@ + + + 1712172074778 @@ -1019,7 +1013,14 @@ - @@ -1045,7 +1046,8 @@ - @@ -1068,10 +1070,10 @@ - + - + @@ -1088,22 +1090,22 @@ - + - - + + - + - + - + diff --git a/app/README.md b/app/README.md index efe64d680..94a8147bd 100644 --- a/app/README.md +++ b/app/README.md @@ -2,10 +2,11 @@ разворачиваем проект docker-compose up --build -d переходим в app/www, запускаем composer install -через postman проверяем что всё работает https://localhost:9200/_cluster/health - docker compose exec -it php bash для выполнения команд внутри контейнера -- php index.php createIndex -- php index.php search "title=Кто подставил поручика Ржевского на Луне" "category=Исторический роман" "minPrice=0" "maxPrice=2000" -- php index.php search "title=рыцОри" "minPrice=0" "maxPrice=2000" \ No newline at end of file + +- Очистить эластик : php index.php cleanup +- Загружаем индексы и данные : php index.php createIndex +https://localhost:9200/otus-shop/_search проверяем данные +- Посмотреть все данные : php index.php allData +- Поиск по названию, категории и цене : php index.php search "title=Кто подставил поручика Ржевского на Луне" "category=Исторический роман" "minPrice=0" "maxPrice=2000" \ No newline at end of file diff --git a/app/www/index.php b/app/www/index.php index 6bbe17948..32b7c7ba1 100644 --- a/app/www/index.php +++ b/app/www/index.php @@ -1,19 +1,28 @@ createIndex(); - $mainElasticsearch->bulkData(); + if ($argv[1] == 'cleanup'){ + $cleanup = new ElasticsearchCleanup(); + $cleanup->clearIndex(); + }elseif ($argv[1] == 'createIndex'){ + $start = new ElasticsearchStart(); + $start->createIndex(); + $start->bulkData(); }elseif ($argv[1] == 'allData'){ - $mainElasticsearch->getAllData(); + $service = new ElasticsearchService(); + $service->allData(); }elseif ($argv[1] == 'search'){ + $service = new ElasticsearchService(); $title = null; $category = null; $minPrice = null; @@ -31,9 +40,8 @@ $maxPrice = $item[1]; } } - //php index.php search "title=рыцОри" "category=Исторический роман" "minPrice=0" "maxPrice=2000" - $mainElasticsearch->searchData($title, $category, $minPrice, $maxPrice); + $service->searchData($title, $category, $minPrice, $maxPrice); } diff --git a/app/www/src/ElasticsearchBase.php b/app/www/src/ElasticsearchBase.php new file mode 100644 index 000000000..51690a16c --- /dev/null +++ b/app/www/src/ElasticsearchBase.php @@ -0,0 +1,33 @@ +client = ClientBuilder::create() + ->setHosts(['https://elasticsearch:9200']) + ->setSSLVerification(false) + ->setBasicAuthentication('elastic', 'elastic123') + ->build(); + } + + protected function getIndexName() + { + return self::INDEX_NAME; + } + + protected function getFileName() + { + return self::FILE_NAME; + } + +} diff --git a/app/www/src/MainElasticsearch.php b/app/www/src/MainElasticsearch.php deleted file mode 100644 index 157c28b36..000000000 --- a/app/www/src/MainElasticsearch.php +++ /dev/null @@ -1,219 +0,0 @@ -client = ClientBuilder::create() - ->setHosts(['https://elasticsearch:9200']) - ->setSSLVerification(false) - ->setBasicAuthentication('elastic', 'elastic123') - ->build(); - } - - public function createIndex(): void - { - $settings = [ - 'index' => self::INDEX_NAME, - 'body' => [ - 'mappings' => [ - 'properties' => [ - 'title' => [ - 'type' => 'text', - ], - 'sku' => [ - 'type' => 'keyword' - ], - 'category' => [ - 'type' => 'text' - ], - 'price' => [ - 'type' => 'integer' - ], - 'stock' => [ - 'type' => 'nested', - 'properties' => [ - 'shop' => [ - 'type' => 'keyword' - ], - 'stock' => [ - 'type' => 'short' - ] - ] - ] - ] - ], - 'settings' => [ - 'analysis' => [ - 'filter' => [ - 'ru_stop' => [ - 'type' => 'stop', - 'stopwords' => '_russian_' - ], - 'ru_stemmer' => [ - 'type' => 'stemmer', - 'language' => 'russian' - ] - ], - "analyzer" => [ - "my_russian" => [ - 'tokenizer' => 'standard', - "filter" => [ - "lowercase", - "ru_stop", - "ru_stemmer" - ] - ] - ] - ] - ] - ] - ]; - - $this->client->indices()->create($settings); - } - - public function bulkData(){ - - $this->client = ClientBuilder::create() - ->setHosts(['https://elasticsearch:9200']) - ->setSSLVerification(false) - ->setBasicAuthentication('elastic', 'elastic123') - ->build(); - - $data = file_get_contents(self::FILE_NAME); - - // Проверяем, что файл содержит данные - if (empty($data)) { - die('Файл books.json пуст или отсутствует.'); - } - - $params = ['body' => file_get_contents(self::FILE_NAME)]; - - $response = $this->client->bulk($params); - - if ($response['errors'] === false) { - echo 'Данные успешно загружены в Elasticsearch.'; - } else { - echo 'При загрузке данных возникли ошибки: ' . json_encode($response['items']); - } - } - - public function getAllData() - { - - $params = [ - 'index' => self::INDEX_NAME, - 'body' => [ - 'query' => [ - 'match_all' => (object)[] - ] - ] - ]; - - // Выполняем запрос к Elasticsearch - $response = $this->client->search($params); - - // Обрабатываем результаты запроса - $hits = $response['hits']['hits']; - foreach ($hits as $hit) { - // Выводим данные документа - var_dump($hit['_source']); - } - } - - public function searchData($title = null, $category = null, $minPrice = null, $maxPrice = null) - { - - $params = [ - 'index' => 'otus-shop', - 'body' => [ - 'query' => [ - 'bool' => [ - 'must' => [] - ] - ] - ] - ]; - - if (!empty($title)) { - $params['body']['query']['bool']['must'][] = [ - 'match' => [ - 'title' => [ - 'query' => $title, - 'fuzziness' => 'AUTO' - ] - ] - ]; - } - - if (!empty($category)) { - $params['body']['query']['bool']['must'][] = [ - 'match' => [ - 'category' => [ - 'query' => $category, - 'fuzziness' => 'AUTO' - ] - ] - ]; - } - - if (!empty($minPrice) && !empty($maxPrice)) { - $params['body']['query']['bool']['filter'] = [ - 'range' => [ - 'price' => [ - 'gte' => $minPrice, - 'lte' => $maxPrice - ] - ] - ]; - } elseif (!empty($minPrice)) { - $params['body']['query']['bool']['filter'] = [ - 'range' => [ - 'price' => [ - 'gte' => $minPrice - ] - ] - ]; - } elseif (!empty($maxPrice)) { - $params['body']['query']['bool']['filter'] = [ - 'range' => [ - 'price' => [ - 'lte' => $maxPrice - ] - ] - ]; - } - - - $response = $this->client->search($params); - - - if (!empty($response['hits']['hits'])) { - foreach ($response['hits']['hits'] as $hit) { - $source = $hit['_source']; - - Console::writeln('Найден товар: ' . $source['title'] . ' ' . - ', Цена: ' . $source['price'] . ' ' . - ', Категория: ' . $source['category'] . ' '); - } - } else { - echo 'По вашему запросу ничего не найдено.'; - } - - } - -} - diff --git a/app/www/src/Service/ElasticsearchCleanup.php b/app/www/src/Service/ElasticsearchCleanup.php new file mode 100644 index 000000000..2a546b542 --- /dev/null +++ b/app/www/src/Service/ElasticsearchCleanup.php @@ -0,0 +1,33 @@ + $this->getIndexName(), + 'body' => [ + 'query' => [ + 'match_all' => (object)[] + ] + ] + ]; + $this->client->deleteByQuery($params); + + // Ждем, чтобы документы полностью удалились + sleep(1); + + // Удаляем сам индекс + $this->client->indices()->delete(['index' => $this->getIndexName()]); + + echo 'Индекс успешно очищен и удален.'; + } + +} diff --git a/app/www/src/Service/ElasticsearchService.php b/app/www/src/Service/ElasticsearchService.php new file mode 100644 index 000000000..17eecdf13 --- /dev/null +++ b/app/www/src/Service/ElasticsearchService.php @@ -0,0 +1,116 @@ + $this->getIndexName(), + 'body' => [ + 'query' => [ + 'match_all' => (object)[] + ] + ] + ]; + + // Выполняем запрос к Elasticsearch + $response = $this->client->search($params); + + // Обрабатываем результаты запроса + $hits = $response['hits']['hits']; + foreach ($hits as $hit) { + // Выводим данные документа + var_dump($hit['_source']); + } + } + + public function searchData($title = null, $category = null, $minPrice = null, $maxPrice = null) + { + + $params = [ + 'index' => 'otus-shop', + 'body' => [ + 'query' => [ + 'bool' => [ + 'must' => [] + ] + ] + ] + ]; + + if (!empty($title)) { + $params['body']['query']['bool']['must'][] = [ + 'match' => [ + 'title' => [ + 'query' => $title, + 'fuzziness' => 'AUTO' + ] + ] + ]; + } + + if (!empty($category)) { + $params['body']['query']['bool']['must'][] = [ + 'match' => [ + 'category' => [ + 'query' => $category, + 'fuzziness' => 'AUTO' + ] + ] + ]; + } + + if (!empty($minPrice) && !empty($maxPrice)) { + $params['body']['query']['bool']['filter'] = [ + 'range' => [ + 'price' => [ + 'gte' => $minPrice, + 'lte' => $maxPrice + ] + ] + ]; + } elseif (!empty($minPrice)) { + $params['body']['query']['bool']['filter'] = [ + 'range' => [ + 'price' => [ + 'gte' => $minPrice + ] + ] + ]; + } elseif (!empty($maxPrice)) { + $params['body']['query']['bool']['filter'] = [ + 'range' => [ + 'price' => [ + 'lte' => $maxPrice + ] + ] + ]; + } + + + $response = $this->client->search($params); + + + if (!empty($response['hits']['hits'])) { + foreach ($response['hits']['hits'] as $hit) { + $source = $hit['_source']; + + Console::writeln('Найден товар: ' . $source['title'] . ' ' . + ', Цена: ' . $source['price'] . ' ' . + ', Категория: ' . $source['category'] . ' '); + } + } else { + echo 'По вашему запросу ничего не найдено.'; + } + + } + +} diff --git a/app/www/src/Service/ElasticsearchStart.php b/app/www/src/Service/ElasticsearchStart.php new file mode 100644 index 000000000..f0db93130 --- /dev/null +++ b/app/www/src/Service/ElasticsearchStart.php @@ -0,0 +1,92 @@ + $this->getIndexName(), + 'body' => [ + 'mappings' => [ + 'properties' => [ + 'title' => [ + 'type' => 'text', + ], + 'sku' => [ + 'type' => 'keyword' + ], + 'category' => [ + 'type' => 'text' + ], + 'price' => [ + 'type' => 'integer' + ], + 'stock' => [ + 'type' => 'nested', + 'properties' => [ + 'shop' => [ + 'type' => 'keyword' + ], + 'stock' => [ + 'type' => 'short' + ] + ] + ] + ] + ], + 'settings' => [ + 'analysis' => [ + 'filter' => [ + 'ru_stop' => [ + 'type' => 'stop', + 'stopwords' => '_russian_' + ], + 'ru_stemmer' => [ + 'type' => 'stemmer', + 'language' => 'russian' + ] + ], + "analyzer" => [ + "my_russian" => [ + 'tokenizer' => 'standard', + "filter" => [ + "lowercase", + "ru_stop", + "ru_stemmer" + ] + ] + ] + ] + ] + ] + ]; + + $this->client->indices()->create($settings); + } + + public function bulkData(){ + + $data = file_get_contents($this->getFileName()); + + // Проверяем, что файл содержит данные + if (empty($data)) { + die('Файл books.json пуст или отсутствует.'); + } + + $params = ['body' => $data]; + + $response = $this->client->bulk($params); + + if ($response['errors'] === false) { + echo 'Данные успешно загружены в Elasticsearch.'; + } else { + echo 'При загрузке данных возникли ошибки: ' . json_encode($response['items']); + } + } + +} + diff --git a/app/www/src/Service/SearchService.php b/app/www/src/Service/SearchService.php new file mode 100644 index 000000000..7354fbe31 --- /dev/null +++ b/app/www/src/Service/SearchService.php @@ -0,0 +1,22 @@ +elasticsearchService = $elasticsearchService; + } + + public function searchBooks(string $title = null, string $category = null, int $minPrice = null, int $maxPrice = null): array + { + // Формируем запрос в Elasticsearch + // Возвращаем результаты поиска + } +}