diff --git a/AI_AGENT.md b/AI_AGENT.md new file mode 100644 index 0000000..61fe7b5 --- /dev/null +++ b/AI_AGENT.md @@ -0,0 +1,63 @@ +# AI Agent Specification + +## Identity +- Name: `consumer_api_agent` +- Purpose: Assist with development, refactoring, migration, debugging, and data-safe operations for this repository. +- Scope: Entire project rooted at `consumer_api`. + +## Core Responsibilities +- Implement and refactor backend features in NestJS modules. +- Keep Prisma schema/migrations consistent and safe. +- Preserve API behavior unless explicitly asked to change it. +- Prefer minimal, focused changes over broad rewrites. + +## Working Rules +- Follow repository instructions in `AGENTS.md`. +- Respect existing project conventions (naming, DTO patterns, response mapping). +- Do not revert unrelated user changes. +- Do not run destructive DB commands unless explicitly requested. +- For risky DB operations, perform backup-first workflow. + +## Code Standards +- Keep functions small and cohesive. +- Extract reusable logic to utilities/services when complexity grows. +- Validate DTO inputs at boundaries. +- Use typed response DTO aliases where possible. +- Keep Prisma queries explicit with `select` for response control. + +## Database Safety +- Never run `prisma migrate reset` on important environments unless explicitly approved. +- Treat applied migration files as immutable history. +- Prefer forward-only migrations. +- For data updates: + - Use transactions. + - Verify row counts before/after. + - Keep operations idempotent when feasible. + +## API Patterns +- List endpoints: paginate + summary payload. +- Detail endpoints: full resource shape. +- Enum presentation: use shared translator utility (`translateEnumValue`). +- Fiscal status fallback rule: if no fiscal record, return `NOT_SEND`. + +## Execution Checklist +1. Read target module/controller/service/DTO before edits. +2. Apply minimal patch. +3. Run typecheck (`pnpm -s tsc --noEmit`). +4. If data logic changed, verify behavior with targeted checks. +5. Summarize changed files and behavior impact. + +## Useful Commands +- Type check: + - `pnpm -s tsc --noEmit` +- Prisma migration status: + - `pnpm prisma migrate status` +- Create migration: + - `pnpm prisma migrate dev --name ` +- Apply production migrations: + - `pnpm prisma migrate deploy` + +## Communication Style +- Be concise, direct, and implementation-focused. +- Call out assumptions and risky steps before execution. +- Provide concrete next actions after each completed task. diff --git a/backup_db.sql b/backup_db.sql new file mode 100644 index 0000000..4ac18e3 --- /dev/null +++ b/backup_db.sql @@ -0,0 +1,1533 @@ +-- MySQL dump 10.13 Distrib 9.5.0, for macos15.4 (arm64) +-- +-- Host: 194.59.214.243 Database: psp +-- ------------------------------------------------------ +-- Server version 8.0.45 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!50503 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `_prisma_migrations` +-- + +DROP TABLE IF EXISTS `_prisma_migrations`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `_prisma_migrations` ( + `id` varchar(36) COLLATE utf8mb4_unicode_ci NOT NULL, + `checksum` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `finished_at` datetime(3) DEFAULT NULL, + `migration_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `logs` text COLLATE utf8mb4_unicode_ci, + `rolled_back_at` datetime(3) DEFAULT NULL, + `started_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + `applied_steps_count` int unsigned NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `_prisma_migrations` +-- + +LOCK TABLES `_prisma_migrations` WRITE; +/*!40000 ALTER TABLE `_prisma_migrations` DISABLE KEYS */; +INSERT INTO `_prisma_migrations` VALUES ('1108a09e-549b-4005-9689-98cba940a709','ee9ebde408feab2873611eddfd07bbda9368b20b96273c874d9b4517d3faa56c','2026-04-23 12:44:58.496','20260416125205_init',NULL,NULL,'2026-04-23 12:44:55.151',1),('2530f091-8a1a-444f-8842-b7ae6ed76069','af5e798381f7a7c1a8580fd31cbc59f669c9f62c65f7e605d9fc80adec2aee3a',NULL,'20260501093343_add_sku_to_good','A migration failed to apply. New migrations cannot be applied before the error is recovered from. Read more about how to resolve migration issues in a production database: https://pris.ly/d/migrate-resolve\n\nMigration name: 20260501093343_add_sku_to_good\n\nDatabase error code: 1452\n\nDatabase error:\nCannot add or update a child row: a foreign key constraint fails (`psp`.`#sql-1_e3eb`, CONSTRAINT `goods_sku_id_fkey` FOREIGN KEY (`sku_id`) REFERENCES `stock_keeping_units` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE)\n\nPlease check the query number 2 from the migration file.\n\n 0: sql_schema_connector::apply_migration::apply_script\n with migration_name=\"20260501093343_add_sku_to_good\"\n at schema-engine/connectors/sql-schema-connector/src/apply_migration.rs:113\n 1: schema_commands::commands::apply_migrations::Applying migration\n with migration_name=\"20260501093343_add_sku_to_good\"\n at schema-engine/commands/src/commands/apply_migrations.rs:95\n 2: schema_core::state::ApplyMigrations\n at schema-engine/core/src/state.rs:255',NULL,'2026-05-01 09:37:30.398',0),('3541b09f-3669-4f35-a3e3-911057c67e03','5a112a51f306dea0700821a4a83dc9501877055f74328b058618d2fe233e13bb','2026-04-23 16:43:42.282','20260423164340_init',NULL,NULL,'2026-04-23 16:43:40.920',1),('477cf4ee-172f-4404-acb1-f20091de1318','3ac42b4fc3adb21ad76e4e4840e063d1a87133ea781458bde858f7191a7de84e','2026-04-23 12:47:28.831','20260423124719_init',NULL,NULL,'2026-04-23 12:47:19.866',1),('4ed5ba10-2560-44a7-9532-1ce565a5d46b','7e1b0fe4e68b0cd96acbfad7cc5e24e9f950b3f7127c14c8fc0537e445bc170a','2026-04-23 12:44:50.203','20260415113308_init',NULL,NULL,'2026-04-23 12:44:49.433',1),('568c2102-f31a-4caa-a812-f148cc3cec01','91a62b1feba2d5523af07ab99220b1d16b1f829b7c0f1d32dfbbc33a24a227ef','2026-04-24 15:41:07.863','20260424154103_init',NULL,NULL,'2026-04-24 15:41:03.334',1),('6a798168-272b-4bce-805d-63dbedf01671','2e8dd16ba3e2909a32e3e6327edb72c0e7fb5c37c882bc2d1ce1eabc8df9daf6','2026-04-26 15:33:15.375','20260426143218_init',NULL,NULL,'2026-04-26 15:33:11.443',1),('6ff68053-ba7e-4b28-8686-66fa22351fec','4e1dd6ff9dbc1e444bc81c75ec1f33af765fdf9883b6d35909b1376f625b2307','2026-04-23 23:26:24.979','20260423232622_init',NULL,NULL,'2026-04-23 23:26:22.722',1),('7182a21f-b443-46ed-9cb4-fdae9d3b3962','8556f73f0381b5fc6cce88a1863b43472bfdc679679931eecaeede0337cf5712','2026-04-23 21:49:58.970','20260423214958_init',NULL,NULL,'2026-04-23 21:49:58.469',1),('74bde740-5c8c-400f-9f88-6041f8ff5390','40f854bad9fa0aab0c217fa20a9460060dc97abd2afe2bad3e5bf96aea629eed','2026-04-24 16:17:29.634','20260424161725_init',NULL,NULL,'2026-04-24 16:17:26.165',1),('7ae5b147-8213-46c4-a7ff-b9ebc10ad60a','a72f62b8d630960939698b0274eb0299c7176709aaa2c38307a33d56a3e934d0','2026-04-23 12:45:06.014','20260422201806_init',NULL,NULL,'2026-04-23 12:45:05.411',1),('82058c73-a09c-4359-9f86-311cd8189578','b402755a3286415fc2bc4222eb2985e7a9c57589087d9eb3ec7a53ceff93d9b2','2026-04-23 12:45:02.405','20260421131918_init',NULL,NULL,'2026-04-23 12:45:01.280',1),('87642cbe-ce89-4c6d-a2bb-5fbf49e8ad5a','5fd2cb11e80755d662971746b450cb1fb6ba9084ab70e92b14ee07af2ca47b47','2026-04-26 16:26:19.315','20260426153449_init',NULL,NULL,'2026-04-26 16:26:15.831',1),('8cea4939-145e-41ae-bb11-58aa28a3e6ee','167122e74dcee71d32ebbef0aac309d1af64102b7ec55243d003357716ead54e','2026-04-25 07:50:50.757','20260425075045_init',NULL,NULL,'2026-04-25 07:50:45.993',1),('9877046c-94c9-45ba-8267-febaedf3e044','1635987bbb82eac80c0466d25345f272272dff555e44eaa3a116fae9a92c1fb1','2026-04-23 12:44:43.161','20260410112847_init',NULL,NULL,'2026-04-23 12:44:07.094',1),('9ed9eff9-1abb-4ae0-a3eb-114d00532188','20cb74614b74f1df12d814829e8917145d0dcfa6a0b2be56e677c4b201037a5c','2026-04-27 16:31:19.957','20260427162219_init',NULL,NULL,'2026-04-27 16:31:15.258',1),('a033038d-a40b-48ff-b51b-aea3bd6891fa','96b6d0c1c58fcc02fb880e952d9cc2f212939aacda09cc1b385c290647441d9b','2026-04-23 12:44:55.118','20260416100419_init',NULL,NULL,'2026-04-23 12:44:50.250',1),('a0bb816e-7f01-4a7a-a3bc-9dc9ecbe7762','0dd8abc36bf573eaf474a0a7e00197d233a5191c386f801df2da798259cc14c0','2026-04-26 07:17:57.244','20260426071752_init',NULL,NULL,'2026-04-26 07:17:52.782',1),('ae08f445-1c40-4eee-b5ed-fe1fc21a3659','c30fe255fca361a34f73db5c5692e2daa8f2f3d9942da10e2e50304ba2a2aa54','2026-04-28 08:25:56.009','20260428082555_add_fiscal_switch_to_partner',NULL,NULL,'2026-04-28 08:25:55.743',1),('b6cae82c-21f2-41f2-a59a-b1c594d99aad','a6f01b8a6b47696efe560acd3635db539e6437e5490f3d0491cee71e7538d56b','2026-05-01 08:58:23.000','20260501085821_add_sku',NULL,NULL,'2026-05-01 08:58:21.980',1),('bc3e2fd6-32b1-4815-a9e3-e53937136c7d','5571ff74b6b77590d9caa561b69d585cad1dcc659948e95d2aaafb59c4aa48f3','2026-04-23 12:45:01.225','20260420124725_add_tracking_code_to_charged_license_transactions',NULL,NULL,'2026-04-23 12:44:58.544',1),('c49c2327-7e41-4051-9c06-9ec8335e2130','43ff604ffd0cb65080a8339360db76cb0e7862725280429278e2e4660be6b9d9','2026-04-23 12:44:49.392','20260410211433_init',NULL,NULL,'2026-04-23 12:44:43.327',1),('c6c41010-5e11-4648-a19c-6ad04cd669fd','c715277bc53a127bbd2028f4916187229caeb9093103a89bf1bb3953ce5bb049','2026-04-23 12:45:05.364','20260422200730_init',NULL,NULL,'2026-04-23 12:45:02.436',1),('dac74d03-7962-4df7-97a8-e006381c9d83','7257f860e78b9e47b77b6a3ecc20f58cbaa3a801006b60e4c8dddb44af977cf0','2026-04-27 16:33:06.247','20260427163305_init',NULL,NULL,'2026-04-27 16:33:05.985',1),('e15fe036-f570-48bd-b971-7f343987feea','c126dd7b50998b8de53195ebbc17d7fb91320a752123b9ef796c5b121abaeeef','2026-04-30 17:31:41.750','20260430173139_add_sale_invoice_status',NULL,NULL,'2026-04-30 17:31:40.055',1); +/*!40000 ALTER TABLE `_prisma_migrations` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `accounts` +-- + +DROP TABLE IF EXISTS `accounts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `accounts` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `username` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `password` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `status` enum('ACTIVE','SUSPENDED') COLLATE utf8mb4_unicode_ci NOT NULL, + `type` enum('ADMIN','PROVIDER','PARTNER','CONSUMER') COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `accounts_username_key` (`username`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `accounts` +-- + +LOCK TABLES `accounts` WRITE; +/*!40000 ALTER TABLE `accounts` DISABLE KEYS */; +INSERT INTO `accounts` VALUES ('01KPX63KJFQTM95S4ACQQV8NJT','superAdmin','$2b$10$/oEp78p.lw90yaItLgDm6uj0rH5GHeQAc5QhDXQt.zYZD92za9dsy','ACTIVE','ADMIN'),('01KPX63MEFBXD6E514VJJP5YJC','tis','$2b$10$XVSWjBrSalJH7QUDhuWfxOo6nhLIv.SBjzgVvvs5mvrbP.sgByCEG','ACTIVE','PARTNER'),('01KPX63V8D3BQNSVDTC1C5XQCE','zargar','$2b$10$AF2QHMNCl8HIlNRnI5s5D.fzv2v1aE0VEp2zxRfYGLf6qaEe9/ubC','ACTIVE','CONSUMER'),('01KPX63VK0ACPB3JDQV5JBCY0F','tosan','$2b$10$KC3gmQZRAxyxXcdsZ.KPDe2a3NxLGLCb9T.57viYq9XoU/IJGMb5W','ACTIVE','PROVIDER'),('01KPZEE9CNBHPD2BYQVEQ5F8KD','rahbar','$2b$10$FCuxbO/zMadwLkPjMlbd9uQJohJ.FVbeEg/fccAfxqnjsZ.a8/qr.','ACTIVE','PARTNER'),('01KQ0C2K841814NEQCMN0CVSW3','and_web','$2b$10$ak7w1SQra4Uppf6rXE/W7ehW72UhpBG5hdZGliz83Vja8g.mX5iG2','ACTIVE','CONSUMER'),('01KQ0CB5P1WQW2HD748E2SK9VC','and_sep','$2b$10$ZGoxyzAGQC4kYEjSznQ7ROdewVGBH2qa6nZAGGLsEsIezl1WkoRyq','ACTIVE','CONSUMER'),('01KQ1XPKB60G452A01V7Y5T1F0','mon_mob','$2b$10$8PxCrZWDzU/X3kdDqbzy8uz8DtBE6lYnp7ODw9aPhWViSUwkclDIi','ACTIVE','CONSUMER'),('01KQ2HF2REZPRH929E8NPCV5ZW','jafari','$2b$10$Zb73AnSz1P8FF9CzNGaXq.NyK7RkR5rRAC/YIGSzMKYc2FzxVPINK','ACTIVE','CONSUMER'),('01KQ2JB8Q1SYCRAH7K69WB62MF','ali_sep','$2b$10$skqiJZ50NcIdwEU1V6Jo.uwgHydNCAfulbOpPkZLSFT71BO0o81N2','ACTIVE','CONSUMER'),('01KQ2W7SA1KHQCATSSBVDWWQ6Z','akbar','$2b$10$.rpgUeNzHZ3wiGeqimVw8OpBeP/eIjKFwPIPn18qDOSFyKIP2UlbW','ACTIVE','CONSUMER'),('01KQ2WFMXFZBT22HWJ1VQKP4PN','akbarpos','$2b$10$RcESQgafg4fLgVIqOGy/VuBGtxQOnJ35nIkLC0s4C7B8l109u./Nm','ACTIVE','CONSUMER'),('01KQ7JBPC3PT1WT3GE62GGY1AV','yaran_daryan','$2b$10$7u4m9p/ExnsWSG2kj.WcBORn8nlPhrS5UoYXppNioQhWFpAkpatrO','ACTIVE','CONSUMER'),('01KQ7VS6H3PY4AJAR4H0RTST6B','zargar_teh','$2b$10$balWwHXfkDCO2X27TgtMTOWdQHReBiWD8CHzRENHnsCPDSjIunFIW','ACTIVE','CONSUMER'); +/*!40000 ALTER TABLE `accounts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `admin_accounts` +-- + +DROP TABLE IF EXISTS `admin_accounts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `admin_accounts` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + `admin_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `account_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `admin_accounts_account_id_key` (`account_id`), + KEY `admin_accounts_admin_id_fkey` (`admin_id`), + CONSTRAINT `admin_accounts_account_id_fkey` FOREIGN KEY (`account_id`) REFERENCES `accounts` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE, + CONSTRAINT `admin_accounts_admin_id_fkey` FOREIGN KEY (`admin_id`) REFERENCES `admins` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `admin_accounts` +-- + +LOCK TABLES `admin_accounts` WRITE; +/*!40000 ALTER TABLE `admin_accounts` DISABLE KEYS */; +INSERT INTO `admin_accounts` VALUES ('01KPX63KJZB2VNCW4J72P41SAJ','2026-04-23 12:47:45','2026-04-23 12:47:45','01KPX63KHRB9CCKBZ2VVB46B46','01KPX63KJFQTM95S4ACQQV8NJT'); +/*!40000 ALTER TABLE `admin_accounts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `admins` +-- + +DROP TABLE IF EXISTS `admins`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `admins` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `mobile_number` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `national_code` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `first_name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `last_name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `admins_mobile_number_key` (`mobile_number`), + UNIQUE KEY `admins_national_code_key` (`national_code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `admins` +-- + +LOCK TABLES `admins` WRITE; +/*!40000 ALTER TABLE `admins` DISABLE KEYS */; +INSERT INTO `admins` VALUES ('01KPX63KHRB9CCKBZ2VVB46B46','09120258156','0016022289','عباس','حسنی','2026-04-23 12:47:45','2026-04-23 12:47:45'); +/*!40000 ALTER TABLE `admins` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `application_released_info` +-- + +DROP TABLE IF EXISTS `application_released_info`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `application_released_info` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `version` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `build_number` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `is_minimum_supported` tinyint(1) NOT NULL DEFAULT '0', + `notes` json DEFAULT NULL, + `release_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + `platform` enum('ANDROID','IOS') COLLATE utf8mb4_unicode_ci NOT NULL, + `release_type` enum('STABLE','BETA','ALPHA') COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `application_released_info` +-- + +LOCK TABLES `application_released_info` WRITE; +/*!40000 ALTER TABLE `application_released_info` DISABLE KEYS */; +/*!40000 ALTER TABLE `application_released_info` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `business_activities` +-- + +DROP TABLE IF EXISTS `business_activities`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `business_activities` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + `guild_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `consumer_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `economic_code` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `fiscal_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `partner_token` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `business_activities_economic_code_consumer_id_key` (`economic_code`,`consumer_id`), + KEY `business_activities_guild_id_fkey` (`guild_id`), + KEY `business_activities_consumer_id_fkey` (`consumer_id`), + CONSTRAINT `business_activities_consumer_id_fkey` FOREIGN KEY (`consumer_id`) REFERENCES `consumers` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE, + CONSTRAINT `business_activities_guild_id_fkey` FOREIGN KEY (`guild_id`) REFERENCES `guilds` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `business_activities` +-- + +LOCK TABLES `business_activities` WRITE; +/*!40000 ALTER TABLE `business_activities` DISABLE KEYS */; +INSERT INTO `business_activities` VALUES ('01KQ05Q8X0EQH4R79038WXXC19','زرگران','2026-04-24 16:38:44','2026-04-24 16:38:44','01KPX63KNQXAR1J032RVMAJ100','01KPX63V7WEFC9V5JTD0EDTG76','۲۱۳۱۲۳','',''),('01KQ2J44B6SF32XDKY6SZ16TB4','طلا علی','2026-04-25 14:53:57','2026-04-25 14:53:57','01KPX63KNQXAR1J032RVMAJ100','01KQ2HF2R0XCM9VKZZY2J92Z3V','۱۲۳۲۱۳','',''),('01KQ2K5X6AHKR119VJQB7NC4NH','تره بار','2026-04-25 15:12:24','2026-04-25 15:12:24','01KPX63KNQ3PSK1RSBJNV00PMN','01KQ2HF2R0XCM9VKZZY2J92Z3V','۱۲۳۲۱۳۱','',''),('01KQ2WB8XGS33DQVSW3CPH9P13','یاران دریان حجت','2026-04-25 17:52:37','2026-04-25 17:52:37','01KPX63KNQ3PSK1RSBJNV00PMN','01KQ2W7S95WEC578WCG52G4VJD','۱۰۹۸۷۴۸۲','',''); +/*!40000 ALTER TABLE `business_activities` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `complexes` +-- + +DROP TABLE IF EXISTS `complexes`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `complexes` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `address` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + `business_activity_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `branch_code` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + KEY `complexes_business_activity_id_fkey` (`business_activity_id`), + CONSTRAINT `complexes_business_activity_id_fkey` FOREIGN KEY (`business_activity_id`) REFERENCES `business_activities` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `complexes` +-- + +LOCK TABLES `complexes` WRITE; +/*!40000 ALTER TABLE `complexes` DISABLE KEYS */; +INSERT INTO `complexes` VALUES ('01KQ0866BCDC6WPSNMTB0X6MKE','شعبه‌ی اندرزگو','تهران اندرزگو','2026-04-24 17:21:50','2026-04-24 17:21:50','01KQ05Q8X0EQH4R79038WXXC19','۱۲۳۱۲۳'),('01KQ1WFH94EYY2C46YC29QR895','شعبه‌ی منیریه','تهران منیریه','2026-04-25 08:35:43','2026-04-25 08:36:41','01KQ05Q8X0EQH4R79038WXXC19','۲۴۱'),('01KQ2J6YEHGZG8GHE0DFGCFY80','طلای مرزداران','سبی','2026-04-25 14:55:30','2026-04-25 14:55:30','01KQ2J44B6SF32XDKY6SZ16TB4','۱۲'),('01KQ2WCV8D0Q1SB1A471THF096','جنت آباد جنوبی','جنت آباد','2026-04-25 17:53:29','2026-04-25 17:53:29','01KQ2WB8XGS33DQVSW3CPH9P13','۰۹۸۳'),('01KQ7VQZH3GGDV8E3Q7ATJGQZR','شعبه‌ی تهران‌پارس','تهران تهران‌پارس','2026-04-27 16:18:17','2026-04-27 16:18:17','01KQ05Q8X0EQH4R79038WXXC19','۲۳'); +/*!40000 ALTER TABLE `complexes` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `consumer_accounts` +-- + +DROP TABLE IF EXISTS `consumer_accounts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `consumer_accounts` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `role` enum('OWNER','MANAGER','OPERATOR') COLLATE utf8mb4_unicode_ci NOT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + `consumer_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `account_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `consumer_accounts_account_id_key` (`account_id`), + KEY `consumer_accounts_consumer_id_fkey` (`consumer_id`), + CONSTRAINT `consumer_accounts_account_id_fkey` FOREIGN KEY (`account_id`) REFERENCES `accounts` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE, + CONSTRAINT `consumer_accounts_consumer_id_fkey` FOREIGN KEY (`consumer_id`) REFERENCES `consumers` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `consumer_accounts` +-- + +LOCK TABLES `consumer_accounts` WRITE; +/*!40000 ALTER TABLE `consumer_accounts` DISABLE KEYS */; +INSERT INTO `consumer_accounts` VALUES ('01KPX63V8TSSPM3B7DM3013RD4','OWNER','2026-04-23 12:47:53','2026-04-23 12:47:53','01KPX63V7WEFC9V5JTD0EDTG76','01KPX63V8D3BQNSVDTC1C5XQCE'),('01KQ0C2K96Z64MRNFXSY1C1WKD','OPERATOR','2026-04-24 18:29:47','2026-04-24 18:29:47','01KPX63V7WEFC9V5JTD0EDTG76','01KQ0C2K841814NEQCMN0CVSW3'),('01KQ0CB5PW4BKEXR947C9ZAXVP','OPERATOR','2026-04-24 18:34:28','2026-04-24 18:34:28','01KPX63V7WEFC9V5JTD0EDTG76','01KQ0CB5P1WQW2HD748E2SK9VC'),('01KQ1XPKGJ869MHG1DHJE2PV47','OPERATOR','2026-04-25 08:57:03','2026-04-25 08:57:03','01KPX63V7WEFC9V5JTD0EDTG76','01KQ1XPKB60G452A01V7Y5T1F0'),('01KQ2HF2X05VGVHP2TZWGYAS70','OWNER','2026-04-25 14:42:28','2026-04-25 14:42:28','01KQ2HF2R0XCM9VKZZY2J92Z3V','01KQ2HF2REZPRH929E8NPCV5ZW'),('01KQ2JB8RM5AY2KM5FSZE2SF45','OPERATOR','2026-04-25 14:57:51','2026-04-25 14:57:51','01KQ2HF2R0XCM9VKZZY2J92Z3V','01KQ2JB8Q1SYCRAH7K69WB62MF'),('01KQ2W7SAJF514GQ02AZV51JB4','OWNER','2026-04-25 17:50:43','2026-04-25 17:50:43','01KQ2W7S95WEC578WCG52G4VJD','01KQ2W7SA1KHQCATSSBVDWWQ6Z'),('01KQ2WFMYZ3THXKBNMFB1EX0B9','OPERATOR','2026-04-25 17:55:01','2026-04-25 17:55:01','01KQ2W7S95WEC578WCG52G4VJD','01KQ2WFMXFZBT22HWJ1VQKP4PN'),('01KQ7JBPFFXM8ZYN3GBV5JWQS3','OWNER','2026-04-27 13:34:17','2026-04-27 13:34:17','01KQ7JBPA9S0YVBDSQVR9VAECC','01KQ7JBPC3PT1WT3GE62GGY1AV'),('01KQ7VS6JBXY7FM2ZV86E4QT3S','OPERATOR','2026-04-27 16:18:57','2026-04-27 16:18:57','01KPX63V7WEFC9V5JTD0EDTG76','01KQ7VS6H3PY4AJAR4H0RTST6B'); +/*!40000 ALTER TABLE `consumer_accounts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `consumer_devices` +-- + +DROP TABLE IF EXISTS `consumer_devices`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `consumer_devices` ( + `uuid` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `app_version` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL, + `build_number` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL, + `platform` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, + `brand` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, + `model` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, + `device` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, + `os_version` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL, + `sdk_version` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL, + `release_number` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL, + `browser_name` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `fcm_token` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + `consumer_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `publisher` enum('DIRECT','CAFE_BAZAR','MAYKET') COLLATE utf8mb4_unicode_ci NOT NULL, + `user_agent` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + PRIMARY KEY (`uuid`), + UNIQUE KEY `consumer_devices_uuid_key` (`uuid`), + KEY `consumer_devices_consumer_id_fkey` (`consumer_id`), + CONSTRAINT `consumer_devices_consumer_id_fkey` FOREIGN KEY (`consumer_id`) REFERENCES `consumers` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `consumer_devices` +-- + +LOCK TABLES `consumer_devices` WRITE; +/*!40000 ALTER TABLE `consumer_devices` DISABLE KEYS */; +/*!40000 ALTER TABLE `consumer_devices` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `consumers` +-- + +DROP TABLE IF EXISTS `consumers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `consumers` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `status` enum('ACTIVE','SUSPENDED') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'ACTIVE', + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + `type` enum('INDIVIDUAL','LEGAL') COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `consumers` +-- + +LOCK TABLES `consumers` WRITE; +/*!40000 ALTER TABLE `consumers` DISABLE KEYS */; +INSERT INTO `consumers` VALUES ('01KPX63V7WEFC9V5JTD0EDTG76','ACTIVE','2026-04-23 12:47:53','2026-04-27 10:36:02','INDIVIDUAL'),('01KQ2HF2R0XCM9VKZZY2J92Z3V','ACTIVE','2026-04-25 14:42:28','2026-04-27 10:36:02','INDIVIDUAL'),('01KQ2W7S95WEC578WCG52G4VJD','ACTIVE','2026-04-25 17:50:43','2026-04-27 10:36:02','INDIVIDUAL'),('01KQ7JBPA9S0YVBDSQVR9VAECC','ACTIVE','2026-04-27 13:34:17','2026-04-27 13:34:17','LEGAL'); +/*!40000 ALTER TABLE `consumers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `consumers_individual` +-- + +DROP TABLE IF EXISTS `consumers_individual`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `consumers_individual` ( + `first_name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `last_name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `mobile_number` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `national_code` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + `partner_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `consumer_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`consumer_id`), + UNIQUE KEY `consumers_individual_mobile_number_consumer_id_key` (`mobile_number`,`consumer_id`), + UNIQUE KEY `consumers_individual_partner_id_national_code_key` (`partner_id`,`national_code`), + CONSTRAINT `consumers_individual_consumer_id_fkey` FOREIGN KEY (`consumer_id`) REFERENCES `consumers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `consumers_individual_partner_id_fkey` FOREIGN KEY (`partner_id`) REFERENCES `partners` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `consumers_individual` +-- + +LOCK TABLES `consumers_individual` WRITE; +/*!40000 ALTER TABLE `consumers_individual` DISABLE KEYS */; +INSERT INTO `consumers_individual` VALUES ('رضا','حسینی','09000000001','0000000001','2026-04-27 10:36:02','2026-04-27 10:36:02','01KPX63ME1JTT2YZNF087EA9TW','01KPX63V7WEFC9V5JTD0EDTG76'),('محمد','رضایی','09000000002','0000000002','2026-04-27 10:36:02','2026-04-27 10:36:02','01KPX63ME1JTT2YZNF087EA9TW','01KQ2HF2R0XCM9VKZZY2J92Z3V'),('حسین','کریمی','09000000003','0000000003','2026-04-27 10:36:02','2026-04-27 10:36:02','01KPX63ME1JTT2YZNF087EA9TW','01KQ2W7S95WEC578WCG52G4VJD'); +/*!40000 ALTER TABLE `consumers_individual` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `consumers_legal` +-- + +DROP TABLE IF EXISTS `consumers_legal`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `consumers_legal` ( + `name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `registration_code` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + `partner_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `consumer_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`consumer_id`), + UNIQUE KEY `consumers_legal_partner_id_registration_code_key` (`partner_id`,`registration_code`), + CONSTRAINT `consumers_legal_consumer_id_fkey` FOREIGN KEY (`consumer_id`) REFERENCES `consumers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `consumers_legal_partner_id_fkey` FOREIGN KEY (`partner_id`) REFERENCES `partners` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `consumers_legal` +-- + +LOCK TABLES `consumers_legal` WRITE; +/*!40000 ALTER TABLE `consumers_legal` DISABLE KEYS */; +INSERT INTO `consumers_legal` VALUES ('یاران دریان','۱۲۳۱۲۳۱۲۳۲۱','2026-04-27 13:34:17','2026-04-27 13:34:17','01KPX63ME1JTT2YZNF087EA9TW','01KQ7JBPA9S0YVBDSQVR9VAECC'); +/*!40000 ALTER TABLE `consumers_legal` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `customer_individuals` +-- + +DROP TABLE IF EXISTS `customer_individuals`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `customer_individuals` ( + `first_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `last_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `national_id` char(10) COLLATE utf8mb4_unicode_ci NOT NULL, + `postal_code` char(10) COLLATE utf8mb4_unicode_ci NOT NULL, + `economic_code` char(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `customer_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `business_activity_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `mobile_number` char(15) COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`customer_id`), + UNIQUE KEY `customer_individuals_business_activity_id_national_id_key` (`business_activity_id`,`national_id`), + KEY `customer_individuals_business_activity_id_idx` (`business_activity_id`), + CONSTRAINT `customer_individuals_business_activity_id_fkey` FOREIGN KEY (`business_activity_id`) REFERENCES `business_activities` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE, + CONSTRAINT `customer_individuals_customer_id_fkey` FOREIGN KEY (`customer_id`) REFERENCES `customers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `customer_individuals` +-- + +LOCK TABLES `customer_individuals` WRITE; +/*!40000 ALTER TABLE `customer_individuals` DISABLE KEYS */; +/*!40000 ALTER TABLE `customer_individuals` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `customer_legal` +-- + +DROP TABLE IF EXISTS `customer_legal`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `customer_legal` ( + `company_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `economic_code` char(10) COLLATE utf8mb4_unicode_ci NOT NULL, + `registration_number` char(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `postal_code` char(10) COLLATE utf8mb4_unicode_ci NOT NULL, + `customer_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `business_activity_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`customer_id`), + UNIQUE KEY `customer_legal_business_activity_id_economic_code_key` (`business_activity_id`,`economic_code`), + KEY `customer_legal_business_activity_id_idx` (`business_activity_id`), + CONSTRAINT `customer_legal_business_activity_id_fkey` FOREIGN KEY (`business_activity_id`) REFERENCES `business_activities` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE, + CONSTRAINT `customer_legal_customer_id_fkey` FOREIGN KEY (`customer_id`) REFERENCES `customers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `customer_legal` +-- + +LOCK TABLES `customer_legal` WRITE; +/*!40000 ALTER TABLE `customer_legal` DISABLE KEYS */; +INSERT INTO `customer_legal` VALUES ('گلی','۲۱۳۱۳۱۲','۱۲۳۲۱۳۱۲۳','1231231232','01KQD8V10P4HT3TYFV3AXZ0YN8','01KQ05Q8X0EQH4R79038WXXC19'); +/*!40000 ALTER TABLE `customer_legal` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `customers` +-- + +DROP TABLE IF EXISTS `customers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `customers` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `is_favorite` tinyint(1) DEFAULT '0', + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + `deleted_at` timestamp NULL DEFAULT NULL, + `type` enum('INDIVIDUAL','LEGAL','UNKNOWN') COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `customers` +-- + +LOCK TABLES `customers` WRITE; +/*!40000 ALTER TABLE `customers` DISABLE KEYS */; +INSERT INTO `customers` VALUES ('01KQ20CKZ8AKZR6R1QKEA5JCYE',0,'2026-04-25 09:44:01','2026-04-25 09:44:01',NULL,'INDIVIDUAL'),('01KQ2M7SFE75328NC05QF6B49E',0,'2026-04-25 15:30:55','2026-04-25 15:30:55',NULL,'LEGAL'),('01KQD8V10P4HT3TYFV3AXZ0YN8',0,'2026-04-29 18:43:21','2026-04-29 18:43:21',NULL,'LEGAL'); +/*!40000 ALTER TABLE `customers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `device_brands` +-- + +DROP TABLE IF EXISTS `device_brands`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `device_brands` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `device_brands` +-- + +LOCK TABLES `device_brands` WRITE; +/*!40000 ALTER TABLE `device_brands` DISABLE KEYS */; +/*!40000 ALTER TABLE `device_brands` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `devices` +-- + +DROP TABLE IF EXISTS `devices`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `devices` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `os_version` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + `brand_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + KEY `devices_brand_id_fkey` (`brand_id`), + CONSTRAINT `devices_brand_id_fkey` FOREIGN KEY (`brand_id`) REFERENCES `device_brands` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `devices` +-- + +LOCK TABLES `devices` WRITE; +/*!40000 ALTER TABLE `devices` DISABLE KEYS */; +/*!40000 ALTER TABLE `devices` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `good_categories` +-- + +DROP TABLE IF EXISTS `good_categories`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `good_categories` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, + `description` text COLLATE utf8mb4_unicode_ci, + `image_url` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `complex_id` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `is_default_guild_good` tinyint(1) NOT NULL DEFAULT '0', + `guild_id` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + `deleted_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `good_categories_guild_id_fkey` (`guild_id`), + KEY `good_categories_complex_id_fkey` (`complex_id`), + CONSTRAINT `good_categories_complex_id_fkey` FOREIGN KEY (`complex_id`) REFERENCES `complexes` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `good_categories_guild_id_fkey` FOREIGN KEY (`guild_id`) REFERENCES `guilds` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `good_categories` +-- + +LOCK TABLES `good_categories` WRITE; +/*!40000 ALTER TABLE `good_categories` DISABLE KEYS */; +INSERT INTO `good_categories` VALUES ('01KPX63KRM17Y5X5NGY0FVMD05','سایر',NULL,NULL,NULL,1,'01KPX63KNQXAR1J032RVMAJ100','2026-04-23 12:47:45','2026-04-23 12:47:45',NULL),('01KPX63KRM4S453DZNRSHYA2V2','طلا',NULL,NULL,NULL,1,'01KPX63KNQXAR1J032RVMAJ100','2026-04-23 12:47:45','2026-04-23 12:47:45',NULL),('01KPX63KRMCRP04S1DGR97WVTQ','شمش',NULL,NULL,NULL,1,'01KPX63KNQXAR1J032RVMAJ100','2026-04-23 12:47:45','2026-04-23 12:47:45',NULL),('01KPX63KRMF31DNYWV2X10C1S7','شمش',NULL,NULL,NULL,1,'01KPX63KNQXAR1J032RVMAJ100','2026-04-23 12:47:45','2026-04-23 12:47:45',NULL),('01KPX63KRMGFVM2JSN7FHE8GGH','سکه',NULL,NULL,NULL,1,'01KPX63KNQXAR1J032RVMAJ100','2026-04-23 12:47:45','2026-04-23 12:47:45',NULL),('01KPX63KRMT4ZR69FSSTADAAV1','زیورآلات',NULL,NULL,NULL,1,'01KPX63KNQXAR1J032RVMAJ100','2026-04-23 12:47:45','2026-04-23 12:47:45',NULL); +/*!40000 ALTER TABLE `good_categories` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `goods` +-- + +DROP TABLE IF EXISTS `goods`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `goods` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `is_default_guild_good` tinyint(1) NOT NULL DEFAULT '0', + `unit_type` enum('COUNT','GRAM','KILOGRAM','MILLILITER','LITER','METER','HOUR') COLLATE utf8mb4_unicode_ci NOT NULL, + `pricing_model` enum('STANDARD','GOLD') COLLATE utf8mb4_unicode_ci NOT NULL, + `description` text COLLATE utf8mb4_unicode_ci, + `local_sku` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `barcode` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `base_sale_price` decimal(15,0) DEFAULT '0', + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + `deleted_at` timestamp NULL DEFAULT NULL, + `category_id` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `image_url` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `business_activity_id` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `sku_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `goods_local_sku_key` (`local_sku`), + UNIQUE KEY `goods_barcode_key` (`barcode`), + KEY `goods_category_id_idx` (`category_id`), + KEY `goods_business_activity_id_fkey` (`business_activity_id`), + CONSTRAINT `goods_business_activity_id_fkey` FOREIGN KEY (`business_activity_id`) REFERENCES `business_activities` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `goods_category_id_fkey` FOREIGN KEY (`category_id`) REFERENCES `good_categories` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `goods` +-- + +LOCK TABLES `goods` WRITE; +/*!40000 ALTER TABLE `goods` DISABLE KEYS */; +INSERT INTO `goods` VALUES ('01KPX63KVV5G03PRGWAY92M6C5','آویز گردنبند طلا',1,'GRAM','GOLD',NULL,NULL,NULL,0,'2026-04-23 12:47:46','2026-04-23 20:16:50',NULL,'01KPX63KRMT4ZR69FSSTADAAV1','https://s3.ir-thr-at1.arvanstorage.ir/psp-project/good/9880ff55-f351-4bb2-8f92-38d45c26eb11-necklaceـpendant.webp',NULL,''),('01KPX63KVW1KMWFSGC7S6KD4PQ','انگشتر',1,'GRAM','GOLD',NULL,NULL,NULL,0,'2026-04-23 12:47:46','2026-04-23 12:47:46',NULL,'01KPX63KRMT4ZR69FSSTADAAV1',NULL,NULL,''),('01KPX63KVW3P0X3870R278E7QS','النگو',1,'GRAM','GOLD',NULL,NULL,NULL,0,'2026-04-23 12:47:46','2026-04-23 12:47:46',NULL,'01KPX63KRMT4ZR69FSSTADAAV1',NULL,NULL,''),('01KPX63KVW6A25X10BMZZHPVRZ','دست‌بند',1,'GRAM','GOLD',NULL,NULL,NULL,0,'2026-04-23 12:47:46','2026-04-23 12:47:46',NULL,'01KPX63KRMT4ZR69FSSTADAAV1',NULL,NULL,''),('01KPX63KVWAMXBBJP1Y743N6W7','سرویس',1,'GRAM','GOLD',NULL,NULL,NULL,0,'2026-04-23 12:47:46','2026-04-23 12:47:46',NULL,'01KPX63KRMT4ZR69FSSTADAAV1',NULL,NULL,''),('01KPX63KVWR5ZM2P536RC4E1G6','گوشواره',1,'GRAM','GOLD',NULL,NULL,NULL,0,'2026-04-23 12:47:46','2026-04-23 12:47:46',NULL,'01KPX63KRMT4ZR69FSSTADAAV1',NULL,NULL,''),('01KPX63KVWWRQ3SJ78MAAZ5ETE','زنجیر',1,'GRAM','GOLD',NULL,NULL,NULL,0,'2026-04-23 12:47:46','2026-04-23 12:47:46',NULL,'01KPX63KRMT4ZR69FSSTADAAV1',NULL,NULL,''),('01KPX63KYK0WHPTGGSH5TGXVBZ','طلای مستعمل',1,'GRAM','GOLD',NULL,NULL,NULL,0,'2026-04-23 12:47:46','2026-04-23 12:47:46',NULL,'01KPX63KRM4S453DZNRSHYA2V2',NULL,NULL,''),('01KPX63KYK3EMYS7MCZVT1YJ0E','طلای شکسته',1,'GRAM','GOLD',NULL,NULL,NULL,0,'2026-04-23 12:47:46','2026-04-23 12:47:46',NULL,'01KPX63KRM4S453DZNRSHYA2V2',NULL,NULL,''),('01KPX63KYKV1VK0F4W08QN4CGW','طلای آب شده',1,'GRAM','GOLD',NULL,NULL,NULL,0,'2026-04-23 12:47:46','2026-04-23 12:47:46',NULL,'01KPX63KRM4S453DZNRSHYA2V2',NULL,NULL,''),('01KPX63M4C85AEE19ME3V8RHZ9','مسکوکات خارجی',1,'COUNT','STANDARD',NULL,NULL,NULL,0,'2026-04-23 12:47:46','2026-04-23 12:47:46',NULL,'01KPX63KRMGFVM2JSN7FHE8GGH',NULL,NULL,''),('01KPX63M4D3E765VH9FD3SWSQT','تمام بهار آزادی (طرح جدید)',1,'COUNT','STANDARD',NULL,NULL,NULL,0,'2026-04-23 12:47:46','2026-04-23 12:47:46',NULL,'01KPX63KRMGFVM2JSN7FHE8GGH',NULL,NULL,''),('01KPX63M4DSDK234E3XGQGJHS7','تمام بهار آزادی (طرح قدیم)',1,'COUNT','STANDARD',NULL,NULL,NULL,0,'2026-04-23 12:47:46','2026-04-23 12:47:46',NULL,'01KPX63KRMGFVM2JSN7FHE8GGH',NULL,NULL,''),('01KPX63M4DXETEAHPR3401T469','مسکوکات داخلی (پارسیان)',1,'COUNT','STANDARD',NULL,NULL,NULL,0,'2026-04-23 12:47:46','2026-04-23 12:47:46',NULL,'01KPX63KRMGFVM2JSN7FHE8GGH',NULL,NULL,''),('01KPX63M7EKNMMTF25QJNJM4QS','شمش استاندارد',1,'GRAM','GOLD',NULL,NULL,NULL,0,'2026-04-23 12:47:46','2026-04-23 12:47:46',NULL,'01KPX63KRMCRP04S1DGR97WVTQ',NULL,NULL,''),('01KQ4AQHEKH9HWPAJHG7E1V9WN','دستبند',0,'COUNT','GOLD',NULL,NULL,NULL,0,'2026-04-26 07:23:14','2026-04-26 07:23:26',NULL,'01KPX63KRM4S453DZNRSHYA2V2',NULL,'01KQ05Q8X0EQH4R79038WXXC19',''); +/*!40000 ALTER TABLE `goods` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `guilds` +-- + +DROP TABLE IF EXISTS `guilds`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `guilds` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `code` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `guilds` +-- + +LOCK TABLES `guilds` WRITE; +/*!40000 ALTER TABLE `guilds` DISABLE KEYS */; +INSERT INTO `guilds` VALUES ('01KPX63KNQ3PSK1RSBJNV00PMN','میوه و تره‌بار','Fruit','2026-04-23 12:47:45','2026-04-23 12:47:45'),('01KPX63KNQXAR1J032RVMAJ100','طلا','Gold','2026-04-23 12:47:45','2026-04-23 12:47:45'); +/*!40000 ALTER TABLE `guilds` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `license_account_allocation` +-- + +DROP TABLE IF EXISTS `license_account_allocation`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `license_account_allocation` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + `license_activation_id` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `account_id` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `credit_id` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `license_account_allocation_account_id_key` (`account_id`), + UNIQUE KEY `license_account_allocation_credit_id_key` (`credit_id`), + KEY `license_account_allocation_license_activation_id_fkey` (`license_activation_id`), + CONSTRAINT `license_account_allocation_account_id_fkey` FOREIGN KEY (`account_id`) REFERENCES `consumer_accounts` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `license_account_allocation_credit_id_fkey` FOREIGN KEY (`credit_id`) REFERENCES `partner_account_quota_credit` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `license_account_allocation_license_activation_id_fkey` FOREIGN KEY (`license_activation_id`) REFERENCES `licenses_activated` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `license_account_allocation` +-- + +LOCK TABLES `license_account_allocation` WRITE; +/*!40000 ALTER TABLE `license_account_allocation` DISABLE KEYS */; +INSERT INTO `license_account_allocation` VALUES ('01KQ05Q90DZW821MTVDKS88N5V','2026-04-24 16:38:44','2026-04-24 18:29:47','01KQ05Q8YDXXB2J31DP2DHRS58','01KQ0C2K96Z64MRNFXSY1C1WKD',NULL),('01KQ05Q91RPSYHZZSZKNQ48TQ3','2026-04-24 16:38:45','2026-04-24 18:34:28','01KQ05Q8YDXXB2J31DP2DHRS58','01KQ0CB5PW4BKEXR947C9ZAXVP',NULL),('01KQ1WF429J6N7HEKZYE1VXE09','2026-04-25 08:35:29','2026-04-25 08:57:03','01KQ05Q8YDXXB2J31DP2DHRS58','01KQ1XPKGJ869MHG1DHJE2PV47','01KQ04EAYD2B8A4HN9XQ85Y1QD'),('01KQ2J44QGV0HEHWFQA77MRF4V','2026-04-25 14:53:58','2026-04-25 14:57:51','01KQ2J44DCE1XQWTS2Q6Z2A44W','01KQ2JB8RM5AY2KM5FSZE2SF45',NULL),('01KQ2J44T54PN7V035SHS3CYJT','2026-04-25 14:53:58','2026-04-25 14:53:58','01KQ2J44DCE1XQWTS2Q6Z2A44W',NULL,NULL),('01KQ2K5XHTGP8G41VHWYQPDQFY','2026-04-25 15:12:25','2026-04-25 15:12:25','01KQ2K5XAYMF0Z1PRPBWESQPTS',NULL,NULL),('01KQ2K5XM9A2CK5YXNBTD4DB2B','2026-04-25 15:12:25','2026-04-25 15:12:25','01KQ2K5XAYMF0Z1PRPBWESQPTS',NULL,NULL),('01KQ2KBJ2YZ513AE3MRJ60C90M','2026-04-25 15:15:30','2026-04-25 15:15:30','01KQ2J44DCE1XQWTS2Q6Z2A44W',NULL,'01KQ04EAZMAAYZ4HRW9DQ0MWV7'),('01KQ2WB994DRTZMAW6F5M9EV9X','2026-04-25 17:52:38','2026-04-25 17:55:01','01KQ2WB8ZDH4DY0E8M00G888G0','01KQ2WFMYZ3THXKBNMFB1EX0B9',NULL),('01KQ2WB9AWS2D0Z1WJVGH9TSAR','2026-04-25 17:52:38','2026-04-25 17:52:38','01KQ2WB8ZDH4DY0E8M00G888G0',NULL,NULL),('01KQ7VQ710PYAXTSMHVVNGB269','2026-04-27 16:17:52','2026-04-27 16:18:57','01KQ05Q8YDXXB2J31DP2DHRS58','01KQ7VS6JBXY7FM2ZV86E4QT3S','01KQ2GXWAQDB2DXE033GB6NHRH'); +/*!40000 ALTER TABLE `license_account_allocation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `license_charged_transactions` +-- + +DROP TABLE IF EXISTS `license_charged_transactions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `license_charged_transactions` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `activation_expires_at` datetime(3) NOT NULL, + `tracking_code` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `purchased_count` int NOT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + `partner_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `license_charged_transactions_tracking_code_key` (`tracking_code`), + KEY `license_charged_transactions_partner_id_fkey` (`partner_id`), + CONSTRAINT `license_charged_transactions_partner_id_fkey` FOREIGN KEY (`partner_id`) REFERENCES `partners` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `license_charged_transactions` +-- + +LOCK TABLES `license_charged_transactions` WRITE; +/*!40000 ALTER TABLE `license_charged_transactions` DISABLE KEYS */; +INSERT INTO `license_charged_transactions` VALUES ('01KQ033MCGMBBNAF9F2YEJ902H','2027-01-04 20:30:00.000','LIC-B01EVKMK',10,'2026-04-24 15:53:04','2026-04-24 15:53:04','01KPX63ME1JTT2YZNF087EA9TW'),('01KQ2GXFRWZFWQF2TTTJ4RKJHJ','2026-10-04 20:30:00.000','LIC-L00F3N48',2,'2026-04-25 14:32:51','2026-04-25 14:32:51','01KPX63ME1JTT2YZNF087EA9TW'); +/*!40000 ALTER TABLE `license_charged_transactions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `license_renew` +-- + +DROP TABLE IF EXISTS `license_renew`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `license_renew` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + `charge_transaction_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `activation_id` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `expires_at` datetime(3) NOT NULL, + PRIMARY KEY (`id`), + KEY `license_renew_charge_transaction_id_fkey` (`charge_transaction_id`), + KEY `license_renew_activation_id_fkey` (`activation_id`), + CONSTRAINT `license_renew_activation_id_fkey` FOREIGN KEY (`activation_id`) REFERENCES `licenses_activated` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `license_renew_charge_transaction_id_fkey` FOREIGN KEY (`charge_transaction_id`) REFERENCES `license_renew_charge_transaction` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `license_renew` +-- + +LOCK TABLES `license_renew` WRITE; +/*!40000 ALTER TABLE `license_renew` DISABLE KEYS */; +/*!40000 ALTER TABLE `license_renew` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `license_renew_charge_transaction` +-- + +DROP TABLE IF EXISTS `license_renew_charge_transaction`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `license_renew_charge_transaction` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `activation_expires_at` datetime(3) NOT NULL, + `tracking_code` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `purchased_count` int NOT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + `partner_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `license_renew_charge_transaction_tracking_code_key` (`tracking_code`), + KEY `license_renew_charge_transaction_partner_id_fkey` (`partner_id`), + CONSTRAINT `license_renew_charge_transaction_partner_id_fkey` FOREIGN KEY (`partner_id`) REFERENCES `partners` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `license_renew_charge_transaction` +-- + +LOCK TABLES `license_renew_charge_transaction` WRITE; +/*!40000 ALTER TABLE `license_renew_charge_transaction` DISABLE KEYS */; +/*!40000 ALTER TABLE `license_renew_charge_transaction` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `licenses` +-- + +DROP TABLE IF EXISTS `licenses`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `licenses` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + `accounts_limit` int NOT NULL DEFAULT '2', + `charge_transaction_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + KEY `licenses_charge_transaction_id_fkey` (`charge_transaction_id`), + CONSTRAINT `licenses_charge_transaction_id_fkey` FOREIGN KEY (`charge_transaction_id`) REFERENCES `license_charged_transactions` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `licenses` +-- + +LOCK TABLES `licenses` WRITE; +/*!40000 ALTER TABLE `licenses` DISABLE KEYS */; +INSERT INTO `licenses` VALUES ('01KQ033MMNWE0KMCHY8FGBFSMA','2026-04-24 15:53:04','2026-04-24 15:53:04',2,'01KQ033MCGMBBNAF9F2YEJ902H'),('01KQ033MT3Y5GED3A2B0SX3AQP','2026-04-24 15:53:04','2026-04-24 15:53:04',2,'01KQ033MCGMBBNAF9F2YEJ902H'),('01KQ033MZMY26F4E9RS8SKH3G1','2026-04-24 15:53:04','2026-04-24 15:53:04',2,'01KQ033MCGMBBNAF9F2YEJ902H'),('01KQ033N66P32091R1FXC6VVZ6','2026-04-24 15:53:04','2026-04-24 15:53:04',2,'01KQ033MCGMBBNAF9F2YEJ902H'),('01KQ033N7HHDS7JD5ADZ27E6H1','2026-04-24 15:53:04','2026-04-24 15:53:04',2,'01KQ033MCGMBBNAF9F2YEJ902H'),('01KQ033NB49PCHDSCGQGWB333T','2026-04-24 15:53:05','2026-04-24 15:53:05',2,'01KQ033MCGMBBNAF9F2YEJ902H'),('01KQ033ND6VEA9P1P01NXXNH4R','2026-04-24 15:53:05','2026-04-24 15:53:05',2,'01KQ033MCGMBBNAF9F2YEJ902H'),('01KQ033NG49ARA17M385684MCQ','2026-04-24 15:53:05','2026-04-24 15:53:05',2,'01KQ033MCGMBBNAF9F2YEJ902H'),('01KQ033NHFM871YWAC123DGTT9','2026-04-24 15:53:05','2026-04-24 15:53:05',2,'01KQ033MCGMBBNAF9F2YEJ902H'),('01KQ033NP9ZQX9DN84WCN03TF8','2026-04-24 15:53:05','2026-04-24 15:53:05',2,'01KQ033MCGMBBNAF9F2YEJ902H'),('01KQ2GXFVPH7H5FYEEAKC5AC7V','2026-04-25 14:32:51','2026-04-25 14:32:51',2,'01KQ2GXFRWZFWQF2TTTJ4RKJHJ'),('01KQ2GXFX7Y7DC9R0K6BH3F2NN','2026-04-25 14:32:51','2026-04-25 14:32:51',2,'01KQ2GXFRWZFWQF2TTTJ4RKJHJ'); +/*!40000 ALTER TABLE `licenses` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `licenses_activated` +-- + +DROP TABLE IF EXISTS `licenses_activated`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `licenses_activated` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `starts_at` datetime(3) NOT NULL, + `expires_at` datetime(3) NOT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + `license_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `business_activity_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `licenses_activated_id_key` (`id`), + UNIQUE KEY `licenses_activated_license_id_key` (`license_id`), + UNIQUE KEY `licenses_activated_business_activity_id_key` (`business_activity_id`), + CONSTRAINT `licenses_activated_business_activity_id_fkey` FOREIGN KEY (`business_activity_id`) REFERENCES `business_activities` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE, + CONSTRAINT `licenses_activated_license_id_fkey` FOREIGN KEY (`license_id`) REFERENCES `licenses` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `licenses_activated` +-- + +LOCK TABLES `licenses_activated` WRITE; +/*!40000 ALTER TABLE `licenses_activated` DISABLE KEYS */; +INSERT INTO `licenses_activated` VALUES ('01KQ05Q8YDXXB2J31DP2DHRS58','2026-04-23 20:30:00.000','2027-04-23 20:30:00.000','2026-04-24 16:38:44','2026-04-24 16:38:44','01KQ033MMNWE0KMCHY8FGBFSMA','01KQ05Q8X0EQH4R79038WXXC19'),('01KQ2J44DCE1XQWTS2Q6Z2A44W','2026-04-24 20:30:00.000','2027-04-24 20:30:00.000','2026-04-25 14:53:57','2026-04-25 14:53:57','01KQ2GXFX7Y7DC9R0K6BH3F2NN','01KQ2J44B6SF32XDKY6SZ16TB4'),('01KQ2K5XAYMF0Z1PRPBWESQPTS','2026-04-24 20:30:00.000','2027-04-24 20:30:00.000','2026-04-25 15:12:24','2026-04-25 15:12:24','01KQ2GXFVPH7H5FYEEAKC5AC7V','01KQ2K5X6AHKR119VJQB7NC4NH'),('01KQ2WB8ZDH4DY0E8M00G888G0','2026-04-29 20:30:00.000','2027-04-29 20:30:00.000','2026-04-25 17:52:37','2026-04-25 17:52:37','01KQ033MT3Y5GED3A2B0SX3AQP','01KQ2WB8XGS33DQVSW3CPH9P13'); +/*!40000 ALTER TABLE `licenses_activated` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `partner_account_quota_charge_transaction` +-- + +DROP TABLE IF EXISTS `partner_account_quota_charge_transaction`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `partner_account_quota_charge_transaction` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `purchased_count` int NOT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + `partner_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `activation_expires_at` datetime(3) NOT NULL, + `tracking_code` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `partner_account_quota_charge_transaction_tracking_code_key` (`tracking_code`), + KEY `partner_account_quota_charge_transaction_partner_id_fkey` (`partner_id`), + CONSTRAINT `partner_account_quota_charge_transaction_partner_id_fkey` FOREIGN KEY (`partner_id`) REFERENCES `partners` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `partner_account_quota_charge_transaction` +-- + +LOCK TABLES `partner_account_quota_charge_transaction` WRITE; +/*!40000 ALTER TABLE `partner_account_quota_charge_transaction` DISABLE KEYS */; +INSERT INTO `partner_account_quota_charge_transaction` VALUES ('01KQ04EAX09SX6BX1NMVXXKZ05',2,'2026-04-24 16:16:23','2026-04-24 16:16:23','01KPX63ME1JTT2YZNF087EA9TW','2026-12-20 20:30:00.000','AQC-A1XYDSK0'),('01KQ2GXVZ5HEC6YKJY1C5J1E03',5,'2026-04-25 14:33:04','2026-04-25 14:33:04','01KPX63ME1JTT2YZNF087EA9TW','2027-01-10 20:30:00.000','AQC-21L5RWEP'); +/*!40000 ALTER TABLE `partner_account_quota_charge_transaction` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `partner_account_quota_credit` +-- + +DROP TABLE IF EXISTS `partner_account_quota_credit`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `partner_account_quota_credit` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + `charge_transaction_id` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `partner_account_quota_credit_charge_transaction_id_fkey` (`charge_transaction_id`), + CONSTRAINT `partner_account_quota_credit_charge_transaction_id_fkey` FOREIGN KEY (`charge_transaction_id`) REFERENCES `partner_account_quota_charge_transaction` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `partner_account_quota_credit` +-- + +LOCK TABLES `partner_account_quota_credit` WRITE; +/*!40000 ALTER TABLE `partner_account_quota_credit` DISABLE KEYS */; +INSERT INTO `partner_account_quota_credit` VALUES ('01KQ04EAYD2B8A4HN9XQ85Y1QD','2026-04-24 16:16:23','2026-04-24 16:16:23','01KQ04EAX09SX6BX1NMVXXKZ05'),('01KQ04EAZMAAYZ4HRW9DQ0MWV7','2026-04-24 16:16:23','2026-04-24 16:16:23','01KQ04EAX09SX6BX1NMVXXKZ05'),('01KQ2GXWAQDB2DXE033GB6NHRH','2026-04-25 14:33:04','2026-04-25 14:33:04','01KQ2GXVZ5HEC6YKJY1C5J1E03'),('01KQ2GXWG5S97TXDBZ2136CWWR','2026-04-25 14:33:04','2026-04-25 14:33:04','01KQ2GXVZ5HEC6YKJY1C5J1E03'),('01KQ2GXWHF4CVXDZVP6NDWA960','2026-04-25 14:33:04','2026-04-25 14:33:04','01KQ2GXVZ5HEC6YKJY1C5J1E03'),('01KQ2GXWJQXEBDDS2EJB4HGTT6','2026-04-25 14:33:04','2026-04-25 14:33:04','01KQ2GXVZ5HEC6YKJY1C5J1E03'),('01KQ2GXWN66R11E1BADMM3KQBD','2026-04-25 14:33:04','2026-04-25 14:33:04','01KQ2GXVZ5HEC6YKJY1C5J1E03'); +/*!40000 ALTER TABLE `partner_account_quota_credit` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `partner_accounts` +-- + +DROP TABLE IF EXISTS `partner_accounts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `partner_accounts` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `role` enum('OWNER','MANAGER','OPERATOR') COLLATE utf8mb4_unicode_ci NOT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `partner_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `account_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `partner_accounts_account_id_key` (`account_id`), + KEY `partner_accounts_partner_id_fkey` (`partner_id`), + CONSTRAINT `partner_accounts_account_id_fkey` FOREIGN KEY (`account_id`) REFERENCES `accounts` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE, + CONSTRAINT `partner_accounts_partner_id_fkey` FOREIGN KEY (`partner_id`) REFERENCES `partners` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `partner_accounts` +-- + +LOCK TABLES `partner_accounts` WRITE; +/*!40000 ALTER TABLE `partner_accounts` DISABLE KEYS */; +INSERT INTO `partner_accounts` VALUES ('01KPX63MF1491CQ2B1MSQFZAX9','OWNER','2026-04-23 12:47:46','2026-04-23 12:47:46','01KPX63ME1JTT2YZNF087EA9TW','01KPX63MEFBXD6E514VJJP5YJC'),('01KPZEE9D28BBHSF0KG491BJ9S','OWNER','2026-04-24 09:51:53','2026-04-24 09:51:53','01KPZEE9A759VE2D2J0MKN2CS2','01KPZEE9CNBHPD2BYQVEQ5F8KD'); +/*!40000 ALTER TABLE `partner_accounts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `partners` +-- + +DROP TABLE IF EXISTS `partners`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `partners` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `code` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `status` enum('ACTIVE','SUSPENDED') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'ACTIVE', + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `logo_url` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `fiscal_switch_type` enum('NAMA','SUN') COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `partners_code_key` (`code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `partners` +-- + +LOCK TABLES `partners` WRITE; +/*!40000 ALTER TABLE `partners` DISABLE KEYS */; +INSERT INTO `partners` VALUES ('01KPX63ME1JTT2YZNF087EA9TW','سامانه‌ی مودیان تیس','TIS','ACTIVE','2026-04-23 12:47:46','2026-04-30 10:23:48','https://s3.ir-thr-at1.arvanstorage.ir/psp-project/partner_logo/e5c7fb65-67d0-435a-870e-e12a9fc1df29-tis_logo.jpeg','NAMA'),('01KPZEE9A759VE2D2J0MKN2CS2','راهبر','rah','ACTIVE','2026-04-24 09:51:53','2026-04-24 09:51:53',NULL,'NAMA'); +/*!40000 ALTER TABLE `partners` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `permission_business_activities` +-- + +DROP TABLE IF EXISTS `permission_business_activities`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `permission_business_activities` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `role` enum('MANAGER','OPERATOR') COLLATE utf8mb4_unicode_ci NOT NULL, + `business_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `permission_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `permission_business_activities_permission_id_business_id_key` (`permission_id`,`business_id`), + KEY `permission_business_activities_business_id_fkey` (`business_id`), + CONSTRAINT `permission_business_activities_business_id_fkey` FOREIGN KEY (`business_id`) REFERENCES `business_activities` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `permission_business_activities_permission_id_fkey` FOREIGN KEY (`permission_id`) REFERENCES `permission_consumers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `permission_business_activities` +-- + +LOCK TABLES `permission_business_activities` WRITE; +/*!40000 ALTER TABLE `permission_business_activities` DISABLE KEYS */; +/*!40000 ALTER TABLE `permission_business_activities` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `permission_complexes` +-- + +DROP TABLE IF EXISTS `permission_complexes`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `permission_complexes` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `role` enum('MANAGER','OPERATOR') COLLATE utf8mb4_unicode_ci NOT NULL, + `complex_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `permission_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `permission_complexes_permission_id_complex_id_key` (`permission_id`,`complex_id`), + KEY `permission_complexes_complex_id_fkey` (`complex_id`), + CONSTRAINT `permission_complexes_complex_id_fkey` FOREIGN KEY (`complex_id`) REFERENCES `complexes` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `permission_complexes_permission_id_fkey` FOREIGN KEY (`permission_id`) REFERENCES `permission_consumers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `permission_complexes` +-- + +LOCK TABLES `permission_complexes` WRITE; +/*!40000 ALTER TABLE `permission_complexes` DISABLE KEYS */; +/*!40000 ALTER TABLE `permission_complexes` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `permission_consumers` +-- + +DROP TABLE IF EXISTS `permission_consumers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `permission_consumers` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `consumer_account_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `permission_consumers_consumer_account_id_key` (`consumer_account_id`), + CONSTRAINT `permission_consumers_consumer_account_id_fkey` FOREIGN KEY (`consumer_account_id`) REFERENCES `consumer_accounts` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `permission_consumers` +-- + +LOCK TABLES `permission_consumers` WRITE; +/*!40000 ALTER TABLE `permission_consumers` DISABLE KEYS */; +/*!40000 ALTER TABLE `permission_consumers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `permission_poses` +-- + +DROP TABLE IF EXISTS `permission_poses`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `permission_poses` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `role` enum('MANAGER','OPERATOR') COLLATE utf8mb4_unicode_ci NOT NULL, + `pos_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `permission_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `permission_poses_permission_id_pos_id_key` (`permission_id`,`pos_id`), + KEY `permission_poses_pos_id_fkey` (`pos_id`), + CONSTRAINT `permission_poses_permission_id_fkey` FOREIGN KEY (`permission_id`) REFERENCES `permission_consumers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `permission_poses_pos_id_fkey` FOREIGN KEY (`pos_id`) REFERENCES `poses` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `permission_poses` +-- + +LOCK TABLES `permission_poses` WRITE; +/*!40000 ALTER TABLE `permission_poses` DISABLE KEYS */; +/*!40000 ALTER TABLE `permission_poses` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `poses` +-- + +DROP TABLE IF EXISTS `poses`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `poses` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `model` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `status` enum('ACTIVE','DISABLED') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'ACTIVE', + `pos_type` enum('PSP','MOBILE','WEB','API') COLLATE utf8mb4_unicode_ci NOT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + `complex_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `device_id` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `provider_id` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `serial_number` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `account_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `poses_account_id_key` (`account_id`), + UNIQUE KEY `poses_serial_number_key` (`serial_number`), + KEY `poses_complex_id_fkey` (`complex_id`), + KEY `poses_device_id_fkey` (`device_id`), + KEY `poses_provider_id_fkey` (`provider_id`), + CONSTRAINT `poses_account_id_fkey` FOREIGN KEY (`account_id`) REFERENCES `consumer_accounts` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE, + CONSTRAINT `poses_complex_id_fkey` FOREIGN KEY (`complex_id`) REFERENCES `complexes` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE, + CONSTRAINT `poses_device_id_fkey` FOREIGN KEY (`device_id`) REFERENCES `devices` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `poses_provider_id_fkey` FOREIGN KEY (`provider_id`) REFERENCES `providers` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `poses` +-- + +LOCK TABLES `poses` WRITE; +/*!40000 ALTER TABLE `poses` DISABLE KEYS */; +INSERT INTO `poses` VALUES ('01KQ0C2KAYAH96XW53ATNT6YZ6','پوز سپهر',NULL,'ACTIVE','WEB','2026-04-24 18:29:47','2026-04-24 18:29:47','01KQ0866BCDC6WPSNMTB0X6MKE',NULL,NULL,NULL,'01KQ0C2K96Z64MRNFXSY1C1WKD'),('01KQ0CB5RBX5JYZNNC0DJ8VKFN','دسکتاپ',NULL,'ACTIVE','WEB','2026-04-24 18:34:28','2026-04-24 18:34:28','01KQ0866BCDC6WPSNMTB0X6MKE',NULL,NULL,NULL,'01KQ0CB5PW4BKEXR947C9ZAXVP'),('01KQ1XPKJ3T1375FAFND7MYNKB','لاین ۱',NULL,'ACTIVE','MOBILE','2026-04-25 08:57:03','2026-04-25 08:57:03','01KQ1WFH94EYY2C46YC29QR895',NULL,NULL,NULL,'01KQ1XPKGJ869MHG1DHJE2PV47'),('01KQ2JB8STAJ8S1QBR6MMG7KX7','پوز سپهر',NULL,'ACTIVE','WEB','2026-04-25 14:57:51','2026-04-25 14:57:51','01KQ2J6YEHGZG8GHE0DFGCFY80',NULL,NULL,NULL,'01KQ2JB8RM5AY2KM5FSZE2SF45'),('01KQ2WFN01GKZK28HTDWMX1H8Z','پوز صادرات',NULL,'ACTIVE','MOBILE','2026-04-25 17:55:01','2026-04-25 17:55:01','01KQ2WCV8D0Q1SB1A471THF096',NULL,NULL,NULL,'01KQ2WFMYZ3THXKBNMFB1EX0B9'),('01KQ7VS6K6YH8MDYCT46KWR5MS','پایانه‌ی اصلی',NULL,'ACTIVE','WEB','2026-04-27 16:18:57','2026-04-27 16:18:57','01KQ7VQZH3GGDV8E3Q7ATJGQZR',NULL,NULL,NULL,'01KQ7VS6JBXY7FM2ZV86E4QT3S'); +/*!40000 ALTER TABLE `poses` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `provider_accounts` +-- + +DROP TABLE IF EXISTS `provider_accounts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `provider_accounts` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `role` enum('OWNER','MANAGER','OPERATOR') COLLATE utf8mb4_unicode_ci NOT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + `provider_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `account_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `provider_accounts_account_id_key` (`account_id`), + KEY `provider_accounts_provider_id_fkey` (`provider_id`), + CONSTRAINT `provider_accounts_account_id_fkey` FOREIGN KEY (`account_id`) REFERENCES `accounts` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE, + CONSTRAINT `provider_accounts_provider_id_fkey` FOREIGN KEY (`provider_id`) REFERENCES `providers` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `provider_accounts` +-- + +LOCK TABLES `provider_accounts` WRITE; +/*!40000 ALTER TABLE `provider_accounts` DISABLE KEYS */; +INSERT INTO `provider_accounts` VALUES ('01KPX63VKD61AB8ET3J1MAH522','OWNER','2026-04-23 12:47:53','2026-04-23 12:47:53','01KPX63VJJ29HRTHZ4YQZVVQG5','01KPX63VK0ACPB3JDQV5JBCY0F'); +/*!40000 ALTER TABLE `provider_accounts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `providers` +-- + +DROP TABLE IF EXISTS `providers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `providers` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `code` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `status` enum('ACTIVE','SUSPENDED') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'ACTIVE', + `name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `providers_code_key` (`code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `providers` +-- + +LOCK TABLES `providers` WRITE; +/*!40000 ALTER TABLE `providers` DISABLE KEYS */; +INSERT INTO `providers` VALUES ('01KPX63VJJ29HRTHZ4YQZVVQG5','Tosan','ACTIVE','توسن','2026-04-23 12:47:53','2026-04-23 12:47:53'); +/*!40000 ALTER TABLE `providers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `sale_invoice_fiscal_attempts` +-- + +DROP TABLE IF EXISTS `sale_invoice_fiscal_attempts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `sale_invoice_fiscal_attempts` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `attempt_no` int NOT NULL, + `status` enum('SUCCESS','FAILURE','NOT_SEND','QUEUED') COLLATE utf8mb4_unicode_ci NOT NULL, + `tax_id` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `request_payload` json DEFAULT NULL, + `response_payload` json DEFAULT NULL, + `error_message` text COLLATE utf8mb4_unicode_ci, + `sent_at` timestamp NULL DEFAULT NULL, + `received_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `fiscal_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `type` enum('MAIN','UPDATE','REVOKE','REMOVE') COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `sale_invoice_fiscal_attempts_fiscal_id_attempt_no_key` (`fiscal_id`,`attempt_no`), + UNIQUE KEY `sale_invoice_fiscal_attempts_tax_id_key` (`tax_id`), + KEY `sale_invoice_fiscal_attempts_status_idx` (`status`), + KEY `sale_invoice_fiscal_attempts_tax_id_idx` (`tax_id`), + CONSTRAINT `sale_invoice_fiscal_attempts_fiscal_id_fkey` FOREIGN KEY (`fiscal_id`) REFERENCES `sale_invoice_fiscals` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sale_invoice_fiscal_attempts` +-- + +LOCK TABLES `sale_invoice_fiscal_attempts` WRITE; +/*!40000 ALTER TABLE `sale_invoice_fiscal_attempts` DISABLE KEYS */; +/*!40000 ALTER TABLE `sale_invoice_fiscal_attempts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `sale_invoice_fiscals` +-- + +DROP TABLE IF EXISTS `sale_invoice_fiscals`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `sale_invoice_fiscals` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `retry_count` int NOT NULL DEFAULT '0', + `last_attempt_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + `invoice_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `sale_invoice_fiscals_invoice_id_key` (`invoice_id`), + CONSTRAINT `sale_invoice_fiscals_invoice_id_fkey` FOREIGN KEY (`invoice_id`) REFERENCES `sales_invoices` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sale_invoice_fiscals` +-- + +LOCK TABLES `sale_invoice_fiscals` WRITE; +/*!40000 ALTER TABLE `sale_invoice_fiscals` DISABLE KEYS */; +/*!40000 ALTER TABLE `sale_invoice_fiscals` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `sales_invoice_items` +-- + +DROP TABLE IF EXISTS `sales_invoice_items`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `sales_invoice_items` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `quantity` decimal(10,0) NOT NULL, + `unit_type` enum('COUNT','GRAM','KILOGRAM','MILLILITER','LITER','METER','HOUR') COLLATE utf8mb4_unicode_ci NOT NULL, + `unit_price` decimal(15,2) NOT NULL DEFAULT '0.00', + `total_amount` decimal(15,2) NOT NULL DEFAULT '0.00', + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `discount` decimal(15,2) NOT NULL DEFAULT '0.00', + `notes` text COLLATE utf8mb4_unicode_ci, + `invoice_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `good_id` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `service_id` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `payload` json DEFAULT NULL, + `good_snapshot` json DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `sales_invoice_items_invoice_id_good_id_idx` (`invoice_id`,`good_id`), + KEY `sales_invoice_items_good_id_fkey` (`good_id`), + KEY `sales_invoice_items_service_id_fkey` (`service_id`), + CONSTRAINT `sales_invoice_items_good_id_fkey` FOREIGN KEY (`good_id`) REFERENCES `goods` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `sales_invoice_items_invoice_id_fkey` FOREIGN KEY (`invoice_id`) REFERENCES `sales_invoices` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE, + CONSTRAINT `sales_invoice_items_service_id_fkey` FOREIGN KEY (`service_id`) REFERENCES `services` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sales_invoice_items` +-- + +LOCK TABLES `sales_invoice_items` WRITE; +/*!40000 ALTER TABLE `sales_invoice_items` DISABLE KEYS */; +INSERT INTO `sales_invoice_items` VALUES ('01KQCXSWSE981K6HWNHWFK4NZP',2,'GRAM',200000000.00,540800000.00,'2026-04-29 15:30:29',0.00,NULL,'9c6cf0c6-6d89-463a-a874-85a0e41acd83','01KPX63KVV5G03PRGWAY92M6C5',NULL,'{\"karat\": \"18\", \"wages\": 40000000, \"profit\": 48000000, \"commission\": 40000000}','{\"good\": {\"id\": \"01KPX63KVV5G03PRGWAY92M6C5\", \"sku\": \"333\", \"name\": \"آویز گردنبند طلا\", \"barcode\": null, \"category\": {\"id\": \"01KPX63KRMT4ZR69FSSTADAAV1\", \"name\": \"زیورآلات\"}, \"image_url\": \"https://s3.ir-thr-at1.arvanstorage.ir/psp-project/good/9880ff55-f351-4bb2-8f92-38d45c26eb11-necklaceـpendant.webp\", \"local_sku\": null, \"unit_type\": \"GRAM\", \"pricing_model\": \"GOLD\", \"base_sale_price\": \"0\"}}'),('01KQD8V1GQAR49KKPXXKN4NV9B',2,'GRAM',200000000.00,540800000.00,'2026-04-29 18:43:21',0.00,NULL,'0343dbd4-2715-4ff4-91b4-586f9fc1ffce','01KPX63KYK3EMYS7MCZVT1YJ0E',NULL,'{\"karat\": \"18\", \"wages\": 40000000, \"profit\": 48000000, \"commission\": 40000000}','{\"good\": {\"id\": \"01KPX63KYK3EMYS7MCZVT1YJ0E\", \"sku\": \"\", \"name\": \"طلای شکسته\", \"barcode\": null, \"category\": {\"id\": \"01KPX63KRM4S453DZNRSHYA2V2\", \"name\": \"طلا\"}, \"image_url\": null, \"local_sku\": null, \"unit_type\": \"GRAM\", \"pricing_model\": \"GOLD\", \"base_sale_price\": \"0\"}}'),('01KQD8V1GRG4MNYKXB39C9J1ZV',2,'GRAM',200000000.00,540800000.00,'2026-04-29 18:43:21',0.00,NULL,'0343dbd4-2715-4ff4-91b4-586f9fc1ffce','01KPX63KVV5G03PRGWAY92M6C5',NULL,'{\"karat\": \"18\", \"wages\": 40000000, \"profit\": 48000000, \"commission\": 40000000}','{\"good\": {\"id\": \"01KPX63KVV5G03PRGWAY92M6C5\", \"sku\": \"333\", \"name\": \"آویز گردنبند طلا\", \"barcode\": null, \"category\": {\"id\": \"01KPX63KRMT4ZR69FSSTADAAV1\", \"name\": \"زیورآلات\"}, \"image_url\": \"https://s3.ir-thr-at1.arvanstorage.ir/psp-project/good/9880ff55-f351-4bb2-8f92-38d45c26eb11-necklaceـpendant.webp\", \"local_sku\": null, \"unit_type\": \"GRAM\", \"pricing_model\": \"GOLD\", \"base_sale_price\": \"0\"}}'),('01KQFCZP2TVBFCEN38EC1WYGJ1',2,'GRAM',200000000.00,540800000.00,'2026-04-30 14:34:17',0.00,NULL,'7d61fe17-086d-41c5-b82d-0772e63b2379','01KPX63KVV5G03PRGWAY92M6C5',NULL,'{\"karat\": \"18\", \"wages\": 40000000, \"profit\": 48000000, \"commission\": 40000000}','{\"good\": {\"id\": \"01KPX63KVV5G03PRGWAY92M6C5\", \"sku\": \"333\", \"name\": \"آویز گردنبند طلا\", \"barcode\": null, \"category\": {\"id\": \"01KPX63KRMT4ZR69FSSTADAAV1\", \"name\": \"زیورآلات\"}, \"image_url\": \"https://s3.ir-thr-at1.arvanstorage.ir/psp-project/good/9880ff55-f351-4bb2-8f92-38d45c26eb11-necklaceـpendant.webp\", \"local_sku\": null, \"unit_type\": \"GRAM\", \"pricing_model\": \"GOLD\", \"base_sale_price\": \"0\"}}'),('01KQFD4HDP9E09EAZDKRFQ5PT1',2,'GRAM',200000000.00,540800000.00,'2026-04-30 14:36:56',0.00,NULL,'df4a0a80-9c76-48d5-b3d9-a5d86c2d0b15','01KPX63KVV5G03PRGWAY92M6C5',NULL,'{\"karat\": \"18\", \"wages\": 40000000, \"profit\": 48000000, \"commission\": 40000000}','{\"good\": {\"id\": \"01KPX63KVV5G03PRGWAY92M6C5\", \"sku\": \"333\", \"name\": \"آویز گردنبند طلا\", \"barcode\": null, \"category\": {\"id\": \"01KPX63KRMT4ZR69FSSTADAAV1\", \"name\": \"زیورآلات\"}, \"image_url\": \"https://s3.ir-thr-at1.arvanstorage.ir/psp-project/good/9880ff55-f351-4bb2-8f92-38d45c26eb11-necklaceـpendant.webp\", \"local_sku\": null, \"unit_type\": \"GRAM\", \"pricing_model\": \"GOLD\", \"base_sale_price\": \"0\"}}'),('01KQFD5PEYGX6MPGE0ZBMGDKBJ',2,'GRAM',200000000.00,540800000.00,'2026-04-30 14:37:34',0.00,NULL,'8542bce5-fa68-4e99-99c3-3e4e97936c72','01KPX63KVW1KMWFSGC7S6KD4PQ',NULL,'{\"karat\": \"18\", \"wages\": 40000000, \"profit\": 48000000, \"commission\": 40000000}','{\"good\": {\"id\": \"01KPX63KVW1KMWFSGC7S6KD4PQ\", \"sku\": \"\", \"name\": \"انگشتر\", \"barcode\": null, \"category\": {\"id\": \"01KPX63KRMT4ZR69FSSTADAAV1\", \"name\": \"زیورآلات\"}, \"image_url\": null, \"local_sku\": null, \"unit_type\": \"GRAM\", \"pricing_model\": \"GOLD\", \"base_sale_price\": \"0\"}}'); +/*!40000 ALTER TABLE `sales_invoice_items` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `sales_invoice_payment_terminal_info` +-- + +DROP TABLE IF EXISTS `sales_invoice_payment_terminal_info`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `sales_invoice_payment_terminal_info` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `terminal_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `stan` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `rrn` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `transaction_date_time` datetime(3) NOT NULL, + `customer_card_no` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `description` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `payment_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `sales_invoice_payment_terminal_info_payment_id_key` (`payment_id`), + UNIQUE KEY `sales_invoice_payment_terminal_info_terminal_id_stan_rrn_pay_key` (`terminal_id`,`stan`,`rrn`,`payment_id`), + CONSTRAINT `sales_invoice_payment_terminal_info_payment_id_fkey` FOREIGN KEY (`payment_id`) REFERENCES `sales_invoice_payments` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sales_invoice_payment_terminal_info` +-- + +LOCK TABLES `sales_invoice_payment_terminal_info` WRITE; +/*!40000 ALTER TABLE `sales_invoice_payment_terminal_info` DISABLE KEYS */; +/*!40000 ALTER TABLE `sales_invoice_payment_terminal_info` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `sales_invoice_payments` +-- + +DROP TABLE IF EXISTS `sales_invoice_payments`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `sales_invoice_payments` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `invoice_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `amount` decimal(15,2) NOT NULL, + `payment_method` enum('TERMINAL','CASH','SET_OFF','CARD','BANK','CHECK','OTHER') COLLATE utf8mb4_unicode_ci NOT NULL, + `paid_at` timestamp NOT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `sales_invoice_payments_invoice_id_idx` (`invoice_id`), + CONSTRAINT `sales_invoice_payments_invoice_id_fkey` FOREIGN KEY (`invoice_id`) REFERENCES `sales_invoices` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sales_invoice_payments` +-- + +LOCK TABLES `sales_invoice_payments` WRITE; +/*!40000 ALTER TABLE `sales_invoice_payments` DISABLE KEYS */; +INSERT INTO `sales_invoice_payments` VALUES ('01KQCXSWVB72ZP8BFVDHNC7XFK','9c6cf0c6-6d89-463a-a874-85a0e41acd83',540800000.00,'CASH','2026-04-29 15:18:26','2026-04-29 15:30:29'),('01KQD8V1HXTXZ5Z3ZV0AJZBB2G','0343dbd4-2715-4ff4-91b4-586f9fc1ffce',1081600000.00,'CASH','2026-04-29 18:33:50','2026-04-29 18:43:21'),('01KQFCZP44DJ6G35JW475BE21M','7d61fe17-086d-41c5-b82d-0772e63b2379',540800000.00,'CASH','2026-04-30 14:34:03','2026-04-30 14:34:17'),('01KQFD4HEQCQ7PTS9D3KXJ6H0Q','df4a0a80-9c76-48d5-b3d9-a5d86c2d0b15',540800000.00,'SET_OFF','2026-04-30 14:36:26','2026-04-30 14:36:56'),('01KQFD5PK0H9EZ1FQ02VQZG6J7','8542bce5-fa68-4e99-99c3-3e4e97936c72',540800000.00,'CASH','2026-04-30 14:37:22','2026-04-30 14:37:34'); +/*!40000 ALTER TABLE `sales_invoice_payments` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `sales_invoices` +-- + +DROP TABLE IF EXISTS `sales_invoices`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `sales_invoices` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `code` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, + `total_amount` decimal(15,2) NOT NULL, + `notes` text COLLATE utf8mb4_unicode_ci, + `unknown_customer` json DEFAULT NULL, + `invoice_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + `customer_id` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `pos_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `consumer_account_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `invoice_number` int NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `sales_invoices_code_key` (`code`), + UNIQUE KEY `sales_invoices_invoice_number_pos_id_key` (`invoice_number`,`pos_id`), + KEY `sales_invoices_customer_id_fkey` (`customer_id`), + KEY `sales_invoices_pos_id_fkey` (`pos_id`), + KEY `sales_invoices_consumer_account_id_fkey` (`consumer_account_id`), + CONSTRAINT `sales_invoices_consumer_account_id_fkey` FOREIGN KEY (`consumer_account_id`) REFERENCES `consumer_accounts` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE, + CONSTRAINT `sales_invoices_customer_id_fkey` FOREIGN KEY (`customer_id`) REFERENCES `customers` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `sales_invoices_pos_id_fkey` FOREIGN KEY (`pos_id`) REFERENCES `poses` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sales_invoices` +-- + +LOCK TABLES `sales_invoices` WRITE; +/*!40000 ALTER TABLE `sales_invoices` DISABLE KEYS */; +INSERT INTO `sales_invoices` VALUES ('0343dbd4-2715-4ff4-91b4-586f9fc1ffce','INV-1777488200943',1081600000.00,NULL,'{}','2026-04-29 18:33:50','2026-04-29 18:43:21','2026-04-29 18:43:21','01KQD8V10P4HT3TYFV3AXZ0YN8','01KQ0C2KAYAH96XW53ATNT6YZ6','01KPX63V8TSSPM3B7DM3013RD4',2),('7d61fe17-086d-41c5-b82d-0772e63b2379','INV-1777559656264',540800000.00,NULL,'{}','2026-04-30 14:34:03','2026-04-30 14:34:17','2026-04-30 14:34:17',NULL,'01KQ0C2KAYAH96XW53ATNT6YZ6','01KPX63V8TSSPM3B7DM3013RD4',3),('8542bce5-fa68-4e99-99c3-3e4e97936c72','INV-1777559853461',540800000.00,NULL,'{}','2026-04-30 14:37:22','2026-04-30 14:37:34','2026-04-30 14:37:34',NULL,'01KQ0C2KAYAH96XW53ATNT6YZ6','01KPX63V8TSSPM3B7DM3013RD4',5),('9c6cf0c6-6d89-463a-a874-85a0e41acd83','INV-1777476629187',540800000.00,NULL,'{}','2026-04-29 15:18:26','2026-04-29 15:30:29','2026-04-29 15:30:29',NULL,'01KQ7VS6K6YH8MDYCT46KWR5MS','01KQ7VS6JBXY7FM2ZV86E4QT3S',1),('df4a0a80-9c76-48d5-b3d9-a5d86c2d0b15','INV-1777559815511',540800000.00,NULL,'{}','2026-04-30 14:36:26','2026-04-30 14:36:56','2026-04-30 14:36:56',NULL,'01KQ0C2KAYAH96XW53ATNT6YZ6','01KPX63V8TSSPM3B7DM3013RD4',4); +/*!40000 ALTER TABLE `sales_invoices` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `service_categories` +-- + +DROP TABLE IF EXISTS `service_categories`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `service_categories` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, + `description` text COLLATE utf8mb4_unicode_ci, + `image_url` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `account_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `complex_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + `deleted_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `service_categories` +-- + +LOCK TABLES `service_categories` WRITE; +/*!40000 ALTER TABLE `service_categories` DISABLE KEYS */; +/*!40000 ALTER TABLE `service_categories` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `services` +-- + +DROP TABLE IF EXISTS `services`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `services` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `description` text COLLATE utf8mb4_unicode_ci, + `sku` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, + `local_sku` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `barcode` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + `deleted_at` timestamp NULL DEFAULT NULL, + `category_id` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `base_sale_price` decimal(15,0) NOT NULL DEFAULT '0', + `account_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `complex_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `services_sku_key` (`sku`), + UNIQUE KEY `services_local_sku_key` (`local_sku`), + UNIQUE KEY `services_barcode_key` (`barcode`), + KEY `services_category_id_idx` (`category_id`), + CONSTRAINT `services_category_id_fkey` FOREIGN KEY (`category_id`) REFERENCES `service_categories` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `services` +-- + +LOCK TABLES `services` WRITE; +/*!40000 ALTER TABLE `services` DISABLE KEYS */; +/*!40000 ALTER TABLE `services` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `stock_keeping_units` +-- + +DROP TABLE IF EXISTS `stock_keeping_units`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `stock_keeping_units` ( + `id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `code` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, + `VAT` decimal(5,2) NOT NULL, + `type` enum('GOLD') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'GOLD', + `is_public` tinyint(1) NOT NULL DEFAULT '1', + `is_domestic` tinyint(1) NOT NULL DEFAULT '0', + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `stock_keeping_units_code_key` (`code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `stock_keeping_units` +-- + +LOCK TABLES `stock_keeping_units` WRITE; +/*!40000 ALTER TABLE `stock_keeping_units` DISABLE KEYS */; +INSERT INTO `stock_keeping_units` VALUES ('01KQHCPGWTB2ZC5ZMST5EF44J0','2720000188291','پابند طلا زیورالات ساخته شده از طلا',0.00,'GOLD',1,1,'2026-05-01 09:07:45','2026-05-01 09:07:45'),('01KQHCPH01VTKHFJWASTTAY6A7','2710000188292','پابند طلا زیورالات ساخته شده از طلا',0.00,'GOLD',1,0,'2026-05-01 09:07:45','2026-05-01 09:07:45'),('01KQHCPH5Z7FA66BY5DR4EFJ64','2710000185796','پیرسینگ طلا زیورالات ساخته شده از طلا',0.00,'GOLD',1,0,'2026-05-01 09:07:45','2026-05-01 09:07:48'),('01KQHCPH8K5RZCQDATCJR61W2Q','2710000044710','گردنبند طلا زیورالات ساخته شده از طلا',0.00,'GOLD',1,0,'2026-05-01 09:07:46','2026-05-01 09:07:46'),('01KQHCPHB11QZX46D7QYK03XB6','2710000188315','دکمه سردست طلا زیورالات ساخته شده از طلا',0.00,'GOLD',1,0,'2026-05-01 09:07:46','2026-05-01 09:07:46'),('01KQHCPHFVWS9BFZ50ECAED3E8','2710000044741','پلاک طلا زیورالات ساخته شده از طلا',0.00,'GOLD',1,0,'2026-05-01 09:07:46','2026-05-01 09:07:46'),('01KQHCPHJDXBSMHAB647GD4C13','2720000044702','زنجیر طلا زیورالات ساخته شده از طلا',0.00,'GOLD',1,1,'2026-05-01 09:07:46','2026-05-01 09:07:46'),('01KQHCPHQQD610DGZ0VWYT44B9','2720000044672','انگشتر طلا زیورالات ساخته شده از طلا',0.00,'GOLD',1,1,'2026-05-01 09:07:46','2026-05-01 09:07:46'),('01KQHCPHVSN4JA20SQR6XYDBDQ','2720000188307','تاج طلا زیورالات ساخته شده از طلا',0.00,'GOLD',1,1,'2026-05-01 09:07:46','2026-05-01 09:07:46'),('01KQHCPHZ6BPFW3GXHPQ7HJHW4','2720000044726','گوشواره طلا زیورالات ساخته شده از طلا',0.00,'GOLD',1,1,'2026-05-01 09:07:46','2026-05-01 09:07:46'),('01KQHCPJ1ZXJVZ86CQB6B5GG8H','2720000044689','دستبند طلا زیورالات ساخته شده از طلا',0.00,'GOLD',1,1,'2026-05-01 09:07:46','2026-05-01 09:07:46'),('01KQHCPJ6KSRK02CK2CGQ846M8','2720000188314','دکمه سردست طلا زیورالات ساخته شده از طلا',0.00,'GOLD',1,1,'2026-05-01 09:07:47','2026-05-01 09:07:47'),('01KQHCPJ97CYAJW2D706ZND8DV','2710000044734','سرویس طلا زیورالات ساخته شده از طلا',0.00,'GOLD',1,0,'2026-05-01 09:07:47','2026-05-01 09:07:47'),('01KQHCPJCBB8VXS2RKNWCEHQC0','2710000044680','دستبند طلا زیورالات ساخته شده از طلا',0.00,'GOLD',1,0,'2026-05-01 09:07:47','2026-05-01 09:07:47'),('01KQHCPJF1DS29CXZ5DPDXFNNE','2710000044697','اویز گردنبند طلا زیورالات ساخته شده از طلا',0.00,'GOLD',1,0,'2026-05-01 09:07:47','2026-05-01 09:07:47'),('01KQHCPJHM1JHQAA7MC94TWS96','2710000044703','زنجیر طلا زیورالات ساخته شده از طلا',0.00,'GOLD',1,0,'2026-05-01 09:07:47','2026-05-01 09:07:47'),('01KQHCPJQ0KQ4V67VWWPNDKNYA','2720000044719','گردنبند طلا زیورالات ساخته شده از طلا',0.00,'GOLD',1,1,'2026-05-01 09:07:47','2026-05-01 09:07:47'),('01KQHCPJSKGNW003HZFRJGE4N2','2710000188308','تاج طلا زیورالات ساخته شده از طلا',0.00,'GOLD',1,0,'2026-05-01 09:07:47','2026-05-01 09:07:47'),('01KQHCPJW7GADA750H3GAR4QTH','2720000185795','پیرسینگ طلا زیورالات ساخته شده از طلا',9.00,'GOLD',1,1,'2026-05-01 09:07:47','2026-05-01 09:07:47'),('01KQHCPK1HMDT115QZ9ATXZYJF','2720000044696','اویز گردنبند طلا زیورالات ساخته شده از طلا',0.00,'GOLD',1,1,'2026-05-01 09:07:47','2026-05-01 09:07:47'),('01KQHCPK74ER51CFRVPTVWT0NE','2720000044665','النگو طلا زیورالات ساخته شده از طلا',0.00,'GOLD',1,1,'2026-05-01 09:07:48','2026-05-01 09:07:48'),('01KQHCPK9JETRTFXDX0YWGBAAV','2710000044727','گوشواره طلا زیورالات ساخته شده از طلا',0.00,'GOLD',1,0,'2026-05-01 09:07:48','2026-05-01 09:07:48'),('01KQHCPKCP3PVSQ36F1F1K7YG4','2710000044666','النگو طلا زیورالات ساخته شده از طلا',0.00,'GOLD',1,0,'2026-05-01 09:07:48','2026-05-01 09:07:48'),('01KQHCPKF58ZFZD5ETAH6DCXRW','2710000044673','انگشتر طلا زیورالات ساخته شده از طلا',0.00,'GOLD',1,0,'2026-05-01 09:07:48','2026-05-01 09:07:48'),('01KQHCPKMASXGMQGZJHTQ92W8V','2720000044733','سرویس طلا زیورالات ساخته شده از طلا',0.00,'GOLD',1,1,'2026-05-01 09:07:48','2026-05-01 09:07:48'),('01KQHCPKSK94WT6Q45JFMA9W86','2720000044740','پلاک طلا زیورالات ساخته شده از طلا',0.00,'GOLD',1,1,'2026-05-01 09:07:48','2026-05-01 09:07:48'); +/*!40000 ALTER TABLE `stock_keeping_units` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `trigger_logs` +-- + +DROP TABLE IF EXISTS `trigger_logs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `trigger_logs` ( + `id` int NOT NULL AUTO_INCREMENT, + `message` text COLLATE utf8mb4_unicode_ci NOT NULL, + `createdAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `name` text COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `trigger_logs` +-- + +LOCK TABLES `trigger_logs` WRITE; +/*!40000 ALTER TABLE `trigger_logs` DISABLE KEYS */; +/*!40000 ALTER TABLE `trigger_logs` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2026-05-01 14:30:31 diff --git a/package.json b/package.json index 0543150..d1ae3cc 100644 --- a/package.json +++ b/package.json @@ -82,6 +82,7 @@ "dump-triggers": "tsx scripts/dump-triggers.ts", "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", "generate:permissions": "tsx scripts/generate-permissions.ts", + "seed:sku": "tsx scripts/seedStockKeepingUnits.ts", "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", "start": "nest start", "start:debug": "nest start --debug --watch", diff --git a/prisma/migrations/20260410211433_init/migration.sql b/prisma/migrations/20260410211433_init/migration.sql deleted file mode 100644 index 0bf9390..0000000 --- a/prisma/migrations/20260410211433_init/migration.sql +++ /dev/null @@ -1,50 +0,0 @@ --- DropForeignKey -ALTER TABLE `permission_business_activities` DROP FOREIGN KEY `permission_business_activities_business_id_fkey`; - --- DropForeignKey -ALTER TABLE `permission_business_activities` DROP FOREIGN KEY `permission_business_activities_permission_id_fkey`; - --- DropForeignKey -ALTER TABLE `permission_complexes` DROP FOREIGN KEY `permission_complexes_complex_id_fkey`; - --- DropForeignKey -ALTER TABLE `permission_complexes` DROP FOREIGN KEY `permission_complexes_permission_id_fkey`; - --- DropForeignKey -ALTER TABLE `permission_consumers` DROP FOREIGN KEY `permission_consumers_consumer_account_id_fkey`; - --- DropForeignKey -ALTER TABLE `permission_poses` DROP FOREIGN KEY `permission_poses_permission_id_fkey`; - --- DropForeignKey -ALTER TABLE `permission_poses` DROP FOREIGN KEY `permission_poses_pos_id_fkey`; - --- DropIndex -DROP INDEX `permission_business_activities_business_id_fkey` ON `permission_business_activities`; - --- DropIndex -DROP INDEX `permission_complexes_complex_id_fkey` ON `permission_complexes`; - --- DropIndex -DROP INDEX `permission_poses_pos_id_fkey` ON `permission_poses`; - --- AddForeignKey -ALTER TABLE `permission_consumers` ADD CONSTRAINT `permission_consumers_consumer_account_id_fkey` FOREIGN KEY (`consumer_account_id`) REFERENCES `consumer_accounts`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `permission_poses` ADD CONSTRAINT `permission_poses_pos_id_fkey` FOREIGN KEY (`pos_id`) REFERENCES `poses`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `permission_poses` ADD CONSTRAINT `permission_poses_permission_id_fkey` FOREIGN KEY (`permission_id`) REFERENCES `permission_consumers`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `permission_complexes` ADD CONSTRAINT `permission_complexes_complex_id_fkey` FOREIGN KEY (`complex_id`) REFERENCES `complexes`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `permission_complexes` ADD CONSTRAINT `permission_complexes_permission_id_fkey` FOREIGN KEY (`permission_id`) REFERENCES `permission_consumers`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `permission_business_activities` ADD CONSTRAINT `permission_business_activities_business_id_fkey` FOREIGN KEY (`business_id`) REFERENCES `business_activities`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `permission_business_activities` ADD CONSTRAINT `permission_business_activities_permission_id_fkey` FOREIGN KEY (`permission_id`) REFERENCES `permission_consumers`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/prisma/migrations/20260415113308_init/migration.sql b/prisma/migrations/20260415113308_init/migration.sql deleted file mode 100644 index 1ac1011..0000000 --- a/prisma/migrations/20260415113308_init/migration.sql +++ /dev/null @@ -1,2 +0,0 @@ --- AlterTable -ALTER TABLE `goods` ADD COLUMN `image_url` VARCHAR(255) NULL; diff --git a/prisma/migrations/20260416100419_init/migration.sql b/prisma/migrations/20260416100419_init/migration.sql deleted file mode 100644 index 42ca7fd..0000000 --- a/prisma/migrations/20260416100419_init/migration.sql +++ /dev/null @@ -1,78 +0,0 @@ -/* - Warnings: - - - You are about to drop the column `consumer_id` on the `licenses` table. All the data in the column will be lost. - - You are about to drop the column `expires_at` on the `licenses` table. All the data in the column will be lost. - - You are about to drop the column `starts_at` on the `licenses` table. All the data in the column will be lost. - - You are about to drop the column `status` on the `licenses` table. All the data in the column will be lost. - - A unique constraint covering the columns `[activated_license_id]` on the table `consumers` will be added. If there are existing duplicate values, this will fail. - - Added the required column `activation_expires_at` to the `licenses` table without a default value. This is not possible if the table is not empty. - - Added the required column `charged_license_transaction_id` to the `licenses` table without a default value. This is not possible if the table is not empty. - - Made the column `partner_id` on table `licenses` required. This step will fail if there are existing NULL values in that column. - -*/ --- DropForeignKey -ALTER TABLE `licenses` DROP FOREIGN KEY `licenses_consumer_id_fkey`; - --- DropForeignKey -ALTER TABLE `licenses` DROP FOREIGN KEY `licenses_partner_id_fkey`; - --- DropIndex -DROP INDEX `licenses_consumer_id_key` ON `licenses`; - --- DropIndex -DROP INDEX `licenses_partner_id_fkey` ON `licenses`; - --- AlterTable -ALTER TABLE `consumers` ADD COLUMN `activated_license_id` VARCHAR(191) NULL; - --- AlterTable -ALTER TABLE `licenses` DROP COLUMN `consumer_id`, - DROP COLUMN `expires_at`, - DROP COLUMN `starts_at`, - DROP COLUMN `status`, - ADD COLUMN `activation_expires_at` DATETIME(3) NOT NULL, - ADD COLUMN `charged_license_transaction_id` VARCHAR(191) NOT NULL, - MODIFY `partner_id` VARCHAR(191) NOT NULL; - --- CreateTable -CREATE TABLE `activated_licenses` ( - `id` VARCHAR(191) NOT NULL, - `starts_at` DATETIME(3) NOT NULL, - `expires_at` DATETIME(3) NOT NULL, - `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), - `updated_at` TIMESTAMP(0) NOT NULL, - `license_id` VARCHAR(191) NOT NULL, - - UNIQUE INDEX `activated_licenses_id_key`(`id`), - UNIQUE INDEX `activated_licenses_license_id_key`(`license_id`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `charged_license_transactions` ( - `id` VARCHAR(191) NOT NULL, - `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), - `updated_at` TIMESTAMP(0) NOT NULL, - `partner_id` VARCHAR(191) NOT NULL, - - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateIndex -CREATE UNIQUE INDEX `consumers_activated_license_id_key` ON `consumers`(`activated_license_id`); - --- AddForeignKey -ALTER TABLE `consumers` ADD CONSTRAINT `consumers_activated_license_id_fkey` FOREIGN KEY (`activated_license_id`) REFERENCES `activated_licenses`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `licenses` ADD CONSTRAINT `licenses_partner_id_fkey` FOREIGN KEY (`partner_id`) REFERENCES `partners`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `licenses` ADD CONSTRAINT `licenses_charged_license_transaction_id_fkey` FOREIGN KEY (`charged_license_transaction_id`) REFERENCES `charged_license_transactions`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `activated_licenses` ADD CONSTRAINT `activated_licenses_license_id_fkey` FOREIGN KEY (`license_id`) REFERENCES `licenses`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `charged_license_transactions` ADD CONSTRAINT `charged_license_transactions_partner_id_fkey` FOREIGN KEY (`partner_id`) REFERENCES `partners`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/prisma/migrations/20260416125205_init/migration.sql b/prisma/migrations/20260416125205_init/migration.sql deleted file mode 100644 index 49ae8f9..0000000 --- a/prisma/migrations/20260416125205_init/migration.sql +++ /dev/null @@ -1,41 +0,0 @@ -/* - Warnings: - - - You are about to drop the column `activated_license_id` on the `consumers` table. All the data in the column will be lost. - - You are about to drop the column `activation_expires_at` on the `licenses` table. All the data in the column will be lost. - - You are about to drop the column `partner_id` on the `licenses` table. All the data in the column will be lost. - - You are about to drop the column `license_quota` on the `partners` table. All the data in the column will be lost. - - Added the required column `consumer_id` to the `activated_licenses` table without a default value. This is not possible if the table is not empty. - - Added the required column `activation_expires_at` to the `charged_license_transactions` table without a default value. This is not possible if the table is not empty. - -*/ --- DropForeignKey -ALTER TABLE `consumers` DROP FOREIGN KEY `consumers_activated_license_id_fkey`; - --- DropForeignKey -ALTER TABLE `licenses` DROP FOREIGN KEY `licenses_partner_id_fkey`; - --- DropIndex -DROP INDEX `consumers_activated_license_id_key` ON `consumers`; - --- DropIndex -DROP INDEX `licenses_partner_id_fkey` ON `licenses`; - --- AlterTable -ALTER TABLE `activated_licenses` ADD COLUMN `consumer_id` VARCHAR(191) NOT NULL; - --- AlterTable -ALTER TABLE `charged_license_transactions` ADD COLUMN `activation_expires_at` DATETIME(3) NOT NULL; - --- AlterTable -ALTER TABLE `consumers` DROP COLUMN `activated_license_id`; - --- AlterTable -ALTER TABLE `licenses` DROP COLUMN `activation_expires_at`, - DROP COLUMN `partner_id`; - --- AlterTable -ALTER TABLE `partners` DROP COLUMN `license_quota`; - --- AddForeignKey -ALTER TABLE `activated_licenses` ADD CONSTRAINT `activated_licenses_consumer_id_fkey` FOREIGN KEY (`consumer_id`) REFERENCES `consumers`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/prisma/migrations/20260420124725_add_tracking_code_to_charged_license_transactions/migration.sql b/prisma/migrations/20260420124725_add_tracking_code_to_charged_license_transactions/migration.sql deleted file mode 100644 index c19756b..0000000 --- a/prisma/migrations/20260420124725_add_tracking_code_to_charged_license_transactions/migration.sql +++ /dev/null @@ -1,70 +0,0 @@ -/* -Warnings: - -- You are about to drop the `user_devices` table. If the table is not empty, all the data it contains will be lost. -- A unique constraint covering the columns `[tracking_code]` on the table `charged_license_transactions` will be added. If there are existing duplicate values, this will fail. -- Added the required column `tracking_code` to the `charged_license_transactions` table without a default value. This is not possible if the table is not empty. - -*/ --- DropTable -DROP TABLE `user_devices`; - --- CreateTable -CREATE TABLE `consumer_devices` ( - `uuid` VARCHAR(255) NOT NULL, - `app_version` VARCHAR(20) NOT NULL, - `build_number` VARCHAR(20) NOT NULL, - `platform` VARCHAR(100) NOT NULL, - `brand` VARCHAR(100) NOT NULL, - `model` VARCHAR(100) NOT NULL, - `device` VARCHAR(100) NOT NULL, - `os_version` VARCHAR(20) NOT NULL, - `sdk_version` VARCHAR(20) NOT NULL, - `release_number` VARCHAR(20) NOT NULL, - `browser_name` VARCHAR(100) NULL, - `fcm_token` VARCHAR(100) NULL, - `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), - `updated_at` TIMESTAMP(0) NOT NULL, - `consumer_id` VARCHAR(191) NOT NULL, - UNIQUE INDEX `consumer_devices_uuid_key` (`uuid`), - PRIMARY KEY (`uuid`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `application_released_info` ( - `id` VARCHAR(191) NOT NULL, - `version` VARCHAR(191) NOT NULL, - `build_number` VARCHAR(191) NOT NULL, - `is_stable` BOOLEAN NOT NULL DEFAULT TRUE, - `is_minimum_supported` BOOLEAN NOT NULL DEFAULT FALSE, - `type` ENUM('ANDROID', 'IOS') NOT NULL, - `notes` JSON NULL, - `release_date` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), - `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), - `updated_at` TIMESTAMP(0) NOT NULL, - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- AddForeignKey -ALTER TABLE `consumer_devices` -ADD CONSTRAINT `consumer_devices_consumer_id_fkey` FOREIGN KEY (`consumer_id`) REFERENCES `consumers` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - -ALTER TABLE `charged_license_transactions` -ADD COLUMN `tracking_code` VARCHAR(191) NULL; - -UPDATE `charged_license_transactions` -SET - `tracking_code` = CONCAT( - 'TRX-', - UPPER( - REPLACE (`id`, '-', '') - ) - ) -WHERE - `tracking_code` IS NULL - OR `tracking_code` = ''; - -ALTER TABLE `charged_license_transactions` -MODIFY `tracking_code` VARCHAR(191) NOT NULL; - -CREATE UNIQUE INDEX `charged_license_transactions_tracking_code_key` ON `charged_license_transactions` (`tracking_code`); diff --git a/prisma/migrations/20260421131918_init/migration.sql b/prisma/migrations/20260421131918_init/migration.sql deleted file mode 100644 index 9c4bc0d..0000000 --- a/prisma/migrations/20260421131918_init/migration.sql +++ /dev/null @@ -1,19 +0,0 @@ -/* - Warnings: - - - You are about to drop the column `is_stable` on the `application_released_info` table. All the data in the column will be lost. - - You are about to drop the column `type` on the `application_released_info` table. All the data in the column will be lost. - - Added the required column `platform` to the `application_released_info` table without a default value. This is not possible if the table is not empty. - - Added the required column `release_type` to the `application_released_info` table without a default value. This is not possible if the table is not empty. - - Added the required column `publisher` to the `consumer_devices` table without a default value. This is not possible if the table is not empty. - -*/ --- AlterTable -ALTER TABLE `application_released_info` DROP COLUMN `is_stable`, - DROP COLUMN `type`, - ADD COLUMN `platform` ENUM('ANDROID', 'IOS') NOT NULL, - ADD COLUMN `release_type` ENUM('STABLE', 'BETA', 'ALPHA') NOT NULL; - --- AlterTable -ALTER TABLE `consumer_devices` ADD COLUMN `publisher` ENUM('DIRECT', 'CAFE_BAZAR', 'MAYKET') NOT NULL, - ADD COLUMN `user_agent` VARCHAR(100) NULL; diff --git a/prisma/migrations/20260422200730_init/migration.sql b/prisma/migrations/20260422200730_init/migration.sql deleted file mode 100644 index 8288615..0000000 --- a/prisma/migrations/20260422200730_init/migration.sql +++ /dev/null @@ -1,35 +0,0 @@ -/* - Warnings: - - - You are about to drop the column `tax_id` on the `complexes` table. All the data in the column will be lost. - - A unique constraint covering the columns `[economic_code]` on the table `business_activities` will be added. If there are existing duplicate values, this will fail. - - A unique constraint covering the columns `[mobile_number,national_code,partner_id]` on the table `consumers` will be added. If there are existing duplicate values, this will fail. - - Added the required column `economic_code` to the `business_activities` table without a default value. This is not possible if the table is not empty. - - Added the required column `national_code` to the `consumers` table without a default value. This is not possible if the table is not empty. - - Added the required column `partner_id` to the `consumers` table without a default value. This is not possible if the table is not empty. - -*/ --- DropIndex -DROP INDEX `consumers_mobile_number_key` ON `consumers`; - --- AlterTable -ALTER TABLE `business_activities` ADD COLUMN `economic_code` VARCHAR(191) NOT NULL; - --- AlterTable -ALTER TABLE `complexes` DROP COLUMN `tax_id`; - --- AlterTable -ALTER TABLE `consumers` ADD COLUMN `national_code` VARCHAR(191) NOT NULL, - ADD COLUMN `partner_id` VARCHAR(191) NOT NULL; - --- AlterTable -ALTER TABLE `licenses` ADD COLUMN `accounts_limit` INTEGER NOT NULL DEFAULT 3; - --- CreateIndex -CREATE UNIQUE INDEX `business_activities_economic_code_key` ON `business_activities`(`economic_code`); - --- CreateIndex -CREATE UNIQUE INDEX `consumers_mobile_number_national_code_partner_id_key` ON `consumers`(`mobile_number`, `national_code`, `partner_id`); - --- AddForeignKey -ALTER TABLE `consumers` ADD CONSTRAINT `consumers_partner_id_fkey` FOREIGN KEY (`partner_id`) REFERENCES `partners`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/prisma/migrations/20260422201806_init/migration.sql b/prisma/migrations/20260422201806_init/migration.sql deleted file mode 100644 index e7be6b0..0000000 --- a/prisma/migrations/20260422201806_init/migration.sql +++ /dev/null @@ -1,8 +0,0 @@ -/* - Warnings: - - - Added the required column `branch_code` to the `complexes` table without a default value. This is not possible if the table is not empty. - -*/ --- AlterTable -ALTER TABLE `complexes` ADD COLUMN `branch_code` VARCHAR(191) NOT NULL; diff --git a/prisma/migrations/20260423124719_init/migration.sql b/prisma/migrations/20260423124719_init/migration.sql deleted file mode 100644 index 287e226..0000000 --- a/prisma/migrations/20260423124719_init/migration.sql +++ /dev/null @@ -1,151 +0,0 @@ -/* - Warnings: - - - You are about to drop the column `charged_license_transaction_id` on the `licenses` table. All the data in the column will be lost. - - You are about to drop the `activated_licenses` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `charged_license_transactions` table. If the table is not empty, all the data it contains will be lost. - - A unique constraint covering the columns `[mobile_number,partner_id]` on the table `consumers` will be added. If there are existing duplicate values, this will fail. - - A unique constraint covering the columns `[national_code,partner_id]` on the table `consumers` will be added. If there are existing duplicate values, this will fail. - - Added the required column `charge_transaction_id` to the `licenses` table without a default value. This is not possible if the table is not empty. - -*/ --- DropForeignKey -ALTER TABLE `activated_licenses` DROP FOREIGN KEY `activated_licenses_consumer_id_fkey`; - --- DropForeignKey -ALTER TABLE `activated_licenses` DROP FOREIGN KEY `activated_licenses_license_id_fkey`; - --- DropForeignKey -ALTER TABLE `charged_license_transactions` DROP FOREIGN KEY `charged_license_transactions_partner_id_fkey`; - --- DropForeignKey -ALTER TABLE `licenses` DROP FOREIGN KEY `licenses_charged_license_transaction_id_fkey`; - --- DropIndex -DROP INDEX `consumers_mobile_number_national_code_partner_id_key` ON `consumers`; - --- DropIndex -DROP INDEX `licenses_charged_license_transaction_id_fkey` ON `licenses`; - --- AlterTable -ALTER TABLE `licenses` DROP COLUMN `charged_license_transaction_id`, - ADD COLUMN `charge_transaction_id` VARCHAR(191) NOT NULL; - --- DropTable -DROP TABLE `activated_licenses`; - --- DropTable -DROP TABLE `charged_license_transactions`; - --- CreateTable -CREATE TABLE `licenses_activated` ( - `id` VARCHAR(191) NOT NULL, - `starts_at` DATETIME(3) NOT NULL, - `expires_at` DATETIME(3) NOT NULL, - `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), - `updated_at` TIMESTAMP(0) NOT NULL, - `license_id` VARCHAR(191) NOT NULL, - `business_activity_id` VARCHAR(191) NOT NULL, - - UNIQUE INDEX `licenses_activated_id_key`(`id`), - UNIQUE INDEX `licenses_activated_license_id_key`(`license_id`), - UNIQUE INDEX `licenses_activated_business_activity_id_key`(`business_activity_id`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `license_charged_transactions` ( - `id` VARCHAR(191) NOT NULL, - `activation_expires_at` DATETIME(3) NOT NULL, - `tracking_code` VARCHAR(191) NOT NULL, - `purchased_count` INTEGER NOT NULL, - `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), - `updated_at` TIMESTAMP(0) NOT NULL, - `partner_id` VARCHAR(191) NOT NULL, - - UNIQUE INDEX `license_charged_transactions_tracking_code_key`(`tracking_code`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `license_renew` ( - `id` VARCHAR(191) NOT NULL, - `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), - `updated_at` TIMESTAMP(0) NOT NULL, - `charge_transaction_id` VARCHAR(191) NOT NULL, - `activation_id` VARCHAR(191) NOT NULL, - - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `license_renew_charge_transaction` ( - `id` VARCHAR(191) NOT NULL, - `activation_expires_at` DATETIME(3) NOT NULL, - `tracking_code` VARCHAR(191) NOT NULL, - `purchased_count` INTEGER NOT NULL, - `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), - `updated_at` TIMESTAMP(0) NOT NULL, - `partner_id` VARCHAR(191) NOT NULL, - - UNIQUE INDEX `license_renew_charge_transaction_tracking_code_key`(`tracking_code`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `partner_account_quota_charge_transaction` ( - `id` VARCHAR(191) NOT NULL, - `purchased_count` INTEGER NOT NULL, - `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), - `updated_at` TIMESTAMP(0) NOT NULL, - `partner_id` VARCHAR(191) NOT NULL, - - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `partner_account_quota_allocation` ( - `id` VARCHAR(191) NOT NULL, - `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), - `updated_at` TIMESTAMP(0) NOT NULL, - `charge_transaction_id` VARCHAR(191) NOT NULL, - `license_id` VARCHAR(191) NULL, - - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateIndex -CREATE UNIQUE INDEX `consumers_mobile_number_partner_id_key` ON `consumers`(`mobile_number`, `partner_id`); - --- CreateIndex -CREATE UNIQUE INDEX `consumers_national_code_partner_id_key` ON `consumers`(`national_code`, `partner_id`); - --- AddForeignKey -ALTER TABLE `licenses` ADD CONSTRAINT `licenses_charge_transaction_id_fkey` FOREIGN KEY (`charge_transaction_id`) REFERENCES `license_charged_transactions`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `licenses_activated` ADD CONSTRAINT `licenses_activated_license_id_fkey` FOREIGN KEY (`license_id`) REFERENCES `licenses`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `licenses_activated` ADD CONSTRAINT `licenses_activated_business_activity_id_fkey` FOREIGN KEY (`business_activity_id`) REFERENCES `business_activities`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `license_charged_transactions` ADD CONSTRAINT `license_charged_transactions_partner_id_fkey` FOREIGN KEY (`partner_id`) REFERENCES `partners`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `license_renew` ADD CONSTRAINT `license_renew_charge_transaction_id_fkey` FOREIGN KEY (`charge_transaction_id`) REFERENCES `license_renew_charge_transaction`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `license_renew` ADD CONSTRAINT `license_renew_activation_id_fkey` FOREIGN KEY (`activation_id`) REFERENCES `licenses_activated`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `license_renew_charge_transaction` ADD CONSTRAINT `license_renew_charge_transaction_partner_id_fkey` FOREIGN KEY (`partner_id`) REFERENCES `partners`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `partner_account_quota_charge_transaction` ADD CONSTRAINT `partner_account_quota_charge_transaction_partner_id_fkey` FOREIGN KEY (`partner_id`) REFERENCES `partners`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `partner_account_quota_allocation` ADD CONSTRAINT `partner_account_quota_allocation_charge_transaction_id_fkey` FOREIGN KEY (`charge_transaction_id`) REFERENCES `partner_account_quota_charge_transaction`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `partner_account_quota_allocation` ADD CONSTRAINT `partner_account_quota_allocation_license_id_fkey` FOREIGN KEY (`license_id`) REFERENCES `licenses`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; diff --git a/prisma/migrations/20260423164340_init/migration.sql b/prisma/migrations/20260423164340_init/migration.sql deleted file mode 100644 index 4601081..0000000 --- a/prisma/migrations/20260423164340_init/migration.sql +++ /dev/null @@ -1,18 +0,0 @@ -/* - Warnings: - - - A unique constraint covering the columns `[tracking_code]` on the table `partner_account_quota_charge_transaction` will be added. If there are existing duplicate values, this will fail. - - Added the required column `expires_at` to the `license_renew` table without a default value. This is not possible if the table is not empty. - - Added the required column `activation_expires_at` to the `partner_account_quota_charge_transaction` table without a default value. This is not possible if the table is not empty. - - Added the required column `tracking_code` to the `partner_account_quota_charge_transaction` table without a default value. This is not possible if the table is not empty. - -*/ --- AlterTable -ALTER TABLE `license_renew` ADD COLUMN `expires_at` DATETIME(3) NOT NULL; - --- AlterTable -ALTER TABLE `partner_account_quota_charge_transaction` ADD COLUMN `activation_expires_at` DATETIME(3) NOT NULL, - ADD COLUMN `tracking_code` VARCHAR(191) NOT NULL; - --- CreateIndex -CREATE UNIQUE INDEX `partner_account_quota_charge_transaction_tracking_code_key` ON `partner_account_quota_charge_transaction`(`tracking_code`); diff --git a/prisma/migrations/20260423214958_init/migration.sql b/prisma/migrations/20260423214958_init/migration.sql deleted file mode 100644 index a5a8b0c..0000000 --- a/prisma/migrations/20260423214958_init/migration.sql +++ /dev/null @@ -1,16 +0,0 @@ -/* - Warnings: - - - You are about to drop the column `serial` on the `poses` table. All the data in the column will be lost. - - A unique constraint covering the columns `[serial_number]` on the table `poses` will be added. If there are existing duplicate values, this will fail. - -*/ --- DropIndex -DROP INDEX `poses_serial_key` ON `poses`; - --- AlterTable -ALTER TABLE `poses` DROP COLUMN `serial`, - ADD COLUMN `serial_number` VARCHAR(191) NULL; - --- CreateIndex -CREATE UNIQUE INDEX `poses_serial_number_key` ON `poses`(`serial_number`); diff --git a/prisma/migrations/20260423232622_init/migration.sql b/prisma/migrations/20260423232622_init/migration.sql deleted file mode 100644 index 3ccca20..0000000 --- a/prisma/migrations/20260423232622_init/migration.sql +++ /dev/null @@ -1,20 +0,0 @@ -/* - Warnings: - - - A unique constraint covering the columns `[account_id]` on the table `poses` will be added. If there are existing duplicate values, this will fail. - -*/ --- AlterTable -ALTER TABLE `licenses` MODIFY `accounts_limit` INTEGER NOT NULL DEFAULT 2; - --- AlterTable -ALTER TABLE `partners` ADD COLUMN `logo_url` VARCHAR(191) NULL; - --- AlterTable -ALTER TABLE `poses` ADD COLUMN `account_id` VARCHAR(191) NULL; - --- CreateIndex -CREATE UNIQUE INDEX `poses_account_id_key` ON `poses`(`account_id`); - --- AddForeignKey -ALTER TABLE `poses` ADD CONSTRAINT `poses_account_id_fkey` FOREIGN KEY (`account_id`) REFERENCES `consumer_accounts`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; diff --git a/prisma/migrations/20260424154103_init/migration.sql b/prisma/migrations/20260424154103_init/migration.sql deleted file mode 100644 index 65a6b4d..0000000 --- a/prisma/migrations/20260424154103_init/migration.sql +++ /dev/null @@ -1,50 +0,0 @@ -/* - Warnings: - - - You are about to drop the `partner_account_quota_allocation` table. If the table is not empty, all the data it contains will be lost. - -*/ --- DropForeignKey -ALTER TABLE `partner_account_quota_allocation` DROP FOREIGN KEY `partner_account_quota_allocation_charge_transaction_id_fkey`; - --- DropForeignKey -ALTER TABLE `partner_account_quota_allocation` DROP FOREIGN KEY `partner_account_quota_allocation_license_id_fkey`; - --- DropTable -DROP TABLE `partner_account_quota_allocation`; - --- CreateTable -CREATE TABLE `partner_account_quota_credit` ( - `id` VARCHAR(191) NOT NULL, - `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), - `updated_at` TIMESTAMP(0) NOT NULL, - `charge_transaction_id` VARCHAR(191) NOT NULL, - `allocation_id` VARCHAR(191) NULL, - - UNIQUE INDEX `partner_account_quota_credit_allocation_id_key`(`allocation_id`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `license_account_allocation` ( - `id` VARCHAR(191) NOT NULL, - `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), - `updated_at` TIMESTAMP(0) NOT NULL, - `license_activation_id` VARCHAR(191) NOT NULL, - `account_id` VARCHAR(191) NOT NULL, - - UNIQUE INDEX `license_account_allocation_account_id_key`(`account_id`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- AddForeignKey -ALTER TABLE `partner_account_quota_credit` ADD CONSTRAINT `partner_account_quota_credit_charge_transaction_id_fkey` FOREIGN KEY (`charge_transaction_id`) REFERENCES `partner_account_quota_charge_transaction`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `partner_account_quota_credit` ADD CONSTRAINT `partner_account_quota_credit_allocation_id_fkey` FOREIGN KEY (`allocation_id`) REFERENCES `license_account_allocation`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `license_account_allocation` ADD CONSTRAINT `license_account_allocation_license_activation_id_fkey` FOREIGN KEY (`license_activation_id`) REFERENCES `licenses_activated`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `license_account_allocation` ADD CONSTRAINT `license_account_allocation_account_id_fkey` FOREIGN KEY (`account_id`) REFERENCES `consumer_accounts`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/prisma/migrations/20260424161725_init/migration.sql b/prisma/migrations/20260424161725_init/migration.sql deleted file mode 100644 index 181c4c2..0000000 --- a/prisma/migrations/20260424161725_init/migration.sql +++ /dev/null @@ -1,30 +0,0 @@ --- DropForeignKey -ALTER TABLE `license_account_allocation` DROP FOREIGN KEY `license_account_allocation_account_id_fkey`; - --- DropForeignKey -ALTER TABLE `license_account_allocation` DROP FOREIGN KEY `license_account_allocation_license_activation_id_fkey`; - --- DropForeignKey -ALTER TABLE `partner_account_quota_credit` DROP FOREIGN KEY `partner_account_quota_credit_charge_transaction_id_fkey`; - --- DropIndex -DROP INDEX `license_account_allocation_license_activation_id_fkey` ON `license_account_allocation`; - --- DropIndex -DROP INDEX `partner_account_quota_credit_charge_transaction_id_fkey` ON `partner_account_quota_credit`; - --- AlterTable -ALTER TABLE `license_account_allocation` MODIFY `license_activation_id` VARCHAR(191) NULL, - MODIFY `account_id` VARCHAR(191) NULL; - --- AlterTable -ALTER TABLE `partner_account_quota_credit` MODIFY `charge_transaction_id` VARCHAR(191) NULL; - --- AddForeignKey -ALTER TABLE `partner_account_quota_credit` ADD CONSTRAINT `partner_account_quota_credit_charge_transaction_id_fkey` FOREIGN KEY (`charge_transaction_id`) REFERENCES `partner_account_quota_charge_transaction`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `license_account_allocation` ADD CONSTRAINT `license_account_allocation_license_activation_id_fkey` FOREIGN KEY (`license_activation_id`) REFERENCES `licenses_activated`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `license_account_allocation` ADD CONSTRAINT `license_account_allocation_account_id_fkey` FOREIGN KEY (`account_id`) REFERENCES `consumer_accounts`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; diff --git a/prisma/migrations/20260425075045_init/migration.sql b/prisma/migrations/20260425075045_init/migration.sql deleted file mode 100644 index 51acbe5..0000000 --- a/prisma/migrations/20260425075045_init/migration.sql +++ /dev/null @@ -1,53 +0,0 @@ -/* - Warnings: - - - You are about to drop the column `allocation_id` on the `partner_account_quota_credit` table. All the data in the column will be lost. - - A unique constraint covering the columns `[economic_code,consumer_id]` on the table `business_activities` will be added. If there are existing duplicate values, this will fail. - - A unique constraint covering the columns `[credit_id]` on the table `license_account_allocation` will be added. If there are existing duplicate values, this will fail. - - Made the column `account_id` on table `poses` required. This step will fail if there are existing NULL values in that column. - -*/ --- DropForeignKey -ALTER TABLE `license_renew` DROP FOREIGN KEY `license_renew_activation_id_fkey`; - --- DropForeignKey -ALTER TABLE `partner_account_quota_credit` DROP FOREIGN KEY `partner_account_quota_credit_allocation_id_fkey`; - --- DropForeignKey -ALTER TABLE `poses` DROP FOREIGN KEY `poses_account_id_fkey`; - --- DropIndex -DROP INDEX `business_activities_economic_code_key` ON `business_activities`; - --- DropIndex -DROP INDEX `license_renew_activation_id_fkey` ON `license_renew`; - --- DropIndex -DROP INDEX `partner_account_quota_credit_allocation_id_key` ON `partner_account_quota_credit`; - --- AlterTable -ALTER TABLE `license_account_allocation` ADD COLUMN `credit_id` VARCHAR(191) NULL; - --- AlterTable -ALTER TABLE `license_renew` MODIFY `activation_id` VARCHAR(191) NULL; - --- AlterTable -ALTER TABLE `partner_account_quota_credit` DROP COLUMN `allocation_id`; - --- AlterTable -ALTER TABLE `poses` MODIFY `account_id` VARCHAR(191) NOT NULL; - --- CreateIndex -CREATE UNIQUE INDEX `business_activities_economic_code_consumer_id_key` ON `business_activities`(`economic_code`, `consumer_id`); - --- CreateIndex -CREATE UNIQUE INDEX `license_account_allocation_credit_id_key` ON `license_account_allocation`(`credit_id`); - --- AddForeignKey -ALTER TABLE `poses` ADD CONSTRAINT `poses_account_id_fkey` FOREIGN KEY (`account_id`) REFERENCES `consumer_accounts`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `license_renew` ADD CONSTRAINT `license_renew_activation_id_fkey` FOREIGN KEY (`activation_id`) REFERENCES `licenses_activated`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `license_account_allocation` ADD CONSTRAINT `license_account_allocation_credit_id_fkey` FOREIGN KEY (`credit_id`) REFERENCES `partner_account_quota_credit`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; diff --git a/prisma/migrations/20260426071752_init/migration.sql b/prisma/migrations/20260426071752_init/migration.sql deleted file mode 100644 index 9bc92e5..0000000 --- a/prisma/migrations/20260426071752_init/migration.sql +++ /dev/null @@ -1,75 +0,0 @@ -/* - Warnings: - - - You are about to drop the column `complex_id` on the `customer_individuals` table. All the data in the column will be lost. - - You are about to drop the column `complex_id` on the `customer_legal` table. All the data in the column will be lost. - - You are about to drop the column `unknown_customer` on the `customers` table. All the data in the column will be lost. - - You are about to drop the column `complex_id` on the `goods` table. All the data in the column will be lost. - - A unique constraint covering the columns `[business_activity_id,national_id]` on the table `customer_individuals` will be added. If there are existing duplicate values, this will fail. - - A unique constraint covering the columns `[business_activity_id,economic_code]` on the table `customer_legal` will be added. If there are existing duplicate values, this will fail. - - Added the required column `business_activity_id` to the `customer_individuals` table without a default value. This is not possible if the table is not empty. - - Added the required column `mobile_number` to the `customer_individuals` table without a default value. This is not possible if the table is not empty. - - Added the required column `business_activity_id` to the `customer_legal` table without a default value. This is not possible if the table is not empty. - -*/ --- DropForeignKey -ALTER TABLE `customer_individuals` DROP FOREIGN KEY `customer_individuals_complex_id_fkey`; - --- DropForeignKey -ALTER TABLE `customer_legal` DROP FOREIGN KEY `customer_legal_complex_id_fkey`; - --- DropForeignKey -ALTER TABLE `goods` DROP FOREIGN KEY `goods_complex_id_fkey`; - --- DropIndex -DROP INDEX `customer_individuals_complex_id_idx` ON `customer_individuals`; - --- DropIndex -DROP INDEX `customer_individuals_complex_id_national_id_key` ON `customer_individuals`; - --- DropIndex -DROP INDEX `customer_legal_complex_id_idx` ON `customer_legal`; - --- DropIndex -DROP INDEX `customer_legal_complex_id_registration_number_key` ON `customer_legal`; - --- DropIndex -DROP INDEX `goods_complex_id_fkey` ON `goods`; - --- AlterTable -ALTER TABLE `customer_individuals` DROP COLUMN `complex_id`, - ADD COLUMN `business_activity_id` VARCHAR(191) NOT NULL, - ADD COLUMN `mobile_number` CHAR(15) NOT NULL; - --- AlterTable -ALTER TABLE `customer_legal` DROP COLUMN `complex_id`, - ADD COLUMN `business_activity_id` VARCHAR(191) NOT NULL, - MODIFY `registration_number` CHAR(20) NULL; - --- AlterTable -ALTER TABLE `customers` DROP COLUMN `unknown_customer`; - --- AlterTable -ALTER TABLE `goods` DROP COLUMN `complex_id`, - ADD COLUMN `business_activity_id` VARCHAR(191) NULL; - --- CreateIndex -CREATE INDEX `customer_individuals_business_activity_id_idx` ON `customer_individuals`(`business_activity_id`); - --- CreateIndex -CREATE UNIQUE INDEX `customer_individuals_business_activity_id_national_id_key` ON `customer_individuals`(`business_activity_id`, `national_id`); - --- CreateIndex -CREATE INDEX `customer_legal_business_activity_id_idx` ON `customer_legal`(`business_activity_id`); - --- CreateIndex -CREATE UNIQUE INDEX `customer_legal_business_activity_id_economic_code_key` ON `customer_legal`(`business_activity_id`, `economic_code`); - --- AddForeignKey -ALTER TABLE `customer_individuals` ADD CONSTRAINT `customer_individuals_business_activity_id_fkey` FOREIGN KEY (`business_activity_id`) REFERENCES `business_activities`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `customer_legal` ADD CONSTRAINT `customer_legal_business_activity_id_fkey` FOREIGN KEY (`business_activity_id`) REFERENCES `business_activities`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `goods` ADD CONSTRAINT `goods_business_activity_id_fkey` FOREIGN KEY (`business_activity_id`) REFERENCES `business_activities`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; diff --git a/prisma/migrations/20260426143218_init/migration.sql b/prisma/migrations/20260426143218_init/migration.sql deleted file mode 100644 index 18fb85a..0000000 --- a/prisma/migrations/20260426143218_init/migration.sql +++ /dev/null @@ -1,102 +0,0 @@ -/* -Consumer profile split migration. - -Existing profile data is copied into `individual_consumers` before the source -columns are removed from `consumers`. -*/ --- AlterTable -ALTER TABLE `consumers` -ADD COLUMN `type` ENUM('INDIVIDUAL', 'LEGAL') NOT NULL DEFAULT 'INDIVIDUAL'; - -UPDATE `consumers` SET `type` = 'INDIVIDUAL'; - --- DropForeignKey -ALTER TABLE `consumers` DROP FOREIGN KEY `consumers_partner_id_fkey`; - --- DropIndex -DROP INDEX `consumers_mobile_number_partner_id_key` ON `consumers`; - --- DropIndex -DROP INDEX `consumers_national_code_partner_id_key` ON `consumers`; - --- DropIndex -DROP INDEX `consumers_partner_id_fkey` ON `consumers`; - --- CreateTable -CREATE TABLE `individual_consumers` ( - `first_name` VARCHAR(191) NOT NULL, - `last_name` VARCHAR(191) NOT NULL, - `mobile_number` VARCHAR(191) NOT NULL, - `national_code` VARCHAR(191) NOT NULL, - `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), - `updated_at` TIMESTAMP(0) NOT NULL, - `partner_id` VARCHAR(191) NOT NULL, - `consumer_id` VARCHAR(191) NOT NULL, - UNIQUE INDEX `individual_consumers_mobile_number_consumer_id_key` ( - `mobile_number`, - `consumer_id` - ), - UNIQUE INDEX `individual_consumers_partner_id_national_code_key` (`partner_id`, `national_code`), - PRIMARY KEY (`consumer_id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `legal_consumers` ( - `name` VARCHAR(191) NOT NULL, - `registration_code` VARCHAR(191) NOT NULL, - `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), - `updated_at` TIMESTAMP(0) NOT NULL, - `partner_id` VARCHAR(191) NOT NULL, - `consumer_id` VARCHAR(191) NOT NULL, - UNIQUE INDEX `legal_consumers_partner_id_registration_code_key` ( - `partner_id`, - `registration_code` - ), - PRIMARY KEY (`consumer_id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - -INSERT INTO - `individual_consumers` ( - `first_name`, - `last_name`, - `mobile_number`, - `national_code`, - `created_at`, - `updated_at`, - `partner_id`, - `consumer_id` - ) -SELECT - `first_name`, - `last_name`, - `mobile_number`, - `national_code`, - `created_at`, - `updated_at`, - `partner_id`, - `id` -FROM `consumers`; - -ALTER TABLE `consumers` -DROP COLUMN `first_name`, -DROP COLUMN `last_name`, -DROP COLUMN `mobile_number`, -DROP COLUMN `national_code`, -DROP COLUMN `partner_id`, -MODIFY `type` ENUM('INDIVIDUAL', 'LEGAL') NOT NULL; - --- AddForeignKey -ALTER TABLE `individual_consumers` -ADD CONSTRAINT `individual_consumers_partner_id_fkey` FOREIGN KEY (`partner_id`) REFERENCES `partners` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `individual_consumers` -ADD CONSTRAINT `individual_consumers_consumer_id_fkey` FOREIGN KEY (`consumer_id`) REFERENCES `consumers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `legal_consumers` -ADD CONSTRAINT `legal_consumers_partner_id_fkey` FOREIGN KEY (`partner_id`) REFERENCES `partners` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `legal_consumers` -ADD CONSTRAINT `legal_consumers_consumer_id_fkey` FOREIGN KEY (`consumer_id`) REFERENCES `consumers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/prisma/migrations/20260426153449_init/migration.sql b/prisma/migrations/20260426153449_init/migration.sql deleted file mode 100644 index b7e9739..0000000 --- a/prisma/migrations/20260426153449_init/migration.sql +++ /dev/null @@ -1,22 +0,0 @@ -ALTER TABLE `individual_consumers` RENAME TO `consumers_individual`; -ALTER TABLE `legal_consumers` RENAME TO `consumers_legal`; - -ALTER TABLE `consumers_individual` - RENAME INDEX `individual_consumers_mobile_number_consumer_id_key` TO `consumers_individual_mobile_number_consumer_id_key`; -ALTER TABLE `consumers_individual` - RENAME INDEX `individual_consumers_partner_id_national_code_key` TO `consumers_individual_partner_id_national_code_key`; -ALTER TABLE `consumers_legal` - RENAME INDEX `legal_consumers_partner_id_registration_code_key` TO `consumers_legal_partner_id_registration_code_key`; - -ALTER TABLE `consumers_individual` DROP FOREIGN KEY `individual_consumers_partner_id_fkey`; -ALTER TABLE `consumers_individual` DROP FOREIGN KEY `individual_consumers_consumer_id_fkey`; -ALTER TABLE `consumers_legal` DROP FOREIGN KEY `legal_consumers_partner_id_fkey`; -ALTER TABLE `consumers_legal` DROP FOREIGN KEY `legal_consumers_consumer_id_fkey`; - -ALTER TABLE `consumers_individual` - ADD CONSTRAINT `consumers_individual_partner_id_fkey` FOREIGN KEY (`partner_id`) REFERENCES `partners`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE, - ADD CONSTRAINT `consumers_individual_consumer_id_fkey` FOREIGN KEY (`consumer_id`) REFERENCES `consumers`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE `consumers_legal` - ADD CONSTRAINT `consumers_legal_partner_id_fkey` FOREIGN KEY (`partner_id`) REFERENCES `partners`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE, - ADD CONSTRAINT `consumers_legal_consumer_id_fkey` FOREIGN KEY (`consumer_id`) REFERENCES `consumers`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/prisma/migrations/20260427162219_init/migration.sql b/prisma/migrations/20260427162219_init/migration.sql deleted file mode 100644 index 165863a..0000000 --- a/prisma/migrations/20260427162219_init/migration.sql +++ /dev/null @@ -1,80 +0,0 @@ -/* - Warnings: - - - You are about to drop the column `account_id` on the `sales_invoices` table. All the data in the column will be lost. - - A unique constraint covering the columns `[invoice_number,pos_id]` on the table `sales_invoices` will be added. If there are existing duplicate values, this will fail. - - Added the required column `fiscal_id` to the `business_activities` table without a default value. This is not possible if the table is not empty. - - Added the required column `partner_token` to the `business_activities` table without a default value. This is not possible if the table is not empty. - - Added the required column `consumer_account_id` to the `sales_invoices` table without a default value. This is not possible if the table is not empty. - - Added the required column `invoice_number` to the `sales_invoices` table without a default value. This is not possible if the table is not empty. - - Made the column `invoice_date` on table `sales_invoices` required. This step will fail if there are existing NULL values in that column. - -*/ --- DropForeignKey -ALTER TABLE `sales_invoices` DROP FOREIGN KEY `sales_invoices_account_id_fkey`; - --- DropIndex -DROP INDEX `sales_invoices_account_id_fkey` ON `sales_invoices`; - --- AlterTable -ALTER TABLE `business_activities` ADD COLUMN `fiscal_id` VARCHAR(191) NOT NULL DEFAULT '', - ADD COLUMN `partner_token` VARCHAR(191) NOT NULL DEFAULT ''; - --- AlterTable -ALTER TABLE `sales_invoice_items` ADD COLUMN `good_snapshot` JSON NULL; - --- AlterTable -ALTER TABLE `sales_invoice_payments` MODIFY `paid_at` TIMESTAMP(0) NOT NULL, - MODIFY `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0); - --- AlterTable -ALTER TABLE `sales_invoices` DROP COLUMN `account_id`, - ADD COLUMN `consumer_account_id` VARCHAR(191) NOT NULL, - ADD COLUMN `invoice_number` INTEGER NOT NULL, - MODIFY `invoice_date` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0); - --- CreateTable -CREATE TABLE `sale_invoice_fiscals` ( - `id` VARCHAR(191) NOT NULL, - `retry_count` INTEGER NOT NULL DEFAULT 0, - `last_attempt_at` TIMESTAMP(0) NULL, - `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), - `updated_at` TIMESTAMP(0) NOT NULL, - `invoice_id` VARCHAR(191) NOT NULL, - - UNIQUE INDEX `sale_invoice_fiscals_invoice_id_key`(`invoice_id`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `sale_invoice_fiscal_attempts` ( - `id` VARCHAR(191) NOT NULL, - `attempt_no` INTEGER NOT NULL, - `status` VARCHAR(50) NOT NULL, - `tax_id` VARCHAR(191) NULL, - `request_payload` JSON NULL, - `response_payload` JSON NULL, - `error_message` TEXT NULL, - `sent_at` TIMESTAMP(0) NULL, - `received_at` TIMESTAMP(0) NULL, - `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), - `fiscal_id` VARCHAR(191) NOT NULL, - - UNIQUE INDEX `sale_invoice_fiscal_attempts_tax_id_key`(`tax_id`), - INDEX `sale_invoice_fiscal_attempts_status_idx`(`status`), - INDEX `sale_invoice_fiscal_attempts_tax_id_idx`(`tax_id`), - UNIQUE INDEX `sale_invoice_fiscal_attempts_fiscal_id_attempt_no_key`(`fiscal_id`, `attempt_no`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateIndex -CREATE UNIQUE INDEX `sales_invoices_invoice_number_pos_id_key` ON `sales_invoices`(`invoice_number`, `pos_id`); - --- AddForeignKey -ALTER TABLE `sales_invoices` ADD CONSTRAINT `sales_invoices_consumer_account_id_fkey` FOREIGN KEY (`consumer_account_id`) REFERENCES `consumer_accounts`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `sale_invoice_fiscals` ADD CONSTRAINT `sale_invoice_fiscals_invoice_id_fkey` FOREIGN KEY (`invoice_id`) REFERENCES `sales_invoices`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `sale_invoice_fiscal_attempts` ADD CONSTRAINT `sale_invoice_fiscal_attempts_fiscal_id_fkey` FOREIGN KEY (`fiscal_id`) REFERENCES `sale_invoice_fiscals`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/prisma/migrations/20260427163305_init/migration.sql b/prisma/migrations/20260427163305_init/migration.sql deleted file mode 100644 index 02b8dd3..0000000 --- a/prisma/migrations/20260427163305_init/migration.sql +++ /dev/null @@ -1,3 +0,0 @@ --- AlterTable -ALTER TABLE `business_activities` ALTER COLUMN `fiscal_id` DROP DEFAULT, - ALTER COLUMN `partner_token` DROP DEFAULT; diff --git a/prisma/migrations/20260428082555_add_fiscal_switch_to_partner/migration.sql b/prisma/migrations/20260428082555_add_fiscal_switch_to_partner/migration.sql deleted file mode 100644 index 8aeb148..0000000 --- a/prisma/migrations/20260428082555_add_fiscal_switch_to_partner/migration.sql +++ /dev/null @@ -1,2 +0,0 @@ --- AlterTable -ALTER TABLE `partners` ADD COLUMN `fiscal_switch_type` ENUM('NAMA', 'SUN') NOT NULL DEFAULT 'NAMA'; diff --git a/prisma/migrations/20260410112847_init/migration.sql b/prisma/migrations/20260501134616_init/migration.sql similarity index 56% rename from prisma/migrations/20260410112847_init/migration.sql rename to prisma/migrations/20260501134616_init/migration.sql index dd32498..0bcd9e7 100644 --- a/prisma/migrations/20260410112847_init/migration.sql +++ b/prisma/migrations/20260501134616_init/migration.sql @@ -37,76 +37,6 @@ CREATE TABLE `accounts` ( PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; --- CreateTable -CREATE TABLE `consumer_accounts` ( - `id` VARCHAR(191) NOT NULL, - `role` ENUM('OWNER', 'MANAGER', 'OPERATOR') NOT NULL, - `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), - `updated_at` TIMESTAMP(0) NOT NULL, - `consumer_id` VARCHAR(191) NOT NULL, - `account_id` VARCHAR(191) NOT NULL, - - UNIQUE INDEX `consumer_accounts_account_id_key`(`account_id`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `consumers` ( - `id` VARCHAR(191) NOT NULL, - `mobile_number` VARCHAR(191) NOT NULL, - `first_name` VARCHAR(191) NOT NULL, - `last_name` VARCHAR(191) NOT NULL, - `status` ENUM('ACTIVE', 'SUSPENDED') NOT NULL DEFAULT 'ACTIVE', - `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), - `updated_at` TIMESTAMP(0) NOT NULL, - - UNIQUE INDEX `consumers_mobile_number_key`(`mobile_number`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `business_activities` ( - `id` VARCHAR(191) NOT NULL, - `name` VARCHAR(191) NOT NULL, - `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), - `updated_at` TIMESTAMP(0) NOT NULL, - `guild_id` VARCHAR(191) NOT NULL, - `consumer_id` VARCHAR(191) NOT NULL, - - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `complexes` ( - `id` VARCHAR(191) NOT NULL, - `name` VARCHAR(191) NOT NULL, - `address` VARCHAR(191) NULL, - `tax_id` VARCHAR(191) NULL, - `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), - `updated_at` TIMESTAMP(0) NOT NULL, - `business_activity_id` VARCHAR(191) NOT NULL, - - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `poses` ( - `id` VARCHAR(191) NOT NULL, - `name` VARCHAR(191) NOT NULL, - `serial` VARCHAR(191) NOT NULL, - `model` VARCHAR(191) NULL, - `status` ENUM('ACTIVE', 'DISABLED') NOT NULL DEFAULT 'ACTIVE', - `pos_type` ENUM('PSP', 'MOBILE', 'WEB', 'API') NOT NULL, - `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), - `updated_at` TIMESTAMP(0) NOT NULL, - `complex_id` VARCHAR(191) NOT NULL, - `device_id` VARCHAR(191) NULL, - `provider_id` VARCHAR(191) NULL, - - UNIQUE INDEX `poses_serial_key`(`serial`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - -- CreateTable CREATE TABLE `device_brands` ( `id` VARCHAR(191) NOT NULL, @@ -129,18 +59,108 @@ CREATE TABLE `devices` ( PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +-- CreateTable +CREATE TABLE `license_charged_transactions` ( + `id` VARCHAR(191) NOT NULL, + `activation_expires_at` DATETIME(3) NOT NULL, + `tracking_code` VARCHAR(191) NOT NULL, + `purchased_count` INTEGER NOT NULL, + `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `updated_at` TIMESTAMP(0) NOT NULL, + `partner_id` VARCHAR(191) NOT NULL, + + UNIQUE INDEX `license_charged_transactions_tracking_code_key`(`tracking_code`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + -- CreateTable CREATE TABLE `licenses` ( + `id` VARCHAR(191) NOT NULL, + `accounts_limit` INTEGER NOT NULL DEFAULT 2, + `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `updated_at` TIMESTAMP(0) NOT NULL, + `charge_transaction_id` VARCHAR(191) NOT NULL, + + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `licenses_activated` ( `id` VARCHAR(191) NOT NULL, `starts_at` DATETIME(3) NOT NULL, `expires_at` DATETIME(3) NOT NULL, - `status` ENUM('ACTIVE', 'EXPIRED', 'SUSPENDED') NOT NULL, `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), `updated_at` TIMESTAMP(0) NOT NULL, - `partner_id` VARCHAR(191) NULL, - `consumer_id` VARCHAR(191) NOT NULL, + `license_id` VARCHAR(191) NOT NULL, + `business_activity_id` VARCHAR(191) NOT NULL, - UNIQUE INDEX `licenses_consumer_id_key`(`consumer_id`), + UNIQUE INDEX `licenses_activated_id_key`(`id`), + UNIQUE INDEX `licenses_activated_license_id_key`(`license_id`), + UNIQUE INDEX `licenses_activated_business_activity_id_key`(`business_activity_id`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `license_renew_charge_transaction` ( + `id` VARCHAR(191) NOT NULL, + `activation_expires_at` DATETIME(3) NOT NULL, + `tracking_code` VARCHAR(191) NOT NULL, + `purchased_count` INTEGER NOT NULL, + `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `updated_at` TIMESTAMP(0) NOT NULL, + `partner_id` VARCHAR(191) NOT NULL, + + UNIQUE INDEX `license_renew_charge_transaction_tracking_code_key`(`tracking_code`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `license_renew` ( + `id` VARCHAR(191) NOT NULL, + `expires_at` DATETIME(3) NOT NULL, + `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `updated_at` TIMESTAMP(0) NOT NULL, + `charge_transaction_id` VARCHAR(191) NOT NULL, + `activation_id` VARCHAR(191) NULL, + + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `partner_account_quota_charge_transaction` ( + `id` VARCHAR(191) NOT NULL, + `activation_expires_at` DATETIME(3) NOT NULL, + `tracking_code` VARCHAR(191) NOT NULL, + `purchased_count` INTEGER NOT NULL, + `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `updated_at` TIMESTAMP(0) NOT NULL, + `partner_id` VARCHAR(191) NOT NULL, + + UNIQUE INDEX `partner_account_quota_charge_transaction_tracking_code_key`(`tracking_code`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `partner_account_quota_credit` ( + `id` VARCHAR(191) NOT NULL, + `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `updated_at` TIMESTAMP(0) NOT NULL, + `charge_transaction_id` VARCHAR(191) NULL, + + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `license_account_allocation` ( + `id` VARCHAR(191) NOT NULL, + `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `updated_at` TIMESTAMP(0) NOT NULL, + `license_activation_id` VARCHAR(191) NULL, + `account_id` VARCHAR(191) NULL, + `credit_id` VARCHAR(191) NULL, + + UNIQUE INDEX `license_account_allocation_account_id_key`(`account_id`), + UNIQUE INDEX `license_account_allocation_credit_id_key`(`credit_id`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; @@ -162,8 +182,9 @@ CREATE TABLE `partners` ( `id` VARCHAR(191) NOT NULL, `name` VARCHAR(191) NOT NULL, `code` VARCHAR(191) NOT NULL, - `license_quota` INTEGER NULL DEFAULT 0, `status` ENUM('ACTIVE', 'SUSPENDED') NOT NULL DEFAULT 'ACTIVE', + `fiscal_switch_type` ENUM('NAMA', 'SUN') NOT NULL, + `logo_url` VARCHAR(191) NULL, `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), `updated_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), @@ -240,75 +261,145 @@ CREATE TABLE `providers` ( ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable -CREATE TABLE `trigger_logs` ( - `id` INTEGER NOT NULL AUTO_INCREMENT, - `message` TEXT NOT NULL, - `createdAt` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), - `name` TEXT NOT NULL, - - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `user_devices` ( - `account_id` VARCHAR(255) NULL, +CREATE TABLE `consumer_devices` ( + `uuid` VARCHAR(255) NOT NULL, `app_version` VARCHAR(20) NOT NULL, `build_number` VARCHAR(20) NOT NULL, - `uuid` VARCHAR(255) NOT NULL, `platform` VARCHAR(100) NOT NULL, `brand` VARCHAR(100) NOT NULL, `model` VARCHAR(100) NOT NULL, `device` VARCHAR(100) NOT NULL, + `publisher` ENUM('DIRECT', 'CAFE_BAZAR', 'MAYKET') NOT NULL, `os_version` VARCHAR(20) NOT NULL, `sdk_version` VARCHAR(20) NOT NULL, `release_number` VARCHAR(20) NOT NULL, + `user_agent` VARCHAR(100) NULL, `browser_name` VARCHAR(100) NULL, `fcm_token` VARCHAR(100) NULL, + `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `updated_at` TIMESTAMP(0) NOT NULL, + `consumer_id` VARCHAR(191) NOT NULL, - UNIQUE INDEX `user_devices_uuid_key`(`uuid`), + UNIQUE INDEX `consumer_devices_uuid_key`(`uuid`), PRIMARY KEY (`uuid`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable -CREATE TABLE `customers` ( +CREATE TABLE `application_released_info` ( `id` VARCHAR(191) NOT NULL, - `is_favorite` BOOLEAN NULL DEFAULT false, + `version` VARCHAR(191) NOT NULL, + `build_number` VARCHAR(191) NOT NULL, + `is_minimum_supported` BOOLEAN NOT NULL DEFAULT false, + `release_type` ENUM('STABLE', 'BETA', 'ALPHA') NOT NULL, + `platform` ENUM('ANDROID', 'IOS') NOT NULL, + `notes` JSON NULL, + `release_date` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), `updated_at` TIMESTAMP(0) NOT NULL, - `deleted_at` TIMESTAMP(0) NULL, - `type` ENUM('INDIVIDUAL', 'LEGAL', 'UNKNOWN') NOT NULL, - `unknown_customer` JSON NULL, PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable -CREATE TABLE `customer_individuals` ( - `first_name` VARCHAR(255) NOT NULL, - `last_name` VARCHAR(255) NOT NULL, - `national_id` CHAR(10) NOT NULL, - `postal_code` CHAR(10) NOT NULL, - `economic_code` CHAR(10) NULL, - `customer_id` VARCHAR(191) NOT NULL, - `complex_id` VARCHAR(191) NOT NULL, +CREATE TABLE `consumer_accounts` ( + `id` VARCHAR(191) NOT NULL, + `role` ENUM('OWNER', 'MANAGER', 'OPERATOR') NOT NULL, + `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `updated_at` TIMESTAMP(0) NOT NULL, + `consumer_id` VARCHAR(191) NOT NULL, + `account_id` VARCHAR(191) NOT NULL, - INDEX `customer_individuals_complex_id_idx`(`complex_id`), - UNIQUE INDEX `customer_individuals_complex_id_national_id_key`(`complex_id`, `national_id`), - PRIMARY KEY (`customer_id`) + UNIQUE INDEX `consumer_accounts_account_id_key`(`account_id`), + PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable -CREATE TABLE `customer_legal` ( - `company_name` VARCHAR(255) NOT NULL, - `economic_code` CHAR(10) NOT NULL, - `registration_number` CHAR(20) NOT NULL, - `postal_code` CHAR(10) NOT NULL, - `customer_id` VARCHAR(191) NOT NULL, - `complex_id` VARCHAR(191) NOT NULL, +CREATE TABLE `consumers` ( + `id` VARCHAR(191) NOT NULL, + `type` ENUM('INDIVIDUAL', 'LEGAL') NOT NULL, + `status` ENUM('ACTIVE', 'SUSPENDED') NOT NULL DEFAULT 'ACTIVE', + `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `updated_at` TIMESTAMP(0) NOT NULL, - INDEX `customer_legal_complex_id_idx`(`complex_id`), - UNIQUE INDEX `customer_legal_complex_id_registration_number_key`(`complex_id`, `registration_number`), - PRIMARY KEY (`customer_id`) + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `consumers_individual` ( + `first_name` VARCHAR(191) NOT NULL, + `last_name` VARCHAR(191) NOT NULL, + `mobile_number` VARCHAR(191) NOT NULL, + `national_code` VARCHAR(191) NOT NULL, + `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `updated_at` TIMESTAMP(0) NOT NULL, + `partner_id` VARCHAR(191) NOT NULL, + `consumer_id` VARCHAR(191) NOT NULL, + + UNIQUE INDEX `consumers_individual_mobile_number_consumer_id_key`(`mobile_number`, `consumer_id`), + UNIQUE INDEX `consumers_individual_partner_id_national_code_key`(`partner_id`, `national_code`), + PRIMARY KEY (`consumer_id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `consumers_legal` ( + `name` VARCHAR(191) NOT NULL, + `registration_code` VARCHAR(191) NOT NULL, + `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `updated_at` TIMESTAMP(0) NOT NULL, + `partner_id` VARCHAR(191) NOT NULL, + `consumer_id` VARCHAR(191) NOT NULL, + + UNIQUE INDEX `consumers_legal_partner_id_registration_code_key`(`partner_id`, `registration_code`), + PRIMARY KEY (`consumer_id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `business_activities` ( + `id` VARCHAR(191) NOT NULL, + `economic_code` VARCHAR(191) NOT NULL, + `name` VARCHAR(191) NOT NULL, + `fiscal_id` VARCHAR(191) NOT NULL, + `partner_token` VARCHAR(191) NOT NULL, + `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `updated_at` TIMESTAMP(0) NOT NULL, + `guild_id` VARCHAR(191) NOT NULL, + `consumer_id` VARCHAR(191) NOT NULL, + + UNIQUE INDEX `business_activities_economic_code_consumer_id_key`(`economic_code`, `consumer_id`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `complexes` ( + `id` VARCHAR(191) NOT NULL, + `name` VARCHAR(191) NOT NULL, + `branch_code` VARCHAR(191) NOT NULL, + `address` VARCHAR(191) NULL, + `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `updated_at` TIMESTAMP(0) NOT NULL, + `business_activity_id` VARCHAR(191) NOT NULL, + + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `poses` ( + `id` VARCHAR(191) NOT NULL, + `name` VARCHAR(191) NOT NULL, + `model` VARCHAR(191) NULL, + `serial_number` VARCHAR(191) NULL, + `status` ENUM('ACTIVE', 'DISABLED') NOT NULL DEFAULT 'ACTIVE', + `pos_type` ENUM('PSP', 'MOBILE', 'WEB', 'API') NOT NULL, + `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `updated_at` TIMESTAMP(0) NOT NULL, + `complex_id` VARCHAR(191) NOT NULL, + `device_id` VARCHAR(191) NULL, + `provider_id` VARCHAR(191) NULL, + `account_id` VARCHAR(191) NOT NULL, + + UNIQUE INDEX `poses_serial_number_key`(`serial_number`), + UNIQUE INDEX `poses_account_id_key`(`account_id`), + PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable @@ -316,18 +407,19 @@ CREATE TABLE `goods` ( `id` VARCHAR(191) NOT NULL, `name` VARCHAR(255) NOT NULL, `is_default_guild_good` BOOLEAN NOT NULL DEFAULT false, - `sku` VARCHAR(100) NOT NULL, - `unit_type` ENUM('COUNT', 'GRAM', 'KILOGRAM', 'MILLILITER', 'LITER', 'METER', 'HOUR') NOT NULL, `pricing_model` ENUM('STANDARD', 'GOLD') NOT NULL, `description` TEXT NULL, `local_sku` VARCHAR(100) NULL, `barcode` VARCHAR(100) NULL, `base_sale_price` DECIMAL(15, 0) NULL DEFAULT 0.00, + `image_url` VARCHAR(255) NULL, `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), `updated_at` TIMESTAMP(0) NOT NULL, `deleted_at` TIMESTAMP(0) NULL, - `complex_id` VARCHAR(191) NULL, + `sku_id` VARCHAR(191) NOT NULL, + `measure_unit_id` VARCHAR(191) NOT NULL, `category_id` VARCHAR(191) NULL, + `business_activity_id` VARCHAR(191) NULL, UNIQUE INDEX `goods_local_sku_key`(`local_sku`), UNIQUE INDEX `goods_barcode_key`(`barcode`), @@ -351,6 +443,87 @@ CREATE TABLE `good_categories` ( PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +-- CreateTable +CREATE TABLE `measure_units` ( + `id` VARCHAR(191) NOT NULL, + `code` VARCHAR(191) NOT NULL, + `name` VARCHAR(191) NOT NULL, + `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `updated_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + + UNIQUE INDEX `measure_units_code_key`(`code`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `stock_keeping_units` ( + `id` VARCHAR(191) NOT NULL, + `code` VARCHAR(191) NOT NULL, + `name` VARCHAR(191) NOT NULL, + `VAT` DECIMAL(5, 2) NOT NULL, + `type` ENUM('GOLD') NOT NULL DEFAULT 'GOLD', + `is_public` BOOLEAN NOT NULL DEFAULT true, + `is_domestic` BOOLEAN NOT NULL DEFAULT false, + `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `updated_at` TIMESTAMP(0) NOT NULL, + + UNIQUE INDEX `stock_keeping_units_code_key`(`code`), + INDEX `stock_keeping_units_code_idx`(`code`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `trigger_logs` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `message` TEXT NOT NULL, + `createdAt` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `name` TEXT NOT NULL, + + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `customers` ( + `id` VARCHAR(191) NOT NULL, + `is_favorite` BOOLEAN NULL DEFAULT false, + `type` ENUM('INDIVIDUAL', 'LEGAL', 'UNKNOWN') NOT NULL, + `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `updated_at` TIMESTAMP(0) NOT NULL, + `deleted_at` TIMESTAMP(0) NULL, + + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `customer_individuals` ( + `first_name` VARCHAR(255) NOT NULL, + `last_name` VARCHAR(255) NOT NULL, + `national_id` CHAR(10) NOT NULL, + `mobile_number` CHAR(15) NOT NULL, + `postal_code` CHAR(10) NOT NULL, + `economic_code` CHAR(10) NULL, + `customer_id` VARCHAR(191) NOT NULL, + `business_activity_id` VARCHAR(191) NOT NULL, + + INDEX `customer_individuals_business_activity_id_idx`(`business_activity_id`), + UNIQUE INDEX `customer_individuals_business_activity_id_national_id_key`(`business_activity_id`, `national_id`), + PRIMARY KEY (`customer_id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `customer_legal` ( + `name` VARCHAR(255) NOT NULL, + `economic_code` CHAR(10) NOT NULL, + `registration_number` CHAR(20) NULL, + `postal_code` CHAR(10) NOT NULL, + `customer_id` VARCHAR(191) NOT NULL, + `business_activity_id` VARCHAR(191) NOT NULL, + + INDEX `customer_legal_business_activity_id_idx`(`business_activity_id`), + UNIQUE INDEX `customer_legal_business_activity_id_economic_code_key`(`business_activity_id`, `economic_code`), + PRIMARY KEY (`customer_id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + -- CreateTable CREATE TABLE `guilds` ( `id` VARCHAR(191) NOT NULL, @@ -367,16 +540,18 @@ CREATE TABLE `sales_invoices` ( `id` VARCHAR(191) NOT NULL, `code` VARCHAR(100) NOT NULL, `total_amount` DECIMAL(15, 2) NOT NULL, + `invoice_number` INTEGER NOT NULL, + `invoice_date` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), `notes` TEXT NULL, `unknown_customer` JSON NULL, - `invoice_date` TIMESTAMP(0) NULL DEFAULT CURRENT_TIMESTAMP(0), `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), `updated_at` TIMESTAMP(0) NOT NULL, `customer_id` VARCHAR(191) NULL, - `account_id` VARCHAR(191) NOT NULL, + `consumer_account_id` VARCHAR(191) NOT NULL, `pos_id` VARCHAR(191) NOT NULL, UNIQUE INDEX `sales_invoices_code_key`(`code`), + UNIQUE INDEX `sales_invoices_invoice_number_pos_id_key`(`invoice_number`, `pos_id`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; @@ -384,34 +559,90 @@ CREATE TABLE `sales_invoices` ( CREATE TABLE `sales_invoice_items` ( `id` VARCHAR(191) NOT NULL, `quantity` DECIMAL(10, 0) NOT NULL, - `unit_type` ENUM('COUNT', 'GRAM', 'KILOGRAM', 'MILLILITER', 'LITER', 'METER', 'HOUR') NOT NULL, + `measure_unit_text` VARCHAR(50) NOT NULL, + `measure_unit_code` VARCHAR(50) NOT NULL, + `sku_code` VARCHAR(50) NOT NULL, + `sku_vat` DECIMAL(15, 2) NOT NULL DEFAULT 0.00, `unit_price` DECIMAL(15, 2) NOT NULL DEFAULT 0.00, `total_amount` DECIMAL(15, 2) NOT NULL DEFAULT 0.00, `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), `discount` DECIMAL(15, 2) NOT NULL DEFAULT 0.00, `notes` TEXT NULL, + `payload` JSON NULL, + `good_snapshot` JSON NULL, `invoice_id` VARCHAR(191) NOT NULL, `good_id` VARCHAR(191) NULL, `service_id` VARCHAR(191) NULL, - `payload` JSON NULL, INDEX `sales_invoice_items_invoice_id_good_id_idx`(`invoice_id`, `good_id`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +-- CreateTable +CREATE TABLE `sale_invoice_fiscals` ( + `id` VARCHAR(191) NOT NULL, + `retry_count` INTEGER NOT NULL DEFAULT 0, + `last_attempt_at` TIMESTAMP(0) NULL, + `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `updated_at` TIMESTAMP(0) NOT NULL, + `invoice_id` VARCHAR(191) NOT NULL, + + UNIQUE INDEX `sale_invoice_fiscals_invoice_id_key`(`invoice_id`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `sale_invoice_fiscal_attempts` ( + `id` VARCHAR(191) NOT NULL, + `attempt_no` INTEGER NOT NULL, + `status` ENUM('SUCCESS', 'FAILURE', 'NOT_SEND', 'QUEUED') NOT NULL, + `tax_id` VARCHAR(191) NULL, + `type` ENUM('MAIN', 'UPDATE', 'REVOKE', 'REMOVE') NOT NULL, + `request_payload` JSON NULL, + `response_payload` JSON NULL, + `error_message` TEXT NULL, + `sent_at` TIMESTAMP(0) NULL, + `received_at` TIMESTAMP(0) NULL, + `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `fiscal_id` VARCHAR(191) NOT NULL, + + UNIQUE INDEX `sale_invoice_fiscal_attempts_tax_id_key`(`tax_id`), + INDEX `sale_invoice_fiscal_attempts_status_idx`(`status`), + INDEX `sale_invoice_fiscal_attempts_tax_id_idx`(`tax_id`), + UNIQUE INDEX `sale_invoice_fiscal_attempts_fiscal_id_attempt_no_key`(`fiscal_id`, `attempt_no`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + -- CreateTable CREATE TABLE `sales_invoice_payments` ( `id` VARCHAR(191) NOT NULL, - `invoice_id` VARCHAR(191) NOT NULL, `amount` DECIMAL(15, 2) NOT NULL, `payment_method` ENUM('TERMINAL', 'CASH', 'SET_OFF', 'CARD', 'BANK', 'CHECK', 'OTHER') NOT NULL, - `paid_at` DATETIME(3) NOT NULL, - `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + `paid_at` TIMESTAMP(0) NOT NULL, + `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `invoice_id` VARCHAR(191) NOT NULL, INDEX `sales_invoice_payments_invoice_id_idx`(`invoice_id`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +-- CreateTable +CREATE TABLE `sales_invoice_payment_terminal_info` ( + `id` VARCHAR(191) NOT NULL, + `terminal_id` VARCHAR(191) NOT NULL, + `stan` VARCHAR(191) NOT NULL, + `rrn` VARCHAR(191) NOT NULL, + `transaction_date_time` DATETIME(3) NOT NULL, + `customer_card_no` VARCHAR(191) NULL, + `description` VARCHAR(191) NULL, + `created_at` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), + `payment_id` VARCHAR(191) NOT NULL, + + UNIQUE INDEX `sales_invoice_payment_terminal_info_payment_id_key`(`payment_id`), + UNIQUE INDEX `sales_invoice_payment_terminal_info_terminal_id_stan_rrn_pay_key`(`terminal_id`, `stan`, `rrn`, `payment_id`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + -- CreateTable CREATE TABLE `services` ( `id` VARCHAR(191) NOT NULL, @@ -456,12 +687,99 @@ ALTER TABLE `admin_accounts` ADD CONSTRAINT `admin_accounts_admin_id_fkey` FOREI -- AddForeignKey ALTER TABLE `admin_accounts` ADD CONSTRAINT `admin_accounts_account_id_fkey` FOREIGN KEY (`account_id`) REFERENCES `accounts`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; +-- AddForeignKey +ALTER TABLE `devices` ADD CONSTRAINT `devices_brand_id_fkey` FOREIGN KEY (`brand_id`) REFERENCES `device_brands`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `license_charged_transactions` ADD CONSTRAINT `license_charged_transactions_partner_id_fkey` FOREIGN KEY (`partner_id`) REFERENCES `partners`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `licenses` ADD CONSTRAINT `licenses_charge_transaction_id_fkey` FOREIGN KEY (`charge_transaction_id`) REFERENCES `license_charged_transactions`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `licenses_activated` ADD CONSTRAINT `licenses_activated_license_id_fkey` FOREIGN KEY (`license_id`) REFERENCES `licenses`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `licenses_activated` ADD CONSTRAINT `licenses_activated_business_activity_id_fkey` FOREIGN KEY (`business_activity_id`) REFERENCES `business_activities`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `license_renew_charge_transaction` ADD CONSTRAINT `license_renew_charge_transaction_partner_id_fkey` FOREIGN KEY (`partner_id`) REFERENCES `partners`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `license_renew` ADD CONSTRAINT `license_renew_charge_transaction_id_fkey` FOREIGN KEY (`charge_transaction_id`) REFERENCES `license_renew_charge_transaction`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `license_renew` ADD CONSTRAINT `license_renew_activation_id_fkey` FOREIGN KEY (`activation_id`) REFERENCES `licenses_activated`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `partner_account_quota_charge_transaction` ADD CONSTRAINT `partner_account_quota_charge_transaction_partner_id_fkey` FOREIGN KEY (`partner_id`) REFERENCES `partners`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `partner_account_quota_credit` ADD CONSTRAINT `partner_account_quota_credit_charge_transaction_id_fkey` FOREIGN KEY (`charge_transaction_id`) REFERENCES `partner_account_quota_charge_transaction`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `license_account_allocation` ADD CONSTRAINT `license_account_allocation_license_activation_id_fkey` FOREIGN KEY (`license_activation_id`) REFERENCES `licenses_activated`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `license_account_allocation` ADD CONSTRAINT `license_account_allocation_account_id_fkey` FOREIGN KEY (`account_id`) REFERENCES `consumer_accounts`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `license_account_allocation` ADD CONSTRAINT `license_account_allocation_credit_id_fkey` FOREIGN KEY (`credit_id`) REFERENCES `partner_account_quota_credit`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `partner_accounts` ADD CONSTRAINT `partner_accounts_partner_id_fkey` FOREIGN KEY (`partner_id`) REFERENCES `partners`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `partner_accounts` ADD CONSTRAINT `partner_accounts_account_id_fkey` FOREIGN KEY (`account_id`) REFERENCES `accounts`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `permission_consumers` ADD CONSTRAINT `permission_consumers_consumer_account_id_fkey` FOREIGN KEY (`consumer_account_id`) REFERENCES `consumer_accounts`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `permission_poses` ADD CONSTRAINT `permission_poses_pos_id_fkey` FOREIGN KEY (`pos_id`) REFERENCES `poses`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `permission_poses` ADD CONSTRAINT `permission_poses_permission_id_fkey` FOREIGN KEY (`permission_id`) REFERENCES `permission_consumers`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `permission_complexes` ADD CONSTRAINT `permission_complexes_complex_id_fkey` FOREIGN KEY (`complex_id`) REFERENCES `complexes`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `permission_complexes` ADD CONSTRAINT `permission_complexes_permission_id_fkey` FOREIGN KEY (`permission_id`) REFERENCES `permission_consumers`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `permission_business_activities` ADD CONSTRAINT `permission_business_activities_business_id_fkey` FOREIGN KEY (`business_id`) REFERENCES `business_activities`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `permission_business_activities` ADD CONSTRAINT `permission_business_activities_permission_id_fkey` FOREIGN KEY (`permission_id`) REFERENCES `permission_consumers`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `provider_accounts` ADD CONSTRAINT `provider_accounts_provider_id_fkey` FOREIGN KEY (`provider_id`) REFERENCES `providers`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `provider_accounts` ADD CONSTRAINT `provider_accounts_account_id_fkey` FOREIGN KEY (`account_id`) REFERENCES `accounts`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `consumer_devices` ADD CONSTRAINT `consumer_devices_consumer_id_fkey` FOREIGN KEY (`consumer_id`) REFERENCES `consumers`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; + -- AddForeignKey ALTER TABLE `consumer_accounts` ADD CONSTRAINT `consumer_accounts_consumer_id_fkey` FOREIGN KEY (`consumer_id`) REFERENCES `consumers`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `consumer_accounts` ADD CONSTRAINT `consumer_accounts_account_id_fkey` FOREIGN KEY (`account_id`) REFERENCES `accounts`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; +-- AddForeignKey +ALTER TABLE `consumers_individual` ADD CONSTRAINT `consumers_individual_partner_id_fkey` FOREIGN KEY (`partner_id`) REFERENCES `partners`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `consumers_individual` ADD CONSTRAINT `consumers_individual_consumer_id_fkey` FOREIGN KEY (`consumer_id`) REFERENCES `consumers`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `consumers_legal` ADD CONSTRAINT `consumers_legal_partner_id_fkey` FOREIGN KEY (`partner_id`) REFERENCES `partners`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `consumers_legal` ADD CONSTRAINT `consumers_legal_consumer_id_fkey` FOREIGN KEY (`consumer_id`) REFERENCES `consumers`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; + -- AddForeignKey ALTER TABLE `business_activities` ADD CONSTRAINT `business_activities_guild_id_fkey` FOREIGN KEY (`guild_id`) REFERENCES `guilds`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; @@ -481,64 +799,19 @@ ALTER TABLE `poses` ADD CONSTRAINT `poses_device_id_fkey` FOREIGN KEY (`device_i ALTER TABLE `poses` ADD CONSTRAINT `poses_provider_id_fkey` FOREIGN KEY (`provider_id`) REFERENCES `providers`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; -- AddForeignKey -ALTER TABLE `devices` ADD CONSTRAINT `devices_brand_id_fkey` FOREIGN KEY (`brand_id`) REFERENCES `device_brands`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; +ALTER TABLE `poses` ADD CONSTRAINT `poses_account_id_fkey` FOREIGN KEY (`account_id`) REFERENCES `consumer_accounts`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey -ALTER TABLE `licenses` ADD CONSTRAINT `licenses_partner_id_fkey` FOREIGN KEY (`partner_id`) REFERENCES `partners`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; +ALTER TABLE `goods` ADD CONSTRAINT `goods_sku_id_fkey` FOREIGN KEY (`sku_id`) REFERENCES `stock_keeping_units`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey -ALTER TABLE `licenses` ADD CONSTRAINT `licenses_consumer_id_fkey` FOREIGN KEY (`consumer_id`) REFERENCES `consumers`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `partner_accounts` ADD CONSTRAINT `partner_accounts_partner_id_fkey` FOREIGN KEY (`partner_id`) REFERENCES `partners`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `partner_accounts` ADD CONSTRAINT `partner_accounts_account_id_fkey` FOREIGN KEY (`account_id`) REFERENCES `accounts`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `permission_consumers` ADD CONSTRAINT `permission_consumers_consumer_account_id_fkey` FOREIGN KEY (`consumer_account_id`) REFERENCES `consumer_accounts`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `permission_poses` ADD CONSTRAINT `permission_poses_pos_id_fkey` FOREIGN KEY (`pos_id`) REFERENCES `poses`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `permission_poses` ADD CONSTRAINT `permission_poses_permission_id_fkey` FOREIGN KEY (`permission_id`) REFERENCES `permission_consumers`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `permission_complexes` ADD CONSTRAINT `permission_complexes_complex_id_fkey` FOREIGN KEY (`complex_id`) REFERENCES `complexes`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `permission_complexes` ADD CONSTRAINT `permission_complexes_permission_id_fkey` FOREIGN KEY (`permission_id`) REFERENCES `permission_consumers`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `permission_business_activities` ADD CONSTRAINT `permission_business_activities_business_id_fkey` FOREIGN KEY (`business_id`) REFERENCES `business_activities`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `permission_business_activities` ADD CONSTRAINT `permission_business_activities_permission_id_fkey` FOREIGN KEY (`permission_id`) REFERENCES `permission_consumers`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `provider_accounts` ADD CONSTRAINT `provider_accounts_provider_id_fkey` FOREIGN KEY (`provider_id`) REFERENCES `providers`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `provider_accounts` ADD CONSTRAINT `provider_accounts_account_id_fkey` FOREIGN KEY (`account_id`) REFERENCES `accounts`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `customer_individuals` ADD CONSTRAINT `customer_individuals_customer_id_fkey` FOREIGN KEY (`customer_id`) REFERENCES `customers`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `customer_individuals` ADD CONSTRAINT `customer_individuals_complex_id_fkey` FOREIGN KEY (`complex_id`) REFERENCES `complexes`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `customer_legal` ADD CONSTRAINT `customer_legal_customer_id_fkey` FOREIGN KEY (`customer_id`) REFERENCES `customers`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `customer_legal` ADD CONSTRAINT `customer_legal_complex_id_fkey` FOREIGN KEY (`complex_id`) REFERENCES `complexes`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; +ALTER TABLE `goods` ADD CONSTRAINT `goods_measure_unit_id_fkey` FOREIGN KEY (`measure_unit_id`) REFERENCES `measure_units`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `goods` ADD CONSTRAINT `goods_category_id_fkey` FOREIGN KEY (`category_id`) REFERENCES `good_categories`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; -- AddForeignKey -ALTER TABLE `goods` ADD CONSTRAINT `goods_complex_id_fkey` FOREIGN KEY (`complex_id`) REFERENCES `complexes`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; +ALTER TABLE `goods` ADD CONSTRAINT `goods_business_activity_id_fkey` FOREIGN KEY (`business_activity_id`) REFERENCES `business_activities`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `good_categories` ADD CONSTRAINT `good_categories_guild_id_fkey` FOREIGN KEY (`guild_id`) REFERENCES `guilds`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; @@ -546,14 +819,26 @@ ALTER TABLE `good_categories` ADD CONSTRAINT `good_categories_guild_id_fkey` FOR -- AddForeignKey ALTER TABLE `good_categories` ADD CONSTRAINT `good_categories_complex_id_fkey` FOREIGN KEY (`complex_id`) REFERENCES `complexes`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; +-- AddForeignKey +ALTER TABLE `customer_individuals` ADD CONSTRAINT `customer_individuals_customer_id_fkey` FOREIGN KEY (`customer_id`) REFERENCES `customers`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `customer_individuals` ADD CONSTRAINT `customer_individuals_business_activity_id_fkey` FOREIGN KEY (`business_activity_id`) REFERENCES `business_activities`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `customer_legal` ADD CONSTRAINT `customer_legal_customer_id_fkey` FOREIGN KEY (`customer_id`) REFERENCES `customers`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `customer_legal` ADD CONSTRAINT `customer_legal_business_activity_id_fkey` FOREIGN KEY (`business_activity_id`) REFERENCES `business_activities`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; + -- AddForeignKey ALTER TABLE `sales_invoices` ADD CONSTRAINT `sales_invoices_customer_id_fkey` FOREIGN KEY (`customer_id`) REFERENCES `customers`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; -- AddForeignKey -ALTER TABLE `sales_invoices` ADD CONSTRAINT `sales_invoices_pos_id_fkey` FOREIGN KEY (`pos_id`) REFERENCES `poses`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; +ALTER TABLE `sales_invoices` ADD CONSTRAINT `sales_invoices_consumer_account_id_fkey` FOREIGN KEY (`consumer_account_id`) REFERENCES `consumer_accounts`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey -ALTER TABLE `sales_invoices` ADD CONSTRAINT `sales_invoices_account_id_fkey` FOREIGN KEY (`account_id`) REFERENCES `consumer_accounts`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; +ALTER TABLE `sales_invoices` ADD CONSTRAINT `sales_invoices_pos_id_fkey` FOREIGN KEY (`pos_id`) REFERENCES `poses`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `sales_invoice_items` ADD CONSTRAINT `sales_invoice_items_invoice_id_fkey` FOREIGN KEY (`invoice_id`) REFERENCES `sales_invoices`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; @@ -564,8 +849,17 @@ ALTER TABLE `sales_invoice_items` ADD CONSTRAINT `sales_invoice_items_good_id_fk -- AddForeignKey ALTER TABLE `sales_invoice_items` ADD CONSTRAINT `sales_invoice_items_service_id_fkey` FOREIGN KEY (`service_id`) REFERENCES `services`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; +-- AddForeignKey +ALTER TABLE `sale_invoice_fiscals` ADD CONSTRAINT `sale_invoice_fiscals_invoice_id_fkey` FOREIGN KEY (`invoice_id`) REFERENCES `sales_invoices`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `sale_invoice_fiscal_attempts` ADD CONSTRAINT `sale_invoice_fiscal_attempts_fiscal_id_fkey` FOREIGN KEY (`fiscal_id`) REFERENCES `sale_invoice_fiscals`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; + -- AddForeignKey ALTER TABLE `sales_invoice_payments` ADD CONSTRAINT `sales_invoice_payments_invoice_id_fkey` FOREIGN KEY (`invoice_id`) REFERENCES `sales_invoices`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; +-- AddForeignKey +ALTER TABLE `sales_invoice_payment_terminal_info` ADD CONSTRAINT `sales_invoice_payment_terminal_info_payment_id_fkey` FOREIGN KEY (`payment_id`) REFERENCES `sales_invoice_payments`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; + -- AddForeignKey ALTER TABLE `services` ADD CONSTRAINT `services_category_id_fkey` FOREIGN KEY (`category_id`) REFERENCES `service_categories`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; diff --git a/prisma/schema/admin/admin.prisma b/prisma/schema/admin/admin.prisma index 987696e..a40835b 100644 --- a/prisma/schema/admin/admin.prisma +++ b/prisma/schema/admin/admin.prisma @@ -8,7 +8,7 @@ model AdminAccount { admin Admin @relation(fields: [admin_id], references: [id]) account_id String @unique - account Account @relation(fields: [account_id], references: [id]) + account Account @relation(fields: [account_id], references: [id], onDelete: Cascade) @@map("admin_accounts") } diff --git a/prisma/schema/admin/auth.prisma b/prisma/schema/admin/auth.prisma index 9a563ed..1514f82 100644 --- a/prisma/schema/admin/auth.prisma +++ b/prisma/schema/admin/auth.prisma @@ -10,6 +10,18 @@ model Account { partner_account PartnerAccount? consumer_account ConsumerAccount? + // admin_account_id String? @unique + // admin_account AdminAccount? @relation(fields: [admin_account_id], references: [id], onDelete: Cascade) + + // provider_account_id String? @unique + // provider_account ProviderAccount? @relation(fields: [provider_account_id], references: [id], onDelete: Cascade) + + // partner_account_id String? @unique + // partner_account PartnerAccount? @relation(fields: [partner_account_id], references: [id], onDelete: Cascade) + + // consumer_account_id String? @unique + // consumer_account ConsumerAccount? @relation(fields: [consumer_account_id], references: [id], onDelete: Cascade) + // tokens Token[] // refresh_tokens RefreshToken[] diff --git a/prisma/schema/admin/partners.prisma b/prisma/schema/admin/partners.prisma index 08f839c..1187490 100644 --- a/prisma/schema/admin/partners.prisma +++ b/prisma/schema/admin/partners.prisma @@ -9,7 +9,7 @@ model PartnerAccount { partner Partner @relation(fields: [partner_id], references: [id]) account_id String @unique - account Account @relation(fields: [account_id], references: [id]) + account Account @relation(fields: [account_id], references: [id], onDelete: Cascade) @@map("partner_accounts") } diff --git a/prisma/schema/admin/providers.prisma b/prisma/schema/admin/providers.prisma index 281d811..2a2cf9e 100644 --- a/prisma/schema/admin/providers.prisma +++ b/prisma/schema/admin/providers.prisma @@ -9,7 +9,7 @@ model ProviderAccount { provider Provider @relation(fields: [provider_id], references: [id]) account_id String @unique - account Account @relation(fields: [account_id], references: [id]) + account Account @relation(fields: [account_id], references: [id], onDelete: Cascade) @@map("provider_accounts") } diff --git a/prisma/schema/shared/good.prisma b/prisma/schema/good_service/good.prisma similarity index 89% rename from prisma/schema/shared/good.prisma rename to prisma/schema/good_service/good.prisma index d250d75..8ec59b1 100644 --- a/prisma/schema/shared/good.prisma +++ b/prisma/schema/good_service/good.prisma @@ -2,8 +2,6 @@ model Good { id String @id @default(ulid()) name String @db.VarChar(255) is_default_guild_good Boolean @default(false) - sku String @db.VarChar(100) - unit_type UnitType pricing_model GoodPricingModel description String? @db.Text local_sku String? @unique() @db.VarChar(100) @@ -15,6 +13,12 @@ model Good { updated_at DateTime @updatedAt @db.Timestamp(0) deleted_at DateTime? @db.Timestamp(0) + sku_id String + sku StockKeepingUnits @relation(fields: [sku_id], references: [id]) + + measure_unit_id String + measure_unit MeasureUnits @relation(fields: [measure_unit_id], references: [id]) + category_id String? category GoodCategory? @relation(fields: [category_id], references: [id]) diff --git a/prisma/schema/good_service/measureUnits.prisma b/prisma/schema/good_service/measureUnits.prisma new file mode 100644 index 0000000..50a58b7 --- /dev/null +++ b/prisma/schema/good_service/measureUnits.prisma @@ -0,0 +1,12 @@ +model MeasureUnits { + id String @id @default(ulid()) + code String @unique + name String + + created_at DateTime @default(now()) @db.Timestamp(0) + updated_at DateTime @default(now()) @updatedAt @db.Timestamp(0) + + goods Good[] + + @@map("measure_units") +} diff --git a/prisma/schema/good_service/sku.prisma b/prisma/schema/good_service/sku.prisma new file mode 100644 index 0000000..004ae8a --- /dev/null +++ b/prisma/schema/good_service/sku.prisma @@ -0,0 +1,17 @@ +model StockKeepingUnits { + id String @id @default(ulid()) + code String @unique + name String + VAT Decimal @db.Decimal(5, 2) + type SKUGuildType @default(GOLD) + is_public Boolean @default(true) + is_domestic Boolean @default(false) + + created_at DateTime @default(now()) @db.Timestamp(0) + updated_at DateTime @updatedAt() @db.Timestamp(0) + + goods Good[] + + @@index([code]) + @@map("stock_keeping_units") +} diff --git a/prisma/schema/shared/customers.prisma b/prisma/schema/shared/customers.prisma index a830757..4d4cf23 100644 --- a/prisma/schema/shared/customers.prisma +++ b/prisma/schema/shared/customers.prisma @@ -36,7 +36,7 @@ model CustomerIndividual { } model CustomerLegal { - company_name String @db.VarChar(255) + name String @db.VarChar(255) economic_code String @db.Char(10) registration_number String? @db.Char(20) postal_code String @db.Char(10) diff --git a/prisma/schema/shared/enum.prisma b/prisma/schema/shared/enum.prisma index 86c51ae..4d1c8ea 100644 --- a/prisma/schema/shared/enum.prisma +++ b/prisma/schema/shared/enum.prisma @@ -165,4 +165,21 @@ enum FiscalResponseStatus { SUCCESS FAILURE NOT_SEND + QUEUED +} + +enum FiscalRequestType { + MAIN + UPDATE + REVOKE + REMOVE +} + +enum FiscalInvoiceCustomerType { + Unknown + Known +} + +enum SKUGuildType { + GOLD } diff --git a/prisma/schema/shared/sales.prisma b/prisma/schema/shared/sales.prisma index a60137f..ca8331e 100644 --- a/prisma/schema/shared/sales.prisma +++ b/prisma/schema/shared/sales.prisma @@ -30,14 +30,17 @@ model SalesInvoice { } model SalesInvoiceItem { - id String @id @default(ulid()) - quantity Decimal @db.Decimal(10, 0) - unit_type UnitType - unit_price Decimal @default(0.00) @db.Decimal(15, 2) - total_amount Decimal @default(0.00) @db.Decimal(15, 2) - created_at DateTime @default(now()) @db.Timestamp(0) - discount Decimal @default(0.00) @db.Decimal(15, 2) - notes String? @db.Text + id String @id @default(ulid()) + quantity Decimal @db.Decimal(10, 0) + measure_unit_text String @db.VarChar(50) + measure_unit_code String @db.VarChar(50) + sku_code String @db.VarChar(50) + sku_vat Decimal @default(0.00) @db.Decimal(15, 2) + unit_price Decimal @default(0.00) @db.Decimal(15, 2) + total_amount Decimal @default(0.00) @db.Decimal(15, 2) + created_at DateTime @default(now()) @db.Timestamp(0) + discount Decimal @default(0.00) @db.Decimal(15, 2) + notes String? @db.Text payload Json? good_snapshot Json? @@ -76,8 +79,9 @@ model SaleInvoiceFiscalAttempts { id String @id @default(ulid()) attempt_no Int - status String @db.VarChar(50) - tax_id String? @unique @db.VarChar(191) + status FiscalResponseStatus + tax_id String? @unique @db.VarChar(191) + type FiscalRequestType request_payload Json? response_payload Json? diff --git a/prisma/seed.ts b/prisma/seed.ts index de56ed1..b02bb2f 100644 --- a/prisma/seed.ts +++ b/prisma/seed.ts @@ -4,447 +4,598 @@ import { ConsumerType, GoodPricingModel, PartnerFiscalSwitchType, - UnitType, } from '@/generated/prisma/enums' -import { GoodCreateInput, GoodCreateManyInput } from '@/generated/prisma/models' +import { GoodCreateManyInput } from '@/generated/prisma/models' import { prisma } from '../src/lib/prisma' async function main() { const password = await PasswordUtil.hash('123456') - const adminUser = await prisma.admin.upsert({ - where: { - mobile_number: '09120258156', - }, - update: {}, - create: { - first_name: 'عباس', - last_name: 'حسنی', - national_code: '0016022289', - mobile_number: '09120258156', - accounts: { - create: { - account: { - create: { - username: 'superAdmin', - password, - type: 'ADMIN', - status: 'ACTIVE', - }, - }, - }, - }, - }, - }) - - // ****************** GUILD Start ****************** // - const guilds = await prisma.guild.findMany() - if (!guilds.length) { - await prisma.guild.createMany({ - data: [ - { - name: 'طلا', - code: 'Gold', - }, - { - name: 'میوه و تره‌بار', - code: 'Fruit', - }, - ], - }) - } - - // ****************** GUILD Good Categories Start ****************** // - - const goldGuild = await prisma.guild.findFirst({ - where: { - name: 'طلا', - }, - }) - - const goldGuildId = goldGuild?.id - const goldGuildGoodCategories = await prisma.goodCategory.findMany({ - where: { - guild_id: goldGuildId, - is_default_guild_good: true, - }, - }) - - if (!goldGuildGoodCategories?.length) { - const categoryFactory = (name: string) => ({ - name, - guild_id: goldGuildId, - is_default_guild_good: true, - }) - - await prisma.goodCategory.createMany({ - data: [ - categoryFactory('زیورآلات'), - categoryFactory('طلا'), - categoryFactory('سایر'), - categoryFactory('سکه'), - categoryFactory('شمش'), - categoryFactory('شمش'), - ], - }) - } - - // ****************** GUILD Good Start ****************** // - const goodFactory = ( - name: string, - categoryId: string, - pricingModel: GoodPricingModel, - unitType: UnitType, - ): GoodCreateManyInput => ({ - name, - category_id: categoryId, - pricing_model: pricingModel, - sku: '', - unit_type: unitType, - is_default_guild_good: true, - }) - - const zivarCategory = await prisma.goodCategory.findFirst({ - where: { - name: 'زیورآلات', - }, - }) - if (zivarCategory) { - const zivarGoods = await prisma.good.count({ + await prisma.$transaction(async tx => { + const adminUser = await tx.admin.upsert({ where: { - category_id: zivarCategory?.id, + mobile_number: '09120258156', }, - }) - if (!zivarGoods) { - const goodItems: GoodCreateManyInput[] = [] - - goodItems.push( - ...[ - goodFactory( - 'آویز گردنبند طلا', - zivarCategory.id, - GoodPricingModel.GOLD, - UnitType.GRAM, - ), - goodFactory('النگو', zivarCategory.id, GoodPricingModel.GOLD, UnitType.GRAM), - goodFactory('انگشتر', zivarCategory.id, GoodPricingModel.GOLD, UnitType.GRAM), - goodFactory('دست‌بند', zivarCategory.id, GoodPricingModel.GOLD, UnitType.GRAM), - goodFactory('زنجیر', zivarCategory.id, GoodPricingModel.GOLD, UnitType.GRAM), - goodFactory('سرویس', zivarCategory.id, GoodPricingModel.GOLD, UnitType.GRAM), - goodFactory('گوشواره', zivarCategory.id, GoodPricingModel.GOLD, UnitType.GRAM), - ], - ) - - await prisma.good.createMany({ data: goodItems }) - } - } - - const goldCategory = await prisma.goodCategory.findFirst({ - where: { - name: 'طلا', - }, - }) - if (goldCategory) { - const goldGoods = await prisma.good.count({ - where: { - category_id: goldCategory?.id, - }, - }) - if (!goldGoods) { - const goodItems: GoodCreateInput[] = [] - goodItems.push( - ...[ - goodFactory( - 'طلای آب شده', - goldCategory.id, - GoodPricingModel.GOLD, - UnitType.GRAM, - ), - goodFactory( - 'طلای شکسته', - goldCategory.id, - GoodPricingModel.GOLD, - UnitType.GRAM, - ), - goodFactory( - 'طلای مستعمل', - goldCategory.id, - GoodPricingModel.GOLD, - UnitType.GRAM, - ), - ], - ) - await prisma.good.createMany({ data: goodItems }) - } - } - - const coinCategory = await prisma.goodCategory.findFirst({ - where: { - name: 'سکه', - }, - }) - if (coinCategory) { - const coinGoods = await prisma.good.count({ - where: { - category_id: coinCategory?.id, - }, - }) - if (!coinGoods) { - const goodItems: GoodCreateInput[] = [] - goodItems.push( - ...[ - goodFactory( - 'مسکوکات خارجی', - coinCategory.id, - GoodPricingModel.STANDARD, - UnitType.COUNT, - ), - goodFactory( - 'مسکوکات داخلی (پارسیان)', - coinCategory.id, - GoodPricingModel.STANDARD, - UnitType.COUNT, - ), - goodFactory( - 'تمام بهار آزادی (طرح جدید)', - coinCategory.id, - GoodPricingModel.STANDARD, - UnitType.COUNT, - ), - goodFactory( - 'تمام بهار آزادی (طرح قدیم)', - coinCategory.id, - GoodPricingModel.STANDARD, - UnitType.COUNT, - ), - ], - ) - await prisma.good.createMany({ data: goodItems }) - } - } - - const shemshCategory = await prisma.goodCategory.findFirst({ - where: { - name: 'شمش', - }, - }) - - if (shemshCategory) { - const shemshGoods = await prisma.good.count({ - where: { - category_id: shemshCategory?.id, - }, - }) - if (!shemshGoods) { - await prisma.good.create({ - data: goodFactory( - 'شمش استاندارد', - shemshCategory.id, - GoodPricingModel.GOLD, - UnitType.GRAM, - ), - }) - } - } - - // ****************** partner Start ****************** // - let partner = await prisma.partner.findFirst() - let license = await prisma.license.findFirst() - if (!partner) { - partner = await prisma.partner.create({ - data: { - name: 'تیس', - code: 'TIS', - status: 'ACTIVE', - fiscal_switch_type: PartnerFiscalSwitchType.NAMA, + update: {}, + create: { + first_name: 'عباس', + last_name: 'حسنی', + national_code: '0016022289', + mobile_number: '09120258156', accounts: { create: { - role: 'OWNER', account: { create: { - username: 'tis', - password: await PasswordUtil.hash('123456'), + username: 'superAdmin', + password, + type: 'ADMIN', status: 'ACTIVE', - type: 'PARTNER', }, }, }, }, }, }) - } - if (partner && !license) { - await prisma.$transaction(async tx => { + + const measureUnits = await tx.measureUnits.createMany({ + data: [ + { code: '1', name: 'لنگه' }, + { code: '2', name: 'ثوب' }, + { code: '3', name: 'عدل' }, + { code: '4', name: 'نیم دوجین' }, + { code: '5', name: 'جعبه' }, + { code: '6', name: 'قرقره' }, + { code: '7', name: 'توپ' }, + { code: '8', name: 'کیلوگرم' }, + { code: '9', name: 'ست' }, + { code: '10', name: 'بطری' }, + { code: '11', name: 'دست' }, + { code: '12', name: 'برگ' }, + { code: '13', name: 'کارتن' }, + { code: '14', name: 'سطل' }, + { code: '15', name: 'عدد' }, + { code: '16', name: 'ورق' }, + { code: '17', name: 'بسته' }, + { code: '18', name: 'شاخه' }, + { code: '19', name: 'پاکت' }, + { code: '20', name: 'قوطی' }, + { code: '21', name: 'دستگاه' }, + { code: '22', name: 'جلد' }, + { code: '23', name: 'تخته' }, + { code: '24', name: 'تیوب' }, + { code: '25', name: 'رول' }, + { code: '26', name: 'متر' }, + { code: '27', name: 'طاقه' }, + { code: '28', name: 'کلاف' }, + { code: '29', name: 'جفت' }, + { code: '30', name: 'کیسه' }, + { code: '31', name: 'متر مربع' }, + { code: '32', name: 'طغرا' }, + { code: '33', name: 'پالت' }, + { code: '34', name: 'بشکه' }, + { code: '35', name: 'دوجین' }, + { code: '36', name: 'گالن' }, + { code: '37', name: '(رینگ)حلقه' }, + { code: '38', name: 'فاقد بسته بندی' }, + { code: '39', name: 'قراص' }, + { code: '40', name: 'کارتن' }, + { code: '41', name: 'قراصه' }, + { code: '42', name: 'صفحه' }, + { code: '43', name: 'لیتر' }, + { code: '44', name: 'مخزن' }, + { code: '45', name: 'ساشه' }, + { code: '46', name: 'تانکر' }, + { code: '47', name: 'کپسول' }, + { code: '48', name: 'دبه' }, + { code: '49', name: 'بندیل' }, + { code: '50', name: 'سبد' }, + { code: '51', name: '(رول)حلقه' }, + { code: '52', name: 'تن' }, + { code: '53', name: 'قالب' }, + { code: '54', name: 'بانکه' }, + { code: '55', name: 'شانه' }, + { code: '56', name: 'سیلندر' }, + { code: '57', name: 'متر مکعب' }, + { code: '58', name: 'فوت مربع' }, + { code: '59', name: 'حلب' }, + { code: '60', name: 'شیت' }, + { code: '61', name: 'چلیک' }, + { code: '62', name: 'جام' }, + { code: '63', name: 'گرم' }, + { code: '64', name: 'نخ' }, + { code: '65', name: 'شعله' }, + { code: '66', name: 'قیراط' }, + { code: '67', name: 'میلی لیتر' }, + { code: '68', name: 'میلی متر' }, + { code: '69', name: 'میلی گرم' }, + { code: '70', name: 'ساعت' }, + { code: '71', name: 'روز' }, + { code: '72', name: 'تن کیلومتر' }, + { code: '73', name: 'کیلووات ساعت' }, + { code: '74', name: 'نفر' }, + { code: '75', name: 'ثانیه' }, + { code: '76', name: 'دقیقه' }, + { code: '77', name: 'ماه' }, + { code: '78', name: 'سال' }, + { code: '79', name: 'قطعه' }, + { code: '80', name: 'سانتی متر' }, + { code: '81', name: 'سانتی متر مربع' }, + { code: '82', name: 'فروند' }, + { code: '83', name: 'واحد' }, + { code: '84', name: 'لیوان' }, + { code: '85', name: 'نوبت)`,' }, + ], + skipDuplicates: true, + }) + + // ****************** GUILD Start ****************** // + let guilds = await tx.guild.findMany() + if (!guilds.length) { + await tx.guild.createMany({ + data: [ + { + name: 'طلا', + code: 'Gold', + }, + { + name: 'میوه و تره‌بار', + code: 'Fruit', + }, + ], + }) + guilds = await tx.guild.findMany() + } + + // ****************** GUILD Good Categories Start ****************** // + + const goldGuild = await tx.guild.findFirst({ + where: { + code: 'Gold', + }, + }) + + const goldGuildId = goldGuild?.id + const goldGuildGoodCategories = await tx.goodCategory.findMany({ + where: { + guild_id: goldGuildId, + is_default_guild_good: true, + }, + }) + + if (!goldGuildGoodCategories?.length) { + const categoryFactory = (name: string) => ({ + name, + guild_id: goldGuildId, + is_default_guild_good: true, + }) + + await tx.goodCategory.createMany({ + data: [ + categoryFactory('زیورآلات'), + // categoryFactory('طلا'), + // categoryFactory('سایر'), + // categoryFactory('سکه'), + // categoryFactory('شمش'), + // categoryFactory('شمش'), + ], + }) + } + + const measureUnit = await tx.measureUnits.findFirst({ + where: { + code: '63', + }, + }) + + if (measureUnit) { + // ****************** GUILD Good Start ****************** // + async function goodFactory( + name: string, + categoryId: string, + pricingModel: GoodPricingModel, + sku_code: string, + measure_unit_code: string, + ): Promise { + const sku = await tx.stockKeepingUnits.findUnique({ + where: { + code: sku_code, + }, + }) + console.log(name) + console.log(sku?.id) + + if (sku) { + return { + name, + category_id: categoryId, + pricing_model: pricingModel, + sku_id: sku.id, + measure_unit_id: measureUnit!.id, + is_default_guild_good: true, + } + } + return null + } + + const zivarCategory = await tx.goodCategory.findFirst({ + where: { + name: 'زیورآلات', + }, + }) + if (zivarCategory) { + const zivarGoods = await tx.good.count({ + where: { + category_id: zivarCategory?.id, + }, + }) + if (!zivarGoods) { + const goodItems: GoodCreateManyInput[] = [] + + const preparedGoodItems = [ + await goodFactory( + 'آویز گردنبند طلا', + zivarCategory.id, + GoodPricingModel.GOLD, + '2720000044696', + '63', + ), + await goodFactory( + 'النگو', + zivarCategory.id, + GoodPricingModel.GOLD, + '2720000044665', + '63', + ), + await goodFactory( + 'انگشتر', + zivarCategory.id, + GoodPricingModel.GOLD, + '2720000044672', + '63', + ), + await goodFactory( + 'دست‌بند', + zivarCategory.id, + GoodPricingModel.GOLD, + '2720000044689', + '63', + ), + await goodFactory( + 'زنجیر', + zivarCategory.id, + GoodPricingModel.GOLD, + '2720000044702', + '63', + ), + await goodFactory( + 'سرویس', + zivarCategory.id, + GoodPricingModel.GOLD, + '2720000044733', + '63', + ), + await goodFactory( + 'گوشواره', + zivarCategory.id, + GoodPricingModel.GOLD, + '2720000044726', + '63', + ), + ].filter((item): item is GoodCreateManyInput => item !== null) + goodItems.push(...preparedGoodItems) + + await tx.good.createMany({ data: goodItems }) + } + } + + // const goldCategory = await tx.goodCategory.findFirst({ + // where: { + // name: 'طلا', + // }, + // }) + // if (goldCategory) { + // const goldGoods = await tx.good.count({ + // where: { + // category_id: goldCategory?.id, + // }, + // }) + // if (!goldGoods) { + // const goodItems: GoodCreateInput[] = [] + // goodItems.push( + // ...[ + // goodFactory( + // 'طلای آب شده', + // goldCategory.id, + // GoodPricingModel.GOLD, + // UnitType.GRAM, + // ), + // goodFactory( + // 'طلای شکسته', + // goldCategory.id, + // GoodPricingModel.GOLD, + // UnitType.GRAM, + // ), + // goodFactory( + // 'طلای مستعمل', + // goldCategory.id, + // GoodPricingModel.GOLD, + // UnitType.GRAM, + // ), + // ], + // ) + // await tx.good.createMany({ data: goodItems }) + // } + // } + + // const coinCategory = await tx.goodCategory.findFirst({ + // where: { + // name: 'سکه', + // }, + // }) + // if (coinCategory) { + // const coinGoods = await tx.good.count({ + // where: { + // category_id: coinCategory?.id, + // }, + // }) + // if (!coinGoods) { + // const goodItems: GoodCreateInput[] = [] + // goodItems.push( + // ...[ + // goodFactory( + // 'مسکوکات خارجی', + // coinCategory.id, + // GoodPricingModel.STANDARD, + // UnitType.COUNT, + // ), + // goodFactory( + // 'مسکوکات داخلی (پارسیان)', + // coinCategory.id, + // GoodPricingModel.STANDARD, + // UnitType.COUNT, + // ), + // goodFactory( + // 'تمام بهار آزادی (طرح جدید)', + // coinCategory.id, + // GoodPricingModel.STANDARD, + // UnitType.COUNT, + // ), + // goodFactory( + // 'تمام بهار آزادی (طرح قدیم)', + // coinCategory.id, + // GoodPricingModel.STANDARD, + // UnitType.COUNT, + // ), + // ], + // ) + // await tx.good.createMany({ data: goodItems }) + // } + // } + + // const shemshCategory = await tx.goodCategory.findFirst({ + // where: { + // name: 'شمش', + // }, + // }) + + // if (shemshCategory) { + // const shemshGoods = await tx.good.count({ + // where: { + // category_id: shemshCategory?.id, + // }, + // }) + // if (!shemshGoods) { + // await tx.good.create({ + // data: goodFactory( + // 'شمش استاندارد', + // shemshCategory.id, + // GoodPricingModel.GOLD, + // UnitType.GRAM, + // ), + // }) + // } + // } + } + + // ****************** partner Start ****************** // + let partner = await tx.partner.findFirst() + let license = await tx.license.findFirst() + if (!partner) { + partner = await tx.partner.create({ + data: { + name: 'تیس', + code: 'TIS', + status: 'ACTIVE', + fiscal_switch_type: PartnerFiscalSwitchType.NAMA, + accounts: { + create: { + role: 'OWNER', + account: { + create: { + username: 'tis', + password: await PasswordUtil.hash('123456'), + status: 'ACTIVE', + type: 'PARTNER', + }, + }, + }, + }, + }, + }) + } + if (partner && !license) { + await tx.$transaction(async tx => { + const startOfToday = new Date() + startOfToday.setHours(0, 0, 0, 0) + + const month = startOfToday.getMonth() + let year = startOfToday.getFullYear() + let expMonth = month + 3 + if (expMonth > 11) { + expMonth = expMonth - 11 + year = year + 1 + } + + startOfToday.setFullYear(year) + startOfToday.setMonth(expMonth) + + const transaction = await tx.licenseChargeTransaction.create({ + data: { + activation_expires_at: startOfToday, + purchased_count: 1, + tracking_code: generateTrackingCode('LIC', 6), + partner: { + connect: { + id: partner.id, + }, + }, + }, + select: { + id: true, + }, + }) + if (transaction) + license = await tx.license.create({ + data: { + charge_transaction: { + connect: { + id: transaction.id, + }, + }, + }, + }) + }) + } + + // ****************** BA Start ****************** // + const ba = await tx.businessActivity.count() + + if (!ba && license) { const startOfToday = new Date() startOfToday.setHours(0, 0, 0, 0) - const month = startOfToday.getMonth() let year = startOfToday.getFullYear() - let expMonth = month + 3 - if (expMonth > 11) { - expMonth = expMonth - 11 - year = year + 1 - } + let expYear = year + 1 + // if (expMonth > 11) { + // expMonth = expMonth - 11 + // year = year + 1 + // } - startOfToday.setFullYear(year) - startOfToday.setMonth(expMonth) + startOfToday.setFullYear(expYear) - const transaction = await tx.licenseChargeTransaction.create({ + await tx.businessActivity.create({ data: { - activation_expires_at: startOfToday, - purchased_count: 1, - tracking_code: generateTrackingCode('LIC', 6), - partner: { - connect: { - id: partner.id, + name: 'طلا فروشی', + economic_code: '0111111111', + fiscal_id: '0111111111', + partner_token: 'TIS-BA-001', + license_activation: { + create: { + expires_at: startOfToday, + starts_at: new Date(), + license: { + connect: { + id: license.id, + }, + }, + }, + }, + consumer: { + create: { + type: ConsumerType.INDIVIDUAL, + individual: { + create: { + first_name: 'محمد', + last_name: 'زرگر', + mobile_number: '09120258155', + national_code: '1234567890', + partner: { + connect: { + id: partner.id, + }, + }, + }, + }, + accounts: { + create: { + role: 'OWNER', + account: { + create: { + username: 'zargar', + password: await PasswordUtil.hash('123456'), + status: 'ACTIVE', + type: 'CONSUMER', + }, + }, + }, + }, + }, + }, + guild: { + connect: { + id: guilds[0].id, + }, + }, + complexes: { + create: { + name: 'فروشگاه طلای مرکزی', + address: 'تهران، خیابان جمهوری', + branch_code: '12332', + + // pos_list: { + // create: { + // name: 'لاین ۱', + // pos_type: POSType.WEB, + // status: 'ACTIVE', + // account: { + // create: { + // role: 'OPERATOR', + // account_allocation: { + + // }, + // account: { + // create: { + // username: 'line1', + // password: await PasswordUtil.hash('123456'), + // status: 'ACTIVE', + // type: 'CONSUMER', + // }, + // }, + // } + // } + // }, + // }, }, }, - }, - select: { - id: true, }, }) - if (transaction) - license = await tx.license.create({ - data: { - charge_transaction: { - connect: { - id: transaction.id, - }, - }, - }, - }) - }) - } + } + // ****************** BA Start ****************** // - // ****************** BA Start ****************** // - const ba = await prisma.businessActivity.count() - - if (!ba && license) { - const startOfToday = new Date() - startOfToday.setHours(0, 0, 0, 0) - - let year = startOfToday.getFullYear() - let expYear = year + 1 - // if (expMonth > 11) { - // expMonth = expMonth - 11 - // year = year + 1 - // } - - startOfToday.setFullYear(expYear) - - await prisma.businessActivity.create({ - data: { - name: 'طلا فروشی', - economic_code: '0111111111', - fiscal_id: '0111111111', - partner_token: 'TIS-BA-001', - license_activation: { - create: { - expires_at: startOfToday, - starts_at: new Date(), - license: { - connect: { - id: license.id, - }, - }, - }, - }, - consumer: { - create: { - type: ConsumerType.INDIVIDUAL, - individual: { - create: { - first_name: 'محمد', - last_name: 'زرگر', - mobile_number: '09120258155', - national_code: '1234567890', - partner: { - connect: { - id: partner.id, - }, - }, - }, - }, - accounts: { - create: { - role: 'OWNER', - account: { - create: { - username: 'zargar', - password: await PasswordUtil.hash('123456'), - status: 'ACTIVE', - type: 'CONSUMER', - }, + // ****************** provider Start ****************** // + const provider = await tx.provider.count() + if (!provider) { + await tx.provider.create({ + data: { + name: 'توسن', + code: 'Tosan', + status: 'ACTIVE', + accounts: { + create: { + role: 'OWNER', + account: { + create: { + username: 'tosan', + password: await PasswordUtil.hash('123456'), + status: 'ACTIVE', + type: 'PROVIDER', }, }, }, }, }, - guild: { - connect: { - id: guilds[0].id, - }, - }, - complexes: { - create: { - name: 'فروشگاه طلای مرکزی', - address: 'تهران، خیابان جمهوری', - branch_code: '12332', - - // pos_list: { - // create: { - // name: 'لاین ۱', - // pos_type: POSType.WEB, - // status: 'ACTIVE', - // account: { - // create: { - // role: 'OPERATOR', - // account_allocation: { - - // }, - // account: { - // create: { - // username: 'line1', - // password: await PasswordUtil.hash('123456'), - // status: 'ACTIVE', - // type: 'CONSUMER', - // }, - // }, - // } - // } - // }, - // }, - }, - }, - }, - }) - } - // ****************** BA Start ****************** // - - // ****************** provider Start ****************** // - const provider = await prisma.provider.count() - if (!provider) { - await prisma.provider.create({ - data: { - name: 'توسن', - code: 'Tosan', - status: 'ACTIVE', - accounts: { - create: { - role: 'OWNER', - account: { - create: { - username: 'tosan', - password: await PasswordUtil.hash('123456'), - status: 'ACTIVE', - type: 'PROVIDER', - }, - }, - }, - }, - }, - }) - } + }) + } + }) } main() diff --git a/scripts/seedStockKeepingUnits.ts b/scripts/seedStockKeepingUnits.ts new file mode 100644 index 0000000..40642bf --- /dev/null +++ b/scripts/seedStockKeepingUnits.ts @@ -0,0 +1,147 @@ +import fs from 'node:fs' +import path from 'node:path' +import { prisma } from '../src/lib/prisma' + +type CsvRow = { + ID?: string + DescriptionOfID?: string + Vat?: string + Type?: string +} + +function parseCsvLine(line: string): string[] { + const result: string[] = [] + let current = '' + let inQuotes = false + + for (let index = 0; index < line.length; index++) { + const char = line[index] + + if (char === '"') { + if (inQuotes && line[index + 1] === '"') { + current += '"' + index++ + } else { + inQuotes = !inQuotes + } + continue + } + + if (char === ',' && !inQuotes) { + result.push(current) + current = '' + continue + } + + current += char + } + + result.push(current) + return result.map(value => value.trim()) +} + +function parseCsv(content: string): CsvRow[] { + const lines = content + .split(/\r?\n/) + .map(line => line.trim()) + .filter(Boolean) + + if (!lines.length) return [] + + const headers = parseCsvLine(lines[0]) + return lines.slice(1).map(line => { + const cols = parseCsvLine(line) + const row: Record = {} + for (let index = 0; index < headers.length; index++) { + row[headers[index]] = cols[index] || '' + } + return row + }) +} + +function toBooleanFlags(typeValue: string) { + const normalized = typeValue || '' + const isPublic = normalized.includes('شناسه عمومی') + const isImported = normalized.includes('وارداتی') + const isDomestic = !isImported + + return { isPublic, isDomestic } +} + +function parseVat(vatValue: string) { + const parsed = Number(vatValue || '0') + if (!Number.isFinite(parsed)) return 0 + return parsed +} + +async function main() { + const defaultPath = + '/Users/ahasani/Desktop/product_good_2026-05-01T11-35-57_part_1_28812448-0dd9-411c-99e1-334c28d781fe.csv' + const csvPath = process.argv[2] || defaultPath + const absolutePath = path.resolve(csvPath) + + if (!fs.existsSync(absolutePath)) { + throw new Error(`CSV file not found: ${absolutePath}`) + } + + const raw = fs.readFileSync(absolutePath, 'utf8').replace(/^\uFEFF/, '') + const rows = parseCsv(raw) + + let upserted = 0 + let skipped = 0 + + for (const row of rows) { + const code = (row.ID || '').trim() + const name = (row.DescriptionOfID || '').trim() + const vat = parseVat((row.Vat || '').trim()) + const type = (row.Type || '').trim() + const { isPublic, isDomestic } = toBooleanFlags(type) + + if (!code || !name) { + skipped++ + continue + } + + await prisma.stockKeepingUnits.upsert({ + where: { code }, + create: { + code, + name, + VAT: vat, + type: 'GOLD', + is_public: isPublic, + is_domestic: isDomestic, + }, + update: { + name, + VAT: vat, + type: 'GOLD', + is_public: isPublic, + is_domestic: isDomestic, + }, + }) + upserted++ + } + + console.log( + JSON.stringify( + { + csvPath: absolutePath, + totalRows: rows.length, + upserted, + skipped, + }, + null, + 2, + ), + ) +} + +main() + .catch(error => { + console.error(error) + process.exit(1) + }) + .finally(async () => { + await prisma.$disconnect() + }) diff --git a/src/common/constants/translates/enums.ts b/src/common/constants/translates/enums.ts index d0d4730..751f15b 100644 --- a/src/common/constants/translates/enums.ts +++ b/src/common/constants/translates/enums.ts @@ -1,3 +1,5 @@ +import { FiscalResponseStatus } from '@/generated/prisma/enums' + export default { PaymentMethodType: { TERMINAL: 'ترمینال', @@ -12,7 +14,6 @@ export default { COUNT: 'تعداد', GRAM: 'گرم', KILOGRAM: 'کیلوگرم', - KILO_GRAM: 'کیلوگرم', LITER: 'لیتر', MILLILITER: 'میلی‌لیتر', METER: 'متر', @@ -96,6 +97,10 @@ export default { MANAGER: 'مدیریت', OPERATOR: 'اپراتور', }, + ComplexRole: { + MANAGER: 'مدیریت', + OPERATOR: 'اپراتور', + }, ConsumerRole: { OWNER: 'مدیر اصلی', MANAGER: 'مدیریت', @@ -135,6 +140,20 @@ export default { SUCCESS: 'موفق', FAILURE: 'ناموفق', NOT_SEND: 'ارسال نشده', + [FiscalResponseStatus.QUEUED]: 'در صف ارسال', + }, + FiscalRequestType: { + MAIN: 'اصلی', + UPDATE: 'اصلاح', + REVOKE: 'ابطال', + REMOVE: 'حذف', + }, + FiscalInvoiceCustomerType: { + Unknown: 'ناشناس', + Known: 'شناسایی شده', + }, + SKUGuildType: { + GOLD: 'طلا', }, GoldKarat: { KARAT_18: '۱۸ عیار', diff --git a/src/common/enums/enums.ts b/src/common/enums/enums.ts index 348dfce..20aee02 100644 --- a/src/common/enums/enums.ts +++ b/src/common/enums/enums.ts @@ -1,22 +1,25 @@ -export enum TokenType { - ACCESS = 'ACCESS', - REFRESH = 'REFRESH', -} - -export enum AccountType { - PARTNER = 'PARTNER', - BUSINESS = 'BUSINESS', - ADMIN = 'ADMIN', - PROVIDER = 'PROVIDER', - POS = 'POS', -} - export enum GoldKarat { KARAT_18 = '18', KARAT_21 = '21', KARAT_24 = '24', } +export enum FiscalRequestType { + MAIN = 'MAIN', + UPDATE = 'UPDATE', + REVOKE = 'REVOKE', + REMOVE = 'REMOVE', +} + +export enum FiscalInvoiceCustomerType { + Unknown = 'Unknown', + Known = 'Known', +} + +export enum SKUGuildType { + GOLD = 'GOLD', +} + export const UploadedFileTypes = { GOOD: 'good', SERVICE: 'service', diff --git a/src/generated/prisma/browser.ts b/src/generated/prisma/browser.ts index d602557..f91144c 100644 --- a/src/generated/prisma/browser.ts +++ b/src/generated/prisma/browser.ts @@ -167,6 +167,26 @@ export type Complex = Prisma.ComplexModel * */ export type Pos = Prisma.PosModel +/** + * Model Good + * + */ +export type Good = Prisma.GoodModel +/** + * Model GoodCategory + * + */ +export type GoodCategory = Prisma.GoodCategoryModel +/** + * Model MeasureUnits + * + */ +export type MeasureUnits = Prisma.MeasureUnitsModel +/** + * Model StockKeepingUnits + * + */ +export type StockKeepingUnits = Prisma.StockKeepingUnitsModel /** * Model TriggerLog * @@ -187,16 +207,6 @@ export type CustomerIndividual = Prisma.CustomerIndividualModel * */ export type CustomerLegal = Prisma.CustomerLegalModel -/** - * Model Good - * - */ -export type Good = Prisma.GoodModel -/** - * Model GoodCategory - * - */ -export type GoodCategory = Prisma.GoodCategoryModel /** * Model Guild * diff --git a/src/generated/prisma/client.ts b/src/generated/prisma/client.ts index 2e19fb0..9ffee0c 100644 --- a/src/generated/prisma/client.ts +++ b/src/generated/prisma/client.ts @@ -189,6 +189,26 @@ export type Complex = Prisma.ComplexModel * */ export type Pos = Prisma.PosModel +/** + * Model Good + * + */ +export type Good = Prisma.GoodModel +/** + * Model GoodCategory + * + */ +export type GoodCategory = Prisma.GoodCategoryModel +/** + * Model MeasureUnits + * + */ +export type MeasureUnits = Prisma.MeasureUnitsModel +/** + * Model StockKeepingUnits + * + */ +export type StockKeepingUnits = Prisma.StockKeepingUnitsModel /** * Model TriggerLog * @@ -209,16 +229,6 @@ export type CustomerIndividual = Prisma.CustomerIndividualModel * */ export type CustomerLegal = Prisma.CustomerLegalModel -/** - * Model Good - * - */ -export type Good = Prisma.GoodModel -/** - * Model GoodCategory - * - */ -export type GoodCategory = Prisma.GoodCategoryModel /** * Model Guild * diff --git a/src/generated/prisma/commonInputTypes.ts b/src/generated/prisma/commonInputTypes.ts index b4be6e1..e5b0256 100644 --- a/src/generated/prisma/commonInputTypes.ts +++ b/src/generated/prisma/commonInputTypes.ts @@ -490,68 +490,6 @@ export type EnumPOSTypeWithAggregatesFilter<$PrismaModel = never> = { _max?: Prisma.NestedEnumPOSTypeFilter<$PrismaModel> } -export type BoolNullableFilter<$PrismaModel = never> = { - equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel> | null - not?: Prisma.NestedBoolNullableFilter<$PrismaModel> | boolean | null -} - -export type EnumCustomerTypeFilter<$PrismaModel = never> = { - equals?: $Enums.CustomerType | Prisma.EnumCustomerTypeFieldRefInput<$PrismaModel> - in?: $Enums.CustomerType[] - notIn?: $Enums.CustomerType[] - not?: Prisma.NestedEnumCustomerTypeFilter<$PrismaModel> | $Enums.CustomerType -} - -export type DateTimeNullableFilter<$PrismaModel = never> = { - equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null - in?: Date[] | string[] | null - notIn?: Date[] | string[] | null - lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> - lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> - gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> - gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> - not?: Prisma.NestedDateTimeNullableFilter<$PrismaModel> | Date | string | null -} - -export type BoolNullableWithAggregatesFilter<$PrismaModel = never> = { - equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel> | null - not?: Prisma.NestedBoolNullableWithAggregatesFilter<$PrismaModel> | boolean | null - _count?: Prisma.NestedIntNullableFilter<$PrismaModel> - _min?: Prisma.NestedBoolNullableFilter<$PrismaModel> - _max?: Prisma.NestedBoolNullableFilter<$PrismaModel> -} - -export type EnumCustomerTypeWithAggregatesFilter<$PrismaModel = never> = { - equals?: $Enums.CustomerType | Prisma.EnumCustomerTypeFieldRefInput<$PrismaModel> - in?: $Enums.CustomerType[] - notIn?: $Enums.CustomerType[] - not?: Prisma.NestedEnumCustomerTypeWithAggregatesFilter<$PrismaModel> | $Enums.CustomerType - _count?: Prisma.NestedIntFilter<$PrismaModel> - _min?: Prisma.NestedEnumCustomerTypeFilter<$PrismaModel> - _max?: Prisma.NestedEnumCustomerTypeFilter<$PrismaModel> -} - -export type DateTimeNullableWithAggregatesFilter<$PrismaModel = never> = { - equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null - in?: Date[] | string[] | null - notIn?: Date[] | string[] | null - lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> - lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> - gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> - gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> - not?: Prisma.NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> | Date | string | null - _count?: Prisma.NestedIntNullableFilter<$PrismaModel> - _min?: Prisma.NestedDateTimeNullableFilter<$PrismaModel> - _max?: Prisma.NestedDateTimeNullableFilter<$PrismaModel> -} - -export type EnumUnitTypeFilter<$PrismaModel = never> = { - equals?: $Enums.UnitType | Prisma.EnumUnitTypeFieldRefInput<$PrismaModel> - in?: $Enums.UnitType[] - notIn?: $Enums.UnitType[] - not?: Prisma.NestedEnumUnitTypeFilter<$PrismaModel> | $Enums.UnitType -} - export type EnumGoodPricingModelFilter<$PrismaModel = never> = { equals?: $Enums.GoodPricingModel | Prisma.EnumGoodPricingModelFieldRefInput<$PrismaModel> in?: $Enums.GoodPricingModel[] @@ -570,14 +508,15 @@ export type DecimalNullableFilter<$PrismaModel = never> = { not?: Prisma.NestedDecimalNullableFilter<$PrismaModel> | runtime.Decimal | runtime.DecimalJsLike | number | string | null } -export type EnumUnitTypeWithAggregatesFilter<$PrismaModel = never> = { - equals?: $Enums.UnitType | Prisma.EnumUnitTypeFieldRefInput<$PrismaModel> - in?: $Enums.UnitType[] - notIn?: $Enums.UnitType[] - not?: Prisma.NestedEnumUnitTypeWithAggregatesFilter<$PrismaModel> | $Enums.UnitType - _count?: Prisma.NestedIntFilter<$PrismaModel> - _min?: Prisma.NestedEnumUnitTypeFilter<$PrismaModel> - _max?: Prisma.NestedEnumUnitTypeFilter<$PrismaModel> +export type DateTimeNullableFilter<$PrismaModel = never> = { + equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null + in?: Date[] | string[] | null + notIn?: Date[] | string[] | null + lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + not?: Prisma.NestedDateTimeNullableFilter<$PrismaModel> | Date | string | null } export type EnumGoodPricingModelWithAggregatesFilter<$PrismaModel = never> = { @@ -606,6 +545,20 @@ export type DecimalNullableWithAggregatesFilter<$PrismaModel = never> = { _max?: Prisma.NestedDecimalNullableFilter<$PrismaModel> } +export type DateTimeNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null + in?: Date[] | string[] | null + notIn?: Date[] | string[] | null + lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + not?: Prisma.NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> | Date | string | null + _count?: Prisma.NestedIntNullableFilter<$PrismaModel> + _min?: Prisma.NestedDateTimeNullableFilter<$PrismaModel> + _max?: Prisma.NestedDateTimeNullableFilter<$PrismaModel> +} + export type DecimalFilter<$PrismaModel = never> = { equals?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel> in?: runtime.Decimal[] | runtime.DecimalJsLike[] | number[] | string[] @@ -617,6 +570,13 @@ export type DecimalFilter<$PrismaModel = never> = { not?: Prisma.NestedDecimalFilter<$PrismaModel> | runtime.Decimal | runtime.DecimalJsLike | number | string } +export type EnumSKUGuildTypeFilter<$PrismaModel = never> = { + equals?: $Enums.SKUGuildType | Prisma.EnumSKUGuildTypeFieldRefInput<$PrismaModel> + in?: $Enums.SKUGuildType[] + notIn?: $Enums.SKUGuildType[] + not?: Prisma.NestedEnumSKUGuildTypeFilter<$PrismaModel> | $Enums.SKUGuildType +} + export type DecimalWithAggregatesFilter<$PrismaModel = never> = { equals?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel> in?: runtime.Decimal[] | runtime.DecimalJsLike[] | number[] | string[] @@ -633,6 +593,80 @@ export type DecimalWithAggregatesFilter<$PrismaModel = never> = { _max?: Prisma.NestedDecimalFilter<$PrismaModel> } +export type EnumSKUGuildTypeWithAggregatesFilter<$PrismaModel = never> = { + equals?: $Enums.SKUGuildType | Prisma.EnumSKUGuildTypeFieldRefInput<$PrismaModel> + in?: $Enums.SKUGuildType[] + notIn?: $Enums.SKUGuildType[] + not?: Prisma.NestedEnumSKUGuildTypeWithAggregatesFilter<$PrismaModel> | $Enums.SKUGuildType + _count?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedEnumSKUGuildTypeFilter<$PrismaModel> + _max?: Prisma.NestedEnumSKUGuildTypeFilter<$PrismaModel> +} + +export type BoolNullableFilter<$PrismaModel = never> = { + equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel> | null + not?: Prisma.NestedBoolNullableFilter<$PrismaModel> | boolean | null +} + +export type EnumCustomerTypeFilter<$PrismaModel = never> = { + equals?: $Enums.CustomerType | Prisma.EnumCustomerTypeFieldRefInput<$PrismaModel> + in?: $Enums.CustomerType[] + notIn?: $Enums.CustomerType[] + not?: Prisma.NestedEnumCustomerTypeFilter<$PrismaModel> | $Enums.CustomerType +} + +export type BoolNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel> | null + not?: Prisma.NestedBoolNullableWithAggregatesFilter<$PrismaModel> | boolean | null + _count?: Prisma.NestedIntNullableFilter<$PrismaModel> + _min?: Prisma.NestedBoolNullableFilter<$PrismaModel> + _max?: Prisma.NestedBoolNullableFilter<$PrismaModel> +} + +export type EnumCustomerTypeWithAggregatesFilter<$PrismaModel = never> = { + equals?: $Enums.CustomerType | Prisma.EnumCustomerTypeFieldRefInput<$PrismaModel> + in?: $Enums.CustomerType[] + notIn?: $Enums.CustomerType[] + not?: Prisma.NestedEnumCustomerTypeWithAggregatesFilter<$PrismaModel> | $Enums.CustomerType + _count?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedEnumCustomerTypeFilter<$PrismaModel> + _max?: Prisma.NestedEnumCustomerTypeFilter<$PrismaModel> +} + +export type EnumFiscalResponseStatusFilter<$PrismaModel = never> = { + equals?: $Enums.FiscalResponseStatus | Prisma.EnumFiscalResponseStatusFieldRefInput<$PrismaModel> + in?: $Enums.FiscalResponseStatus[] + notIn?: $Enums.FiscalResponseStatus[] + not?: Prisma.NestedEnumFiscalResponseStatusFilter<$PrismaModel> | $Enums.FiscalResponseStatus +} + +export type EnumFiscalRequestTypeFilter<$PrismaModel = never> = { + equals?: $Enums.FiscalRequestType | Prisma.EnumFiscalRequestTypeFieldRefInput<$PrismaModel> + in?: $Enums.FiscalRequestType[] + notIn?: $Enums.FiscalRequestType[] + not?: Prisma.NestedEnumFiscalRequestTypeFilter<$PrismaModel> | $Enums.FiscalRequestType +} + +export type EnumFiscalResponseStatusWithAggregatesFilter<$PrismaModel = never> = { + equals?: $Enums.FiscalResponseStatus | Prisma.EnumFiscalResponseStatusFieldRefInput<$PrismaModel> + in?: $Enums.FiscalResponseStatus[] + notIn?: $Enums.FiscalResponseStatus[] + not?: Prisma.NestedEnumFiscalResponseStatusWithAggregatesFilter<$PrismaModel> | $Enums.FiscalResponseStatus + _count?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedEnumFiscalResponseStatusFilter<$PrismaModel> + _max?: Prisma.NestedEnumFiscalResponseStatusFilter<$PrismaModel> +} + +export type EnumFiscalRequestTypeWithAggregatesFilter<$PrismaModel = never> = { + equals?: $Enums.FiscalRequestType | Prisma.EnumFiscalRequestTypeFieldRefInput<$PrismaModel> + in?: $Enums.FiscalRequestType[] + notIn?: $Enums.FiscalRequestType[] + not?: Prisma.NestedEnumFiscalRequestTypeWithAggregatesFilter<$PrismaModel> | $Enums.FiscalRequestType + _count?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedEnumFiscalRequestTypeFilter<$PrismaModel> + _max?: Prisma.NestedEnumFiscalRequestTypeFilter<$PrismaModel> +} + export type EnumPaymentMethodTypeFilter<$PrismaModel = never> = { equals?: $Enums.PaymentMethodType | Prisma.EnumPaymentMethodTypeFieldRefInput<$PrismaModel> in?: $Enums.PaymentMethodType[] @@ -1116,68 +1150,6 @@ export type NestedEnumPOSTypeWithAggregatesFilter<$PrismaModel = never> = { _max?: Prisma.NestedEnumPOSTypeFilter<$PrismaModel> } -export type NestedBoolNullableFilter<$PrismaModel = never> = { - equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel> | null - not?: Prisma.NestedBoolNullableFilter<$PrismaModel> | boolean | null -} - -export type NestedEnumCustomerTypeFilter<$PrismaModel = never> = { - equals?: $Enums.CustomerType | Prisma.EnumCustomerTypeFieldRefInput<$PrismaModel> - in?: $Enums.CustomerType[] - notIn?: $Enums.CustomerType[] - not?: Prisma.NestedEnumCustomerTypeFilter<$PrismaModel> | $Enums.CustomerType -} - -export type NestedDateTimeNullableFilter<$PrismaModel = never> = { - equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null - in?: Date[] | string[] | null - notIn?: Date[] | string[] | null - lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> - lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> - gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> - gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> - not?: Prisma.NestedDateTimeNullableFilter<$PrismaModel> | Date | string | null -} - -export type NestedBoolNullableWithAggregatesFilter<$PrismaModel = never> = { - equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel> | null - not?: Prisma.NestedBoolNullableWithAggregatesFilter<$PrismaModel> | boolean | null - _count?: Prisma.NestedIntNullableFilter<$PrismaModel> - _min?: Prisma.NestedBoolNullableFilter<$PrismaModel> - _max?: Prisma.NestedBoolNullableFilter<$PrismaModel> -} - -export type NestedEnumCustomerTypeWithAggregatesFilter<$PrismaModel = never> = { - equals?: $Enums.CustomerType | Prisma.EnumCustomerTypeFieldRefInput<$PrismaModel> - in?: $Enums.CustomerType[] - notIn?: $Enums.CustomerType[] - not?: Prisma.NestedEnumCustomerTypeWithAggregatesFilter<$PrismaModel> | $Enums.CustomerType - _count?: Prisma.NestedIntFilter<$PrismaModel> - _min?: Prisma.NestedEnumCustomerTypeFilter<$PrismaModel> - _max?: Prisma.NestedEnumCustomerTypeFilter<$PrismaModel> -} - -export type NestedDateTimeNullableWithAggregatesFilter<$PrismaModel = never> = { - equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null - in?: Date[] | string[] | null - notIn?: Date[] | string[] | null - lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> - lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> - gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> - gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> - not?: Prisma.NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> | Date | string | null - _count?: Prisma.NestedIntNullableFilter<$PrismaModel> - _min?: Prisma.NestedDateTimeNullableFilter<$PrismaModel> - _max?: Prisma.NestedDateTimeNullableFilter<$PrismaModel> -} - -export type NestedEnumUnitTypeFilter<$PrismaModel = never> = { - equals?: $Enums.UnitType | Prisma.EnumUnitTypeFieldRefInput<$PrismaModel> - in?: $Enums.UnitType[] - notIn?: $Enums.UnitType[] - not?: Prisma.NestedEnumUnitTypeFilter<$PrismaModel> | $Enums.UnitType -} - export type NestedEnumGoodPricingModelFilter<$PrismaModel = never> = { equals?: $Enums.GoodPricingModel | Prisma.EnumGoodPricingModelFieldRefInput<$PrismaModel> in?: $Enums.GoodPricingModel[] @@ -1196,14 +1168,15 @@ export type NestedDecimalNullableFilter<$PrismaModel = never> = { not?: Prisma.NestedDecimalNullableFilter<$PrismaModel> | runtime.Decimal | runtime.DecimalJsLike | number | string | null } -export type NestedEnumUnitTypeWithAggregatesFilter<$PrismaModel = never> = { - equals?: $Enums.UnitType | Prisma.EnumUnitTypeFieldRefInput<$PrismaModel> - in?: $Enums.UnitType[] - notIn?: $Enums.UnitType[] - not?: Prisma.NestedEnumUnitTypeWithAggregatesFilter<$PrismaModel> | $Enums.UnitType - _count?: Prisma.NestedIntFilter<$PrismaModel> - _min?: Prisma.NestedEnumUnitTypeFilter<$PrismaModel> - _max?: Prisma.NestedEnumUnitTypeFilter<$PrismaModel> +export type NestedDateTimeNullableFilter<$PrismaModel = never> = { + equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null + in?: Date[] | string[] | null + notIn?: Date[] | string[] | null + lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + not?: Prisma.NestedDateTimeNullableFilter<$PrismaModel> | Date | string | null } export type NestedEnumGoodPricingModelWithAggregatesFilter<$PrismaModel = never> = { @@ -1232,6 +1205,20 @@ export type NestedDecimalNullableWithAggregatesFilter<$PrismaModel = never> = { _max?: Prisma.NestedDecimalNullableFilter<$PrismaModel> } +export type NestedDateTimeNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null + in?: Date[] | string[] | null + notIn?: Date[] | string[] | null + lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> + not?: Prisma.NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> | Date | string | null + _count?: Prisma.NestedIntNullableFilter<$PrismaModel> + _min?: Prisma.NestedDateTimeNullableFilter<$PrismaModel> + _max?: Prisma.NestedDateTimeNullableFilter<$PrismaModel> +} + export type NestedDecimalFilter<$PrismaModel = never> = { equals?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel> in?: runtime.Decimal[] | runtime.DecimalJsLike[] | number[] | string[] @@ -1243,6 +1230,13 @@ export type NestedDecimalFilter<$PrismaModel = never> = { not?: Prisma.NestedDecimalFilter<$PrismaModel> | runtime.Decimal | runtime.DecimalJsLike | number | string } +export type NestedEnumSKUGuildTypeFilter<$PrismaModel = never> = { + equals?: $Enums.SKUGuildType | Prisma.EnumSKUGuildTypeFieldRefInput<$PrismaModel> + in?: $Enums.SKUGuildType[] + notIn?: $Enums.SKUGuildType[] + not?: Prisma.NestedEnumSKUGuildTypeFilter<$PrismaModel> | $Enums.SKUGuildType +} + export type NestedDecimalWithAggregatesFilter<$PrismaModel = never> = { equals?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel> in?: runtime.Decimal[] | runtime.DecimalJsLike[] | number[] | string[] @@ -1259,6 +1253,80 @@ export type NestedDecimalWithAggregatesFilter<$PrismaModel = never> = { _max?: Prisma.NestedDecimalFilter<$PrismaModel> } +export type NestedEnumSKUGuildTypeWithAggregatesFilter<$PrismaModel = never> = { + equals?: $Enums.SKUGuildType | Prisma.EnumSKUGuildTypeFieldRefInput<$PrismaModel> + in?: $Enums.SKUGuildType[] + notIn?: $Enums.SKUGuildType[] + not?: Prisma.NestedEnumSKUGuildTypeWithAggregatesFilter<$PrismaModel> | $Enums.SKUGuildType + _count?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedEnumSKUGuildTypeFilter<$PrismaModel> + _max?: Prisma.NestedEnumSKUGuildTypeFilter<$PrismaModel> +} + +export type NestedBoolNullableFilter<$PrismaModel = never> = { + equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel> | null + not?: Prisma.NestedBoolNullableFilter<$PrismaModel> | boolean | null +} + +export type NestedEnumCustomerTypeFilter<$PrismaModel = never> = { + equals?: $Enums.CustomerType | Prisma.EnumCustomerTypeFieldRefInput<$PrismaModel> + in?: $Enums.CustomerType[] + notIn?: $Enums.CustomerType[] + not?: Prisma.NestedEnumCustomerTypeFilter<$PrismaModel> | $Enums.CustomerType +} + +export type NestedBoolNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel> | null + not?: Prisma.NestedBoolNullableWithAggregatesFilter<$PrismaModel> | boolean | null + _count?: Prisma.NestedIntNullableFilter<$PrismaModel> + _min?: Prisma.NestedBoolNullableFilter<$PrismaModel> + _max?: Prisma.NestedBoolNullableFilter<$PrismaModel> +} + +export type NestedEnumCustomerTypeWithAggregatesFilter<$PrismaModel = never> = { + equals?: $Enums.CustomerType | Prisma.EnumCustomerTypeFieldRefInput<$PrismaModel> + in?: $Enums.CustomerType[] + notIn?: $Enums.CustomerType[] + not?: Prisma.NestedEnumCustomerTypeWithAggregatesFilter<$PrismaModel> | $Enums.CustomerType + _count?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedEnumCustomerTypeFilter<$PrismaModel> + _max?: Prisma.NestedEnumCustomerTypeFilter<$PrismaModel> +} + +export type NestedEnumFiscalResponseStatusFilter<$PrismaModel = never> = { + equals?: $Enums.FiscalResponseStatus | Prisma.EnumFiscalResponseStatusFieldRefInput<$PrismaModel> + in?: $Enums.FiscalResponseStatus[] + notIn?: $Enums.FiscalResponseStatus[] + not?: Prisma.NestedEnumFiscalResponseStatusFilter<$PrismaModel> | $Enums.FiscalResponseStatus +} + +export type NestedEnumFiscalRequestTypeFilter<$PrismaModel = never> = { + equals?: $Enums.FiscalRequestType | Prisma.EnumFiscalRequestTypeFieldRefInput<$PrismaModel> + in?: $Enums.FiscalRequestType[] + notIn?: $Enums.FiscalRequestType[] + not?: Prisma.NestedEnumFiscalRequestTypeFilter<$PrismaModel> | $Enums.FiscalRequestType +} + +export type NestedEnumFiscalResponseStatusWithAggregatesFilter<$PrismaModel = never> = { + equals?: $Enums.FiscalResponseStatus | Prisma.EnumFiscalResponseStatusFieldRefInput<$PrismaModel> + in?: $Enums.FiscalResponseStatus[] + notIn?: $Enums.FiscalResponseStatus[] + not?: Prisma.NestedEnumFiscalResponseStatusWithAggregatesFilter<$PrismaModel> | $Enums.FiscalResponseStatus + _count?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedEnumFiscalResponseStatusFilter<$PrismaModel> + _max?: Prisma.NestedEnumFiscalResponseStatusFilter<$PrismaModel> +} + +export type NestedEnumFiscalRequestTypeWithAggregatesFilter<$PrismaModel = never> = { + equals?: $Enums.FiscalRequestType | Prisma.EnumFiscalRequestTypeFieldRefInput<$PrismaModel> + in?: $Enums.FiscalRequestType[] + notIn?: $Enums.FiscalRequestType[] + not?: Prisma.NestedEnumFiscalRequestTypeWithAggregatesFilter<$PrismaModel> | $Enums.FiscalRequestType + _count?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedEnumFiscalRequestTypeFilter<$PrismaModel> + _max?: Prisma.NestedEnumFiscalRequestTypeFilter<$PrismaModel> +} + export type NestedEnumPaymentMethodTypeFilter<$PrismaModel = never> = { equals?: $Enums.PaymentMethodType | Prisma.EnumPaymentMethodTypeFieldRefInput<$PrismaModel> in?: $Enums.PaymentMethodType[] diff --git a/src/generated/prisma/enums.ts b/src/generated/prisma/enums.ts index 76a6e5f..0b7aa41 100644 --- a/src/generated/prisma/enums.ts +++ b/src/generated/prisma/enums.ts @@ -259,7 +259,33 @@ export type PartnerFiscalSwitchType = (typeof PartnerFiscalSwitchType)[keyof typ export const FiscalResponseStatus = { SUCCESS: 'SUCCESS', FAILURE: 'FAILURE', - NOT_SEND: 'NOT_SEND' + NOT_SEND: 'NOT_SEND', + QUEUED: 'QUEUED' } as const export type FiscalResponseStatus = (typeof FiscalResponseStatus)[keyof typeof FiscalResponseStatus] + + +export const FiscalRequestType = { + MAIN: 'MAIN', + UPDATE: 'UPDATE', + REVOKE: 'REVOKE', + REMOVE: 'REMOVE' +} as const + +export type FiscalRequestType = (typeof FiscalRequestType)[keyof typeof FiscalRequestType] + + +export const FiscalInvoiceCustomerType = { + Unknown: 'Unknown', + Known: 'Known' +} as const + +export type FiscalInvoiceCustomerType = (typeof FiscalInvoiceCustomerType)[keyof typeof FiscalInvoiceCustomerType] + + +export const SKUGuildType = { + GOLD: 'GOLD' +} as const + +export type SKUGuildType = (typeof SKUGuildType)[keyof typeof SKUGuildType] diff --git a/src/generated/prisma/internal/class.ts b/src/generated/prisma/internal/class.ts index 5de55fa..7a744b2 100644 --- a/src/generated/prisma/internal/class.ts +++ b/src/generated/prisma/internal/class.ts @@ -22,7 +22,7 @@ const config: runtime.GetPrismaClientConfig = { "clientVersion": "7.7.0", "engineVersion": "75cbdc1eb7150937890ad5465d861175c6624711", "activeProvider": "mysql", - "inlineSchema": "model AdminAccount {\n id String @id @default(ulid())\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n admin_id String\n admin Admin @relation(fields: [admin_id], references: [id])\n\n account_id String @unique\n account Account @relation(fields: [account_id], references: [id])\n\n @@map(\"admin_accounts\")\n}\n\nmodel Admin {\n id String @id @default(ulid())\n mobile_number String @unique()\n national_code String? @unique()\n first_name String\n last_name String\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n accounts AdminAccount[]\n\n @@map(\"admins\")\n}\n\n// model LegalProfile {\n// user_id String @id\n// company_name String\n// register_no String @unique()\n// representative_name String?\n// representative_national_id String?\n\n// // user User @relation(fields: [user_id], references: [id])\n\n// @@map(\"legal_profiles\")\n// }\n\n// model IndividualProfile {\n// user_id String @id\n// national_code String @unique()\n// first_name String\n// last_name String\n// birth_date DateTime?\n// mobile_number String\n// // user User @relation(fields: [user_id], references: [id])\n\n// @@map(\"individual_profiles\")\n// }\n\nmodel Account {\n id String @id @default(ulid())\n username String @unique()\n password String\n status AccountStatus\n type AccountType\n\n admin_account AdminAccount?\n provider_account ProviderAccount?\n partner_account PartnerAccount?\n consumer_account ConsumerAccount?\n\n // tokens Token[]\n // refresh_tokens RefreshToken[]\n\n @@map(\"accounts\")\n}\n\n// model Token {\n// id String @id @d @uniqueefault(ulid())\n// token String @unique\n// type TokenType\n// created_at DateTime @default(now())\n// expires_at DateTime\n\n// account_id String\n// account Account @relation(fields: [account_id], references: [id])\n\n// @@unique([type, account_id])\n// @@map(\"tokens\")\n// }\n\n// model VerificationCode {\n// id String @id @default(ulid())\n// code String\n// is_used Boolean @default(false)\n// created_at DateTime @default(now())\n// expires_at DateTime\n\n// account_id String\n// account Account @relation(fields: [account_id], references: [id])\n\n// @@map(\"verification_codes\")\n// }\n\nmodel DeviceBrand {\n id String @id @default(ulid())\n name String\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n devices Device[]\n\n @@map(\"device_brands\")\n}\n\nmodel Device {\n id String @id @default(ulid())\n name String\n os_version String?\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n brand_id String\n\n brand DeviceBrand @relation(fields: [brand_id], references: [id])\n poses Pos[]\n\n @@map(\"devices\")\n}\n\nmodel LicenseChargeTransaction {\n id String @id @default(ulid())\n activation_expires_at DateTime\n tracking_code String @unique()\n purchased_count Int\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n partner_id String\n partner Partner @relation(fields: [partner_id], references: [id])\n\n licenses License[]\n\n @@map(\"license_charged_transactions\")\n}\n\nmodel License {\n id String @id @default(ulid())\n accounts_limit Int @default(2)\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n charge_transaction_id String\n charge_transaction LicenseChargeTransaction @relation(fields: [charge_transaction_id], references: [id])\n\n activation LicenseActivation?\n\n @@map(\"licenses\")\n}\n\nmodel LicenseActivation {\n id String @id @unique() @default(ulid())\n starts_at DateTime\n expires_at DateTime\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n license_id String @unique\n license License @relation(fields: [license_id], references: [id])\n\n business_activity_id String @unique\n business_activity BusinessActivity @relation(fields: [business_activity_id], references: [id])\n\n license_renews LicenseRenew[]\n account_allocations LicenseAccountAllocation[]\n\n @@map(\"licenses_activated\")\n}\n\nmodel LicenseRenewChargeTransaction {\n id String @id @default(ulid())\n activation_expires_at DateTime\n tracking_code String @unique()\n purchased_count Int\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n partner_id String\n partner Partner @relation(fields: [partner_id], references: [id])\n\n license_renews LicenseRenew[]\n\n @@map(\"license_renew_charge_transaction\")\n}\n\nmodel LicenseRenew {\n id String @id @default(ulid())\n expires_at DateTime\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n charge_transaction_id String\n charge_transaction LicenseRenewChargeTransaction @relation(fields: [charge_transaction_id], references: [id])\n\n activation_id String?\n activation LicenseActivation? @relation(fields: [activation_id], references: [id])\n\n @@map(\"license_renew\")\n}\n\nmodel PartnerAccountQuotaChargeTransaction {\n id String @id @default(ulid())\n activation_expires_at DateTime\n tracking_code String @unique()\n purchased_count Int\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n partner_id String\n partner Partner @relation(fields: [partner_id], references: [id])\n\n credits PartnerAccountQuotaCredit[]\n\n @@map(\"partner_account_quota_charge_transaction\")\n}\n\nmodel PartnerAccountQuotaCredit {\n id String @id @default(ulid())\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n charge_transaction_id String?\n charge_transaction PartnerAccountQuotaChargeTransaction? @relation(fields: [charge_transaction_id], references: [id])\n\n allocation LicenseAccountAllocation?\n\n @@map(\"partner_account_quota_credit\")\n}\n\nmodel LicenseAccountAllocation {\n id String @id @default(ulid())\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n license_activation_id String?\n license_activation LicenseActivation? @relation(fields: [license_activation_id], references: [id])\n\n account_id String? @unique\n account ConsumerAccount? @relation(fields: [account_id], references: [id])\n\n credit_id String? @unique\n credit PartnerAccountQuotaCredit? @relation(fields: [credit_id], references: [id])\n\n @@map(\"license_account_allocation\")\n}\n\nmodel PartnerAccount {\n id String @id @default(ulid())\n role PartnerRole\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @default(now()) @updatedAt @db.Timestamp(0)\n\n partner_id String\n partner Partner @relation(fields: [partner_id], references: [id])\n\n account_id String @unique\n account Account @relation(fields: [account_id], references: [id])\n\n @@map(\"partner_accounts\")\n}\n\nmodel Partner {\n id String @id @default(ulid())\n name String\n code String @unique()\n status PartnerStatus @default(ACTIVE)\n fiscal_switch_type PartnerFiscalSwitchType\n logo_url String?\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @default(now()) @updatedAt @db.Timestamp(0)\n\n accounts PartnerAccount[]\n consumers_individual ConsumerIndividual[]\n consumers_legal ConsumerLegal[]\n license_charge_transactions LicenseChargeTransaction[]\n account_quota_charge_transactions PartnerAccountQuotaChargeTransaction[]\n license_renew_charge_transactions LicenseRenewChargeTransaction[]\n\n @@map(\"partners\")\n}\n\nmodel PermissionConsumer {\n id String @id @default(ulid())\n\n consumer_account_id String @unique\n consumer_account ConsumerAccount @relation(fields: [consumer_account_id], references: [id], onDelete: Cascade)\n\n pos_permissions PermissionPos[]\n complex_permissions PermissionComplex[]\n business_permissions PermissionBusiness[]\n\n @@map(\"permission_consumers\")\n}\n\nmodel PermissionPos {\n id String @id @default(ulid())\n role POSRole\n\n pos_id String\n permission_id String\n\n pos Pos @relation(fields: [pos_id], references: [id], onDelete: Cascade)\n permission PermissionConsumer @relation(fields: [permission_id], references: [id], onDelete: Cascade)\n\n @@unique([permission_id, pos_id])\n @@map(\"permission_poses\")\n}\n\nmodel PermissionComplex {\n id String @id @default(ulid())\n role ComplexRole\n\n complex_id String\n permission_id String\n\n complex Complex @relation(fields: [complex_id], references: [id], onDelete: Cascade)\n permission PermissionConsumer @relation(fields: [permission_id], references: [id], onDelete: Cascade)\n\n @@unique([permission_id, complex_id])\n @@map(\"permission_complexes\")\n}\n\nmodel PermissionBusiness {\n id String @id @default(ulid())\n role BusinessRole\n\n business_id String\n permission_id String\n\n business BusinessActivity @relation(fields: [business_id], references: [id], onDelete: Cascade)\n permission PermissionConsumer @relation(fields: [permission_id], references: [id], onDelete: Cascade)\n\n @@unique([permission_id, business_id])\n @@map(\"permission_business_activities\")\n}\n\nmodel ProviderAccount {\n id String @id @default(ulid())\n role ProviderRole\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n provider_id String\n provider Provider @relation(fields: [provider_id], references: [id])\n\n account_id String @unique\n account Account @relation(fields: [account_id], references: [id])\n\n @@map(\"provider_accounts\")\n}\n\nmodel Provider {\n id String @id @default(ulid())\n code String @unique()\n status PartnerStatus @default(ACTIVE)\n name String\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n\n accounts ProviderAccount[]\n pos_list Pos[]\n\n @@map(\"providers\")\n}\n\nmodel ConsumerDevices {\n uuid String @id @unique() @db.VarChar(255)\n app_version String @db.VarChar(20)\n build_number String @db.VarChar(20)\n platform String @db.VarChar(100)\n brand String @db.VarChar(100)\n model String @db.VarChar(100)\n device String @db.VarChar(100)\n publisher ApplicationPublisher\n os_version String @db.VarChar(20)\n sdk_version String @db.VarChar(20)\n release_number String @db.VarChar(20)\n user_agent String? @db.VarChar(100)\n browser_name String? @db.VarChar(100)\n fcm_token String? @db.VarChar(100)\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n consumer_id String\n consumer Consumer @relation(fields: [consumer_id], references: [id])\n\n @@map(\"consumer_devices\")\n}\n\nmodel ApplicationReleasedInfo {\n id String @id @default(ulid())\n version String\n build_number String\n is_minimum_supported Boolean @default(false)\n release_type ApplicationReleaseType\n platform ApplicationPlatform\n notes Json?\n\n release_date DateTime @default(now()) @db.Timestamp(0)\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n @@map(\"application_released_info\")\n}\n\nmodel ConsumerAccount {\n id String @id @default(ulid())\n role ConsumerRole\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n consumer_id String\n consumer Consumer @relation(fields: [consumer_id], references: [id])\n\n account_id String @unique()\n account Account @relation(fields: [account_id], references: [id])\n\n pos Pos?\n permission PermissionConsumer?\n account_allocation LicenseAccountAllocation?\n sales_invoices SalesInvoice[]\n\n @@map(\"consumer_accounts\")\n}\n\nmodel Consumer {\n id String @id @default(ulid())\n type ConsumerType\n status ConsumerStatus @default(ACTIVE)\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n accounts ConsumerAccount[]\n business_activities BusinessActivity[]\n devices ConsumerDevices[]\n individual ConsumerIndividual?\n legal ConsumerLegal?\n\n @@map(\"consumers\")\n}\n\nmodel ConsumerIndividual {\n first_name String\n last_name String\n mobile_number String\n national_code String\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n partner_id String\n partner Partner @relation(fields: [partner_id], references: [id])\n\n consumer_id String @id\n consumer Consumer @relation(fields: [consumer_id], references: [id], onDelete: Cascade)\n\n @@unique([mobile_number, consumer_id])\n @@unique([partner_id, national_code])\n @@map(\"consumers_individual\")\n}\n\nmodel ConsumerLegal {\n name String\n registration_code String\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n partner_id String\n partner Partner @relation(fields: [partner_id], references: [id])\n\n consumer_id String @id\n consumer Consumer @relation(fields: [consumer_id], references: [id], onDelete: Cascade)\n\n @@unique([partner_id, registration_code])\n @@map(\"consumers_legal\")\n}\n\nmodel BusinessActivity {\n id String @id @default(ulid())\n economic_code String\n name String\n fiscal_id String\n partner_token String\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n guild_id String\n guild Guild @relation(fields: [guild_id], references: [id])\n\n consumer_id String\n consumer Consumer @relation(fields: [consumer_id], references: [id])\n\n license_activation LicenseActivation?\n complexes Complex[]\n permission_businesses PermissionBusiness[]\n goods Good[]\n customer_individuals CustomerIndividual[]\n customer_legals CustomerLegal[]\n\n @@unique([economic_code, consumer_id])\n @@map(\"business_activities\")\n}\n\nmodel Complex {\n id String @id @default(ulid())\n name String\n branch_code String\n address String?\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n business_activity_id String\n\n business_activity BusinessActivity @relation(fields: [business_activity_id], references: [id])\n\n pos_list Pos[]\n good_categories GoodCategory[]\n permission_complexes PermissionComplex[]\n\n @@map(\"complexes\")\n}\n\nmodel Pos {\n id String @id @default(ulid())\n name String\n model String?\n serial_number String? @unique()\n status POSStatus @default(ACTIVE)\n pos_type POSType\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n complex_id String\n complex Complex @relation(fields: [complex_id], references: [id])\n\n device_id String?\n device Device? @relation(fields: [device_id], references: [id])\n\n provider_id String?\n provider Provider? @relation(fields: [provider_id], references: [id])\n\n account_id String @unique\n account ConsumerAccount @relation(fields: [account_id], references: [id])\n\n permission_pos PermissionPos[]\n sales_invoices SalesInvoice[]\n\n @@map(\"poses\")\n}\n\nmodel TriggerLog {\n id Int @id @default(autoincrement())\n message String @db.Text\n createdAt DateTime @default(now()) @db.Timestamp(0)\n name String @db.Text\n\n @@map(\"trigger_logs\")\n}\n\n// generator client {\n// provider = \"prisma-client-js\"\n// // output = \"../../src/generated/prisma\"\n// // moduleFormat = \"cjs\"\n// previewFeatures = [\"views\"]\n// }\n\n// datasource db {\n// provider = \"mysql\"\n// }\n\ngenerator client {\n provider = \"prisma-client\"\n output = \"../../src/generated/prisma\"\n moduleFormat = \"cjs\"\n previewFeatures = [\"views\"]\n}\n\ndatasource db {\n provider = \"mysql\"\n}\n\nmodel Customer {\n id String @id @default(ulid())\n is_favorite Boolean? @default(false)\n type CustomerType\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n deleted_at DateTime? @db.Timestamp(0)\n\n individual CustomerIndividual?\n legal CustomerLegal?\n\n sales_invoices SalesInvoice[]\n\n @@map(\"customers\")\n}\n\nmodel CustomerIndividual {\n first_name String @db.VarChar(255)\n last_name String @db.VarChar(255)\n national_id String @db.Char(10)\n mobile_number String @db.Char(15)\n\n postal_code String @db.Char(10)\n economic_code String? @db.Char(10)\n\n customer_id String @id\n customer Customer @relation(fields: [customer_id], references: [id], onDelete: Cascade)\n\n business_activity_id String\n business_activity BusinessActivity @relation(fields: [business_activity_id], references: id)\n\n @@unique([business_activity_id, national_id])\n @@index([business_activity_id])\n @@map(\"customer_individuals\")\n}\n\nmodel CustomerLegal {\n company_name String @db.VarChar(255)\n economic_code String @db.Char(10)\n registration_number String? @db.Char(20)\n postal_code String @db.Char(10)\n\n customer_id String @id\n customer Customer @relation(fields: [customer_id], references: [id], onDelete: Cascade)\n\n business_activity_id String\n business_activity BusinessActivity @relation(fields: [business_activity_id], references: id)\n\n @@unique([business_activity_id, economic_code])\n @@index([business_activity_id])\n @@map(\"customer_legal\")\n}\n\nenum PaymentMethodType {\n TERMINAL\n CASH\n SET_OFF\n CARD\n BANK\n CHECK\n OTHER\n}\n\nenum UnitType {\n COUNT\n GRAM\n KILOGRAM\n MILLILITER\n LITER\n METER\n HOUR\n}\n\nenum GoodPricingModel {\n STANDARD\n GOLD\n}\n\nenum CustomerType {\n INDIVIDUAL\n LEGAL\n UNKNOWN\n}\n\nenum POSStatus {\n ACTIVE\n DISABLED\n}\n\nenum POSRole {\n MANAGER\n OPERATOR\n}\n\nenum ComplexRole {\n MANAGER\n OPERATOR\n}\n\nenum BusinessRole {\n MANAGER\n OPERATOR\n}\n\nenum LicenseType {\n BASIC\n PRO\n ENTERPRISE\n}\n\nenum LicenseStatus {\n ACTIVE\n EXPIRED\n SUSPENDED\n}\n\nenum POSType {\n PSP\n MOBILE\n WEB\n API\n}\n\nenum UserType {\n LEGAL\n INDIVIDUAL\n}\n\nenum AccountType {\n ADMIN\n PROVIDER\n PARTNER\n CONSUMER\n}\n\nenum UserStatus {\n ACTIVE\n INACTIVE\n}\n\nenum AccountRole {\n OWNER\n OPERATOR\n ACCOUNTANT\n}\n\nenum AccountStatus {\n ACTIVE\n SUSPENDED\n}\n\nenum PartnerRole {\n OWNER\n MANAGER\n OPERATOR\n}\n\nenum PartnerStatus {\n ACTIVE\n SUSPENDED\n}\n\nenum ProviderRole {\n OWNER\n MANAGER\n OPERATOR\n}\n\nenum ProviderStatus {\n ACTIVE\n SUSPENDED\n}\n\nenum ConsumerRole {\n OWNER\n MANAGER\n OPERATOR\n}\n\nenum ConsumerStatus {\n ACTIVE\n SUSPENDED\n}\n\nenum TokenType {\n ACCESS\n REFRESH\n}\n\nenum ApplicationPlatform {\n ANDROID\n IOS\n}\n\nenum ApplicationReleaseType {\n STABLE\n BETA\n ALPHA\n}\n\nenum ApplicationPublisher {\n DIRECT\n CAFE_BAZAR\n MAYKET\n}\n\nenum ConsumerType {\n INDIVIDUAL\n LEGAL\n}\n\nenum PartnerFiscalSwitchType {\n NAMA\n SUN\n}\n\nenum FiscalResponseStatus {\n SUCCESS\n FAILURE\n NOT_SEND\n}\n\nmodel Good {\n id String @id @default(ulid())\n name String @db.VarChar(255)\n is_default_guild_good Boolean @default(false)\n sku String @db.VarChar(100)\n unit_type UnitType\n pricing_model GoodPricingModel\n description String? @db.Text\n local_sku String? @unique() @db.VarChar(100)\n barcode String? @unique() @db.VarChar(100)\n base_sale_price Decimal? @default(0.00) @db.Decimal(15, 0)\n image_url String? @db.VarChar(255)\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n deleted_at DateTime? @db.Timestamp(0)\n\n category_id String?\n category GoodCategory? @relation(fields: [category_id], references: [id])\n\n business_activity_id String?\n business_activity BusinessActivity? @relation(fields: [business_activity_id], references: [id])\n\n sales_invoice_items SalesInvoiceItem[]\n\n @@index([category_id])\n @@map(\"goods\")\n}\n\nmodel GoodCategory {\n id String @id @default(ulid())\n name String @db.VarChar(100)\n description String? @db.Text\n image_url String? @db.VarChar(255)\n complex_id String?\n is_default_guild_good Boolean @default(false)\n guild_id String?\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n deleted_at DateTime? @db.Timestamp(0)\n\n goods Good[]\n guild Guild? @relation(fields: [guild_id], references: [id])\n complex Complex? @relation(fields: [complex_id], references: [id])\n\n @@map(\"good_categories\")\n}\n\nmodel Guild {\n id String @id @default(ulid())\n name String\n code String?\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n business_activities BusinessActivity[]\n good_categories GoodCategory[]\n\n @@map(\"guilds\")\n}\n\nmodel SalesInvoice {\n id String @id @default(uuid())\n code String @unique @db.VarChar(100)\n total_amount Decimal @db.Decimal(15, 2)\n invoice_number Int @db.Int()\n invoice_date DateTime @default(now()) @db.Timestamp(0)\n\n notes String? @db.Text\n unknown_customer Json? @db.Json\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n\n customer_id String?\n customer Customer? @relation(fields: [customer_id], references: [id])\n\n consumer_account_id String\n consumer_account ConsumerAccount @relation(fields: [consumer_account_id], references: [id])\n\n pos_id String\n pos Pos @relation(fields: [pos_id], references: [id])\n\n fiscal SaleInvoiceFiscals?\n\n items SalesInvoiceItem[]\n payments SalesInvoicePayment[]\n\n @@unique([invoice_number, pos_id])\n @@map(\"sales_invoices\")\n}\n\nmodel SalesInvoiceItem {\n id String @id @default(ulid())\n quantity Decimal @db.Decimal(10, 0)\n unit_type UnitType\n unit_price Decimal @default(0.00) @db.Decimal(15, 2)\n total_amount Decimal @default(0.00) @db.Decimal(15, 2)\n created_at DateTime @default(now()) @db.Timestamp(0)\n discount Decimal @default(0.00) @db.Decimal(15, 2)\n notes String? @db.Text\n\n payload Json?\n good_snapshot Json?\n\n invoice_id String\n invoice SalesInvoice @relation(fields: [invoice_id], references: [id])\n\n good_id String?\n good Good? @relation(fields: [good_id], references: [id])\n\n service_id String?\n service Service? @relation(fields: [service_id], references: [id])\n\n @@index([invoice_id, good_id])\n @@map(\"sales_invoice_items\")\n}\n\nmodel SaleInvoiceFiscals {\n id String @id @default(ulid())\n\n retry_count Int @default(0)\n last_attempt_at DateTime? @db.Timestamp(0)\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n invoice_id String @unique\n invoice SalesInvoice @relation(fields: [invoice_id], references: [id], onDelete: Cascade)\n\n attempts SaleInvoiceFiscalAttempts[]\n\n @@map(\"sale_invoice_fiscals\")\n}\n\nmodel SaleInvoiceFiscalAttempts {\n id String @id @default(ulid())\n\n attempt_no Int\n status String @db.VarChar(50)\n tax_id String? @unique @db.VarChar(191)\n\n request_payload Json?\n response_payload Json?\n error_message String? @db.Text\n\n sent_at DateTime? @db.Timestamp(0)\n received_at DateTime? @db.Timestamp(0)\n created_at DateTime @default(now()) @db.Timestamp(0)\n\n fiscal_id String\n fiscal SaleInvoiceFiscals @relation(fields: [fiscal_id], references: [id], onDelete: Cascade)\n\n @@unique([fiscal_id, attempt_no])\n @@index([status])\n @@index([tax_id])\n @@map(\"sale_invoice_fiscal_attempts\")\n}\n\nmodel SalesInvoicePayment {\n id String @id @default(ulid())\n amount Decimal @db.Decimal(15, 2)\n payment_method PaymentMethodType\n paid_at DateTime @db.Timestamp(0)\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n\n invoice_id String\n invoice SalesInvoice @relation(fields: [invoice_id], references: [id])\n\n terminal_info SalesInvoicePaymentTerminalInfo?\n\n @@index([invoice_id])\n @@map(\"sales_invoice_payments\")\n}\n\nmodel SalesInvoicePaymentTerminalInfo {\n id String @id @default(ulid())\n terminal_id String\n stan String\n rrn String\n transaction_date_time DateTime\n customer_card_no String?\n description String?\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n\n payment_id String @unique\n payment SalesInvoicePayment @relation(fields: [payment_id], references: [id])\n\n @@unique([terminal_id, stan, rrn, payment_id])\n @@map(\"sales_invoice_payment_terminal_info\")\n}\n\nmodel Service {\n id String @id @default(ulid())\n name String @db.VarChar(255)\n description String? @db.Text\n sku String @unique() @db.VarChar(100)\n local_sku String? @unique() @db.VarChar(100)\n barcode String? @unique() @db.VarChar(100)\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n deleted_at DateTime? @db.Timestamp(0)\n category_id String?\n base_sale_price Decimal @default(0.00) @db.Decimal(15, 0)\n account_id String\n complex_id String\n\n category ServiceCategory? @relation(fields: [category_id], references: [id])\n sales_invoice_items SalesInvoiceItem[]\n\n @@index([category_id])\n @@map(\"services\")\n}\n\nmodel ServiceCategory {\n id String @id @default(ulid())\n name String @db.VarChar(100)\n description String? @db.Text\n image_url String? @db.VarChar(255)\n account_id String\n complex_id String\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n deleted_at DateTime? @db.Timestamp(0)\n\n services Service[]\n\n @@map(\"service_categories\")\n}\n", + "inlineSchema": "model AdminAccount {\n id String @id @default(ulid())\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n admin_id String\n admin Admin @relation(fields: [admin_id], references: [id])\n\n account_id String @unique\n account Account @relation(fields: [account_id], references: [id])\n\n @@map(\"admin_accounts\")\n}\n\nmodel Admin {\n id String @id @default(ulid())\n mobile_number String @unique()\n national_code String? @unique()\n first_name String\n last_name String\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n accounts AdminAccount[]\n\n @@map(\"admins\")\n}\n\n// model LegalProfile {\n// user_id String @id\n// company_name String\n// register_no String @unique()\n// representative_name String?\n// representative_national_id String?\n\n// // user User @relation(fields: [user_id], references: [id])\n\n// @@map(\"legal_profiles\")\n// }\n\n// model IndividualProfile {\n// user_id String @id\n// national_code String @unique()\n// first_name String\n// last_name String\n// birth_date DateTime?\n// mobile_number String\n// // user User @relation(fields: [user_id], references: [id])\n\n// @@map(\"individual_profiles\")\n// }\n\nmodel Account {\n id String @id @default(ulid())\n username String @unique()\n password String\n status AccountStatus\n type AccountType\n\n admin_account AdminAccount?\n provider_account ProviderAccount?\n partner_account PartnerAccount?\n consumer_account ConsumerAccount?\n\n // admin_account_id String? @unique\n // admin_account AdminAccount? @relation(fields: [admin_account_id], references: [id], onDelete: Cascade)\n\n // provider_account_id String? @unique\n // provider_account ProviderAccount? @relation(fields: [provider_account_id], references: [id], onDelete: Cascade)\n\n // partner_account_id String? @unique\n // partner_account PartnerAccount? @relation(fields: [partner_account_id], references: [id], onDelete: Cascade)\n\n // consumer_account_id String? @unique\n // consumer_account ConsumerAccount? @relation(fields: [consumer_account_id], references: [id], onDelete: Cascade)\n\n // tokens Token[]\n // refresh_tokens RefreshToken[]\n\n @@map(\"accounts\")\n}\n\n// model Token {\n// id String @id @d @uniqueefault(ulid())\n// token String @unique\n// type TokenType\n// created_at DateTime @default(now())\n// expires_at DateTime\n\n// account_id String\n// account Account @relation(fields: [account_id], references: [id])\n\n// @@unique([type, account_id])\n// @@map(\"tokens\")\n// }\n\n// model VerificationCode {\n// id String @id @default(ulid())\n// code String\n// is_used Boolean @default(false)\n// created_at DateTime @default(now())\n// expires_at DateTime\n\n// account_id String\n// account Account @relation(fields: [account_id], references: [id])\n\n// @@map(\"verification_codes\")\n// }\n\nmodel DeviceBrand {\n id String @id @default(ulid())\n name String\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n devices Device[]\n\n @@map(\"device_brands\")\n}\n\nmodel Device {\n id String @id @default(ulid())\n name String\n os_version String?\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n brand_id String\n\n brand DeviceBrand @relation(fields: [brand_id], references: [id])\n poses Pos[]\n\n @@map(\"devices\")\n}\n\nmodel LicenseChargeTransaction {\n id String @id @default(ulid())\n activation_expires_at DateTime\n tracking_code String @unique()\n purchased_count Int\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n partner_id String\n partner Partner @relation(fields: [partner_id], references: [id])\n\n licenses License[]\n\n @@map(\"license_charged_transactions\")\n}\n\nmodel License {\n id String @id @default(ulid())\n accounts_limit Int @default(2)\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n charge_transaction_id String\n charge_transaction LicenseChargeTransaction @relation(fields: [charge_transaction_id], references: [id])\n\n activation LicenseActivation?\n\n @@map(\"licenses\")\n}\n\nmodel LicenseActivation {\n id String @id @unique() @default(ulid())\n starts_at DateTime\n expires_at DateTime\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n license_id String @unique\n license License @relation(fields: [license_id], references: [id])\n\n business_activity_id String @unique\n business_activity BusinessActivity @relation(fields: [business_activity_id], references: [id])\n\n license_renews LicenseRenew[]\n account_allocations LicenseAccountAllocation[]\n\n @@map(\"licenses_activated\")\n}\n\nmodel LicenseRenewChargeTransaction {\n id String @id @default(ulid())\n activation_expires_at DateTime\n tracking_code String @unique()\n purchased_count Int\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n partner_id String\n partner Partner @relation(fields: [partner_id], references: [id])\n\n license_renews LicenseRenew[]\n\n @@map(\"license_renew_charge_transaction\")\n}\n\nmodel LicenseRenew {\n id String @id @default(ulid())\n expires_at DateTime\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n charge_transaction_id String\n charge_transaction LicenseRenewChargeTransaction @relation(fields: [charge_transaction_id], references: [id])\n\n activation_id String?\n activation LicenseActivation? @relation(fields: [activation_id], references: [id])\n\n @@map(\"license_renew\")\n}\n\nmodel PartnerAccountQuotaChargeTransaction {\n id String @id @default(ulid())\n activation_expires_at DateTime\n tracking_code String @unique()\n purchased_count Int\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n partner_id String\n partner Partner @relation(fields: [partner_id], references: [id])\n\n credits PartnerAccountQuotaCredit[]\n\n @@map(\"partner_account_quota_charge_transaction\")\n}\n\nmodel PartnerAccountQuotaCredit {\n id String @id @default(ulid())\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n charge_transaction_id String?\n charge_transaction PartnerAccountQuotaChargeTransaction? @relation(fields: [charge_transaction_id], references: [id])\n\n allocation LicenseAccountAllocation?\n\n @@map(\"partner_account_quota_credit\")\n}\n\nmodel LicenseAccountAllocation {\n id String @id @default(ulid())\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n license_activation_id String?\n license_activation LicenseActivation? @relation(fields: [license_activation_id], references: [id])\n\n account_id String? @unique\n account ConsumerAccount? @relation(fields: [account_id], references: [id])\n\n credit_id String? @unique\n credit PartnerAccountQuotaCredit? @relation(fields: [credit_id], references: [id])\n\n @@map(\"license_account_allocation\")\n}\n\nmodel PartnerAccount {\n id String @id @default(ulid())\n role PartnerRole\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @default(now()) @updatedAt @db.Timestamp(0)\n\n partner_id String\n partner Partner @relation(fields: [partner_id], references: [id])\n\n account_id String @unique\n account Account @relation(fields: [account_id], references: [id])\n\n @@map(\"partner_accounts\")\n}\n\nmodel Partner {\n id String @id @default(ulid())\n name String\n code String @unique()\n status PartnerStatus @default(ACTIVE)\n fiscal_switch_type PartnerFiscalSwitchType\n logo_url String?\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @default(now()) @updatedAt @db.Timestamp(0)\n\n accounts PartnerAccount[]\n consumers_individual ConsumerIndividual[]\n consumers_legal ConsumerLegal[]\n license_charge_transactions LicenseChargeTransaction[]\n account_quota_charge_transactions PartnerAccountQuotaChargeTransaction[]\n license_renew_charge_transactions LicenseRenewChargeTransaction[]\n\n @@map(\"partners\")\n}\n\nmodel PermissionConsumer {\n id String @id @default(ulid())\n\n consumer_account_id String @unique\n consumer_account ConsumerAccount @relation(fields: [consumer_account_id], references: [id], onDelete: Cascade)\n\n pos_permissions PermissionPos[]\n complex_permissions PermissionComplex[]\n business_permissions PermissionBusiness[]\n\n @@map(\"permission_consumers\")\n}\n\nmodel PermissionPos {\n id String @id @default(ulid())\n role POSRole\n\n pos_id String\n permission_id String\n\n pos Pos @relation(fields: [pos_id], references: [id], onDelete: Cascade)\n permission PermissionConsumer @relation(fields: [permission_id], references: [id], onDelete: Cascade)\n\n @@unique([permission_id, pos_id])\n @@map(\"permission_poses\")\n}\n\nmodel PermissionComplex {\n id String @id @default(ulid())\n role ComplexRole\n\n complex_id String\n permission_id String\n\n complex Complex @relation(fields: [complex_id], references: [id], onDelete: Cascade)\n permission PermissionConsumer @relation(fields: [permission_id], references: [id], onDelete: Cascade)\n\n @@unique([permission_id, complex_id])\n @@map(\"permission_complexes\")\n}\n\nmodel PermissionBusiness {\n id String @id @default(ulid())\n role BusinessRole\n\n business_id String\n permission_id String\n\n business BusinessActivity @relation(fields: [business_id], references: [id], onDelete: Cascade)\n permission PermissionConsumer @relation(fields: [permission_id], references: [id], onDelete: Cascade)\n\n @@unique([permission_id, business_id])\n @@map(\"permission_business_activities\")\n}\n\nmodel ProviderAccount {\n id String @id @default(ulid())\n role ProviderRole\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n provider_id String\n provider Provider @relation(fields: [provider_id], references: [id])\n\n account_id String @unique\n account Account @relation(fields: [account_id], references: [id])\n\n @@map(\"provider_accounts\")\n}\n\nmodel Provider {\n id String @id @default(ulid())\n code String @unique()\n status PartnerStatus @default(ACTIVE)\n name String\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n\n accounts ProviderAccount[]\n pos_list Pos[]\n\n @@map(\"providers\")\n}\n\nmodel ConsumerDevices {\n uuid String @id @unique() @db.VarChar(255)\n app_version String @db.VarChar(20)\n build_number String @db.VarChar(20)\n platform String @db.VarChar(100)\n brand String @db.VarChar(100)\n model String @db.VarChar(100)\n device String @db.VarChar(100)\n publisher ApplicationPublisher\n os_version String @db.VarChar(20)\n sdk_version String @db.VarChar(20)\n release_number String @db.VarChar(20)\n user_agent String? @db.VarChar(100)\n browser_name String? @db.VarChar(100)\n fcm_token String? @db.VarChar(100)\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n consumer_id String\n consumer Consumer @relation(fields: [consumer_id], references: [id])\n\n @@map(\"consumer_devices\")\n}\n\nmodel ApplicationReleasedInfo {\n id String @id @default(ulid())\n version String\n build_number String\n is_minimum_supported Boolean @default(false)\n release_type ApplicationReleaseType\n platform ApplicationPlatform\n notes Json?\n\n release_date DateTime @default(now()) @db.Timestamp(0)\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n @@map(\"application_released_info\")\n}\n\nmodel ConsumerAccount {\n id String @id @default(ulid())\n role ConsumerRole\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n consumer_id String\n consumer Consumer @relation(fields: [consumer_id], references: [id])\n\n account_id String @unique()\n account Account @relation(fields: [account_id], references: [id])\n\n pos Pos?\n permission PermissionConsumer?\n account_allocation LicenseAccountAllocation?\n sales_invoices SalesInvoice[]\n\n @@map(\"consumer_accounts\")\n}\n\nmodel Consumer {\n id String @id @default(ulid())\n type ConsumerType\n status ConsumerStatus @default(ACTIVE)\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n accounts ConsumerAccount[]\n business_activities BusinessActivity[]\n devices ConsumerDevices[]\n individual ConsumerIndividual?\n legal ConsumerLegal?\n\n @@map(\"consumers\")\n}\n\nmodel ConsumerIndividual {\n first_name String\n last_name String\n mobile_number String\n national_code String\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n partner_id String\n partner Partner @relation(fields: [partner_id], references: [id])\n\n consumer_id String @id\n consumer Consumer @relation(fields: [consumer_id], references: [id], onDelete: Cascade)\n\n @@unique([mobile_number, consumer_id])\n @@unique([partner_id, national_code])\n @@map(\"consumers_individual\")\n}\n\nmodel ConsumerLegal {\n name String\n registration_code String\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n partner_id String\n partner Partner @relation(fields: [partner_id], references: [id])\n\n consumer_id String @id\n consumer Consumer @relation(fields: [consumer_id], references: [id], onDelete: Cascade)\n\n @@unique([partner_id, registration_code])\n @@map(\"consumers_legal\")\n}\n\nmodel BusinessActivity {\n id String @id @default(ulid())\n economic_code String\n name String\n fiscal_id String\n partner_token String\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n guild_id String\n guild Guild @relation(fields: [guild_id], references: [id])\n\n consumer_id String\n consumer Consumer @relation(fields: [consumer_id], references: [id])\n\n license_activation LicenseActivation?\n complexes Complex[]\n permission_businesses PermissionBusiness[]\n goods Good[]\n customer_individuals CustomerIndividual[]\n customer_legals CustomerLegal[]\n\n @@unique([economic_code, consumer_id])\n @@map(\"business_activities\")\n}\n\nmodel Complex {\n id String @id @default(ulid())\n name String\n branch_code String\n address String?\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n business_activity_id String\n\n business_activity BusinessActivity @relation(fields: [business_activity_id], references: [id])\n\n pos_list Pos[]\n good_categories GoodCategory[]\n permission_complexes PermissionComplex[]\n\n @@map(\"complexes\")\n}\n\nmodel Pos {\n id String @id @default(ulid())\n name String\n model String?\n serial_number String? @unique()\n status POSStatus @default(ACTIVE)\n pos_type POSType\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n complex_id String\n complex Complex @relation(fields: [complex_id], references: [id])\n\n device_id String?\n device Device? @relation(fields: [device_id], references: [id])\n\n provider_id String?\n provider Provider? @relation(fields: [provider_id], references: [id])\n\n account_id String @unique\n account ConsumerAccount @relation(fields: [account_id], references: [id])\n\n permission_pos PermissionPos[]\n sales_invoices SalesInvoice[]\n\n @@map(\"poses\")\n}\n\nmodel Good {\n id String @id @default(ulid())\n name String @db.VarChar(255)\n is_default_guild_good Boolean @default(false)\n pricing_model GoodPricingModel\n description String? @db.Text\n local_sku String? @unique() @db.VarChar(100)\n barcode String? @unique() @db.VarChar(100)\n base_sale_price Decimal? @default(0.00) @db.Decimal(15, 0)\n image_url String? @db.VarChar(255)\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n deleted_at DateTime? @db.Timestamp(0)\n\n sku_id String\n sku StockKeepingUnits @relation(fields: [sku_id], references: [id])\n\n measure_unit_id String\n measure_unit MeasureUnits @relation(fields: [measure_unit_id], references: [id])\n\n category_id String?\n category GoodCategory? @relation(fields: [category_id], references: [id])\n\n business_activity_id String?\n business_activity BusinessActivity? @relation(fields: [business_activity_id], references: [id])\n\n sales_invoice_items SalesInvoiceItem[]\n\n @@index([category_id])\n @@map(\"goods\")\n}\n\nmodel GoodCategory {\n id String @id @default(ulid())\n name String @db.VarChar(100)\n description String? @db.Text\n image_url String? @db.VarChar(255)\n complex_id String?\n is_default_guild_good Boolean @default(false)\n guild_id String?\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n deleted_at DateTime? @db.Timestamp(0)\n\n goods Good[]\n guild Guild? @relation(fields: [guild_id], references: [id])\n complex Complex? @relation(fields: [complex_id], references: [id])\n\n @@map(\"good_categories\")\n}\n\nmodel MeasureUnits {\n id String @id @default(ulid())\n code String @unique\n name String\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @default(now()) @updatedAt @db.Timestamp(0)\n\n goods Good[]\n\n @@map(\"measure_units\")\n}\n\nmodel StockKeepingUnits {\n id String @id @default(ulid())\n code String @unique\n name String\n VAT Decimal @db.Decimal(5, 2)\n type SKUGuildType @default(GOLD)\n is_public Boolean @default(true)\n is_domestic Boolean @default(false)\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n goods Good[]\n\n @@index([code])\n @@map(\"stock_keeping_units\")\n}\n\nmodel TriggerLog {\n id Int @id @default(autoincrement())\n message String @db.Text\n createdAt DateTime @default(now()) @db.Timestamp(0)\n name String @db.Text\n\n @@map(\"trigger_logs\")\n}\n\n// generator client {\n// provider = \"prisma-client-js\"\n// // output = \"../../src/generated/prisma\"\n// // moduleFormat = \"cjs\"\n// previewFeatures = [\"views\"]\n// }\n\n// datasource db {\n// provider = \"mysql\"\n// }\n\ngenerator client {\n provider = \"prisma-client\"\n output = \"../../src/generated/prisma\"\n moduleFormat = \"cjs\"\n previewFeatures = [\"views\"]\n}\n\ndatasource db {\n provider = \"mysql\"\n}\n\nmodel Customer {\n id String @id @default(ulid())\n is_favorite Boolean? @default(false)\n type CustomerType\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n deleted_at DateTime? @db.Timestamp(0)\n\n individual CustomerIndividual?\n legal CustomerLegal?\n\n sales_invoices SalesInvoice[]\n\n @@map(\"customers\")\n}\n\nmodel CustomerIndividual {\n first_name String @db.VarChar(255)\n last_name String @db.VarChar(255)\n national_id String @db.Char(10)\n mobile_number String @db.Char(15)\n\n postal_code String @db.Char(10)\n economic_code String? @db.Char(10)\n\n customer_id String @id\n customer Customer @relation(fields: [customer_id], references: [id], onDelete: Cascade)\n\n business_activity_id String\n business_activity BusinessActivity @relation(fields: [business_activity_id], references: id)\n\n @@unique([business_activity_id, national_id])\n @@index([business_activity_id])\n @@map(\"customer_individuals\")\n}\n\nmodel CustomerLegal {\n name String @db.VarChar(255)\n economic_code String @db.Char(10)\n registration_number String? @db.Char(20)\n postal_code String @db.Char(10)\n\n customer_id String @id\n customer Customer @relation(fields: [customer_id], references: [id], onDelete: Cascade)\n\n business_activity_id String\n business_activity BusinessActivity @relation(fields: [business_activity_id], references: id)\n\n @@unique([business_activity_id, economic_code])\n @@index([business_activity_id])\n @@map(\"customer_legal\")\n}\n\nenum PaymentMethodType {\n TERMINAL\n CASH\n SET_OFF\n CARD\n BANK\n CHECK\n OTHER\n}\n\nenum UnitType {\n COUNT\n GRAM\n KILOGRAM\n MILLILITER\n LITER\n METER\n HOUR\n}\n\nenum GoodPricingModel {\n STANDARD\n GOLD\n}\n\nenum CustomerType {\n INDIVIDUAL\n LEGAL\n UNKNOWN\n}\n\nenum POSStatus {\n ACTIVE\n DISABLED\n}\n\nenum POSRole {\n MANAGER\n OPERATOR\n}\n\nenum ComplexRole {\n MANAGER\n OPERATOR\n}\n\nenum BusinessRole {\n MANAGER\n OPERATOR\n}\n\nenum LicenseType {\n BASIC\n PRO\n ENTERPRISE\n}\n\nenum LicenseStatus {\n ACTIVE\n EXPIRED\n SUSPENDED\n}\n\nenum POSType {\n PSP\n MOBILE\n WEB\n API\n}\n\nenum UserType {\n LEGAL\n INDIVIDUAL\n}\n\nenum AccountType {\n ADMIN\n PROVIDER\n PARTNER\n CONSUMER\n}\n\nenum UserStatus {\n ACTIVE\n INACTIVE\n}\n\nenum AccountRole {\n OWNER\n OPERATOR\n ACCOUNTANT\n}\n\nenum AccountStatus {\n ACTIVE\n SUSPENDED\n}\n\nenum PartnerRole {\n OWNER\n MANAGER\n OPERATOR\n}\n\nenum PartnerStatus {\n ACTIVE\n SUSPENDED\n}\n\nenum ProviderRole {\n OWNER\n MANAGER\n OPERATOR\n}\n\nenum ProviderStatus {\n ACTIVE\n SUSPENDED\n}\n\nenum ConsumerRole {\n OWNER\n MANAGER\n OPERATOR\n}\n\nenum ConsumerStatus {\n ACTIVE\n SUSPENDED\n}\n\nenum TokenType {\n ACCESS\n REFRESH\n}\n\nenum ApplicationPlatform {\n ANDROID\n IOS\n}\n\nenum ApplicationReleaseType {\n STABLE\n BETA\n ALPHA\n}\n\nenum ApplicationPublisher {\n DIRECT\n CAFE_BAZAR\n MAYKET\n}\n\nenum ConsumerType {\n INDIVIDUAL\n LEGAL\n}\n\nenum PartnerFiscalSwitchType {\n NAMA\n SUN\n}\n\nenum FiscalResponseStatus {\n SUCCESS\n FAILURE\n NOT_SEND\n QUEUED\n}\n\nenum FiscalRequestType {\n MAIN\n UPDATE\n REVOKE\n REMOVE\n}\n\nenum FiscalInvoiceCustomerType {\n Unknown\n Known\n}\n\nenum SKUGuildType {\n GOLD\n}\n\nmodel Guild {\n id String @id @default(ulid())\n name String\n code String?\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n business_activities BusinessActivity[]\n good_categories GoodCategory[]\n\n @@map(\"guilds\")\n}\n\nmodel SalesInvoice {\n id String @id @default(uuid())\n code String @unique @db.VarChar(100)\n total_amount Decimal @db.Decimal(15, 2)\n invoice_number Int @db.Int()\n invoice_date DateTime @default(now()) @db.Timestamp(0)\n\n notes String? @db.Text\n unknown_customer Json? @db.Json\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n\n customer_id String?\n customer Customer? @relation(fields: [customer_id], references: [id])\n\n consumer_account_id String\n consumer_account ConsumerAccount @relation(fields: [consumer_account_id], references: [id])\n\n pos_id String\n pos Pos @relation(fields: [pos_id], references: [id])\n\n fiscal SaleInvoiceFiscals?\n\n items SalesInvoiceItem[]\n payments SalesInvoicePayment[]\n\n @@unique([invoice_number, pos_id])\n @@map(\"sales_invoices\")\n}\n\nmodel SalesInvoiceItem {\n id String @id @default(ulid())\n quantity Decimal @db.Decimal(10, 0)\n measure_unit_text String @db.VarChar(50)\n measure_unit_code String @db.VarChar(50)\n sku_code String @db.VarChar(50)\n sku_vat Decimal @default(0.00) @db.Decimal(15, 2)\n unit_price Decimal @default(0.00) @db.Decimal(15, 2)\n total_amount Decimal @default(0.00) @db.Decimal(15, 2)\n created_at DateTime @default(now()) @db.Timestamp(0)\n discount Decimal @default(0.00) @db.Decimal(15, 2)\n notes String? @db.Text\n\n payload Json?\n good_snapshot Json?\n\n invoice_id String\n invoice SalesInvoice @relation(fields: [invoice_id], references: [id])\n\n good_id String?\n good Good? @relation(fields: [good_id], references: [id])\n\n service_id String?\n service Service? @relation(fields: [service_id], references: [id])\n\n @@index([invoice_id, good_id])\n @@map(\"sales_invoice_items\")\n}\n\nmodel SaleInvoiceFiscals {\n id String @id @default(ulid())\n\n retry_count Int @default(0)\n last_attempt_at DateTime? @db.Timestamp(0)\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt() @db.Timestamp(0)\n\n invoice_id String @unique\n invoice SalesInvoice @relation(fields: [invoice_id], references: [id], onDelete: Cascade)\n\n attempts SaleInvoiceFiscalAttempts[]\n\n @@map(\"sale_invoice_fiscals\")\n}\n\nmodel SaleInvoiceFiscalAttempts {\n id String @id @default(ulid())\n\n attempt_no Int\n status FiscalResponseStatus\n tax_id String? @unique @db.VarChar(191)\n type FiscalRequestType\n\n request_payload Json?\n response_payload Json?\n error_message String? @db.Text\n\n sent_at DateTime? @db.Timestamp(0)\n received_at DateTime? @db.Timestamp(0)\n created_at DateTime @default(now()) @db.Timestamp(0)\n\n fiscal_id String\n fiscal SaleInvoiceFiscals @relation(fields: [fiscal_id], references: [id], onDelete: Cascade)\n\n @@unique([fiscal_id, attempt_no])\n @@index([status])\n @@index([tax_id])\n @@map(\"sale_invoice_fiscal_attempts\")\n}\n\nmodel SalesInvoicePayment {\n id String @id @default(ulid())\n amount Decimal @db.Decimal(15, 2)\n payment_method PaymentMethodType\n paid_at DateTime @db.Timestamp(0)\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n\n invoice_id String\n invoice SalesInvoice @relation(fields: [invoice_id], references: [id])\n\n terminal_info SalesInvoicePaymentTerminalInfo?\n\n @@index([invoice_id])\n @@map(\"sales_invoice_payments\")\n}\n\nmodel SalesInvoicePaymentTerminalInfo {\n id String @id @default(ulid())\n terminal_id String\n stan String\n rrn String\n transaction_date_time DateTime\n customer_card_no String?\n description String?\n\n created_at DateTime @default(now()) @db.Timestamp(0)\n\n payment_id String @unique\n payment SalesInvoicePayment @relation(fields: [payment_id], references: [id])\n\n @@unique([terminal_id, stan, rrn, payment_id])\n @@map(\"sales_invoice_payment_terminal_info\")\n}\n\nmodel Service {\n id String @id @default(ulid())\n name String @db.VarChar(255)\n description String? @db.Text\n sku String @unique() @db.VarChar(100)\n local_sku String? @unique() @db.VarChar(100)\n barcode String? @unique() @db.VarChar(100)\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n deleted_at DateTime? @db.Timestamp(0)\n category_id String?\n base_sale_price Decimal @default(0.00) @db.Decimal(15, 0)\n account_id String\n complex_id String\n\n category ServiceCategory? @relation(fields: [category_id], references: [id])\n sales_invoice_items SalesInvoiceItem[]\n\n @@index([category_id])\n @@map(\"services\")\n}\n\nmodel ServiceCategory {\n id String @id @default(ulid())\n name String @db.VarChar(100)\n description String? @db.Text\n image_url String? @db.VarChar(255)\n account_id String\n complex_id String\n created_at DateTime @default(now()) @db.Timestamp(0)\n updated_at DateTime @updatedAt @db.Timestamp(0)\n deleted_at DateTime? @db.Timestamp(0)\n\n services Service[]\n\n @@map(\"service_categories\")\n}\n", "runtimeDataModel": { "models": {}, "enums": {}, @@ -34,10 +34,10 @@ const config: runtime.GetPrismaClientConfig = { } } -config.runtimeDataModel = JSON.parse("{\"models\":{\"AdminAccount\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"admin_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"admin\",\"kind\":\"object\",\"type\":\"Admin\",\"relationName\":\"AdminToAdminAccount\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToAdminAccount\"}],\"dbName\":\"admin_accounts\"},\"Admin\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mobile_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"national_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"first_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"last_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"AdminAccount\",\"relationName\":\"AdminToAdminAccount\"}],\"dbName\":\"admins\"},\"Account\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"username\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"AccountStatus\"},{\"name\":\"type\",\"kind\":\"enum\",\"type\":\"AccountType\"},{\"name\":\"admin_account\",\"kind\":\"object\",\"type\":\"AdminAccount\",\"relationName\":\"AccountToAdminAccount\"},{\"name\":\"provider_account\",\"kind\":\"object\",\"type\":\"ProviderAccount\",\"relationName\":\"AccountToProviderAccount\"},{\"name\":\"partner_account\",\"kind\":\"object\",\"type\":\"PartnerAccount\",\"relationName\":\"AccountToPartnerAccount\"},{\"name\":\"consumer_account\",\"kind\":\"object\",\"type\":\"ConsumerAccount\",\"relationName\":\"AccountToConsumerAccount\"}],\"dbName\":\"accounts\"},\"DeviceBrand\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"devices\",\"kind\":\"object\",\"type\":\"Device\",\"relationName\":\"DeviceToDeviceBrand\"}],\"dbName\":\"device_brands\"},\"Device\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"os_version\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"brand_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"brand\",\"kind\":\"object\",\"type\":\"DeviceBrand\",\"relationName\":\"DeviceToDeviceBrand\"},{\"name\":\"poses\",\"kind\":\"object\",\"type\":\"Pos\",\"relationName\":\"DeviceToPos\"}],\"dbName\":\"devices\"},\"LicenseChargeTransaction\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"activation_expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"tracking_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"purchased_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"partner_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"partner\",\"kind\":\"object\",\"type\":\"Partner\",\"relationName\":\"LicenseChargeTransactionToPartner\"},{\"name\":\"licenses\",\"kind\":\"object\",\"type\":\"License\",\"relationName\":\"LicenseToLicenseChargeTransaction\"}],\"dbName\":\"license_charged_transactions\"},\"License\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"accounts_limit\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"charge_transaction_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"charge_transaction\",\"kind\":\"object\",\"type\":\"LicenseChargeTransaction\",\"relationName\":\"LicenseToLicenseChargeTransaction\"},{\"name\":\"activation\",\"kind\":\"object\",\"type\":\"LicenseActivation\",\"relationName\":\"LicenseToLicenseActivation\"}],\"dbName\":\"licenses\"},\"LicenseActivation\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"starts_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"license_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"license\",\"kind\":\"object\",\"type\":\"License\",\"relationName\":\"LicenseToLicenseActivation\"},{\"name\":\"business_activity_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"business_activity\",\"kind\":\"object\",\"type\":\"BusinessActivity\",\"relationName\":\"BusinessActivityToLicenseActivation\"},{\"name\":\"license_renews\",\"kind\":\"object\",\"type\":\"LicenseRenew\",\"relationName\":\"LicenseActivationToLicenseRenew\"},{\"name\":\"account_allocations\",\"kind\":\"object\",\"type\":\"LicenseAccountAllocation\",\"relationName\":\"LicenseAccountAllocationToLicenseActivation\"}],\"dbName\":\"licenses_activated\"},\"LicenseRenewChargeTransaction\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"activation_expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"tracking_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"purchased_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"partner_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"partner\",\"kind\":\"object\",\"type\":\"Partner\",\"relationName\":\"LicenseRenewChargeTransactionToPartner\"},{\"name\":\"license_renews\",\"kind\":\"object\",\"type\":\"LicenseRenew\",\"relationName\":\"LicenseRenewToLicenseRenewChargeTransaction\"}],\"dbName\":\"license_renew_charge_transaction\"},\"LicenseRenew\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"charge_transaction_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"charge_transaction\",\"kind\":\"object\",\"type\":\"LicenseRenewChargeTransaction\",\"relationName\":\"LicenseRenewToLicenseRenewChargeTransaction\"},{\"name\":\"activation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"activation\",\"kind\":\"object\",\"type\":\"LicenseActivation\",\"relationName\":\"LicenseActivationToLicenseRenew\"}],\"dbName\":\"license_renew\"},\"PartnerAccountQuotaChargeTransaction\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"activation_expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"tracking_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"purchased_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"partner_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"partner\",\"kind\":\"object\",\"type\":\"Partner\",\"relationName\":\"PartnerToPartnerAccountQuotaChargeTransaction\"},{\"name\":\"credits\",\"kind\":\"object\",\"type\":\"PartnerAccountQuotaCredit\",\"relationName\":\"PartnerAccountQuotaChargeTransactionToPartnerAccountQuotaCredit\"}],\"dbName\":\"partner_account_quota_charge_transaction\"},\"PartnerAccountQuotaCredit\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"charge_transaction_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"charge_transaction\",\"kind\":\"object\",\"type\":\"PartnerAccountQuotaChargeTransaction\",\"relationName\":\"PartnerAccountQuotaChargeTransactionToPartnerAccountQuotaCredit\"},{\"name\":\"allocation\",\"kind\":\"object\",\"type\":\"LicenseAccountAllocation\",\"relationName\":\"LicenseAccountAllocationToPartnerAccountQuotaCredit\"}],\"dbName\":\"partner_account_quota_credit\"},\"LicenseAccountAllocation\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"license_activation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"license_activation\",\"kind\":\"object\",\"type\":\"LicenseActivation\",\"relationName\":\"LicenseAccountAllocationToLicenseActivation\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"ConsumerAccount\",\"relationName\":\"ConsumerAccountToLicenseAccountAllocation\"},{\"name\":\"credit_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"credit\",\"kind\":\"object\",\"type\":\"PartnerAccountQuotaCredit\",\"relationName\":\"LicenseAccountAllocationToPartnerAccountQuotaCredit\"}],\"dbName\":\"license_account_allocation\"},\"PartnerAccount\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"PartnerRole\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"partner_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"partner\",\"kind\":\"object\",\"type\":\"Partner\",\"relationName\":\"PartnerToPartnerAccount\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToPartnerAccount\"}],\"dbName\":\"partner_accounts\"},\"Partner\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"PartnerStatus\"},{\"name\":\"fiscal_switch_type\",\"kind\":\"enum\",\"type\":\"PartnerFiscalSwitchType\"},{\"name\":\"logo_url\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"PartnerAccount\",\"relationName\":\"PartnerToPartnerAccount\"},{\"name\":\"consumers_individual\",\"kind\":\"object\",\"type\":\"ConsumerIndividual\",\"relationName\":\"ConsumerIndividualToPartner\"},{\"name\":\"consumers_legal\",\"kind\":\"object\",\"type\":\"ConsumerLegal\",\"relationName\":\"ConsumerLegalToPartner\"},{\"name\":\"license_charge_transactions\",\"kind\":\"object\",\"type\":\"LicenseChargeTransaction\",\"relationName\":\"LicenseChargeTransactionToPartner\"},{\"name\":\"account_quota_charge_transactions\",\"kind\":\"object\",\"type\":\"PartnerAccountQuotaChargeTransaction\",\"relationName\":\"PartnerToPartnerAccountQuotaChargeTransaction\"},{\"name\":\"license_renew_charge_transactions\",\"kind\":\"object\",\"type\":\"LicenseRenewChargeTransaction\",\"relationName\":\"LicenseRenewChargeTransactionToPartner\"}],\"dbName\":\"partners\"},\"PermissionConsumer\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"consumer_account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"consumer_account\",\"kind\":\"object\",\"type\":\"ConsumerAccount\",\"relationName\":\"ConsumerAccountToPermissionConsumer\"},{\"name\":\"pos_permissions\",\"kind\":\"object\",\"type\":\"PermissionPos\",\"relationName\":\"PermissionConsumerToPermissionPos\"},{\"name\":\"complex_permissions\",\"kind\":\"object\",\"type\":\"PermissionComplex\",\"relationName\":\"PermissionComplexToPermissionConsumer\"},{\"name\":\"business_permissions\",\"kind\":\"object\",\"type\":\"PermissionBusiness\",\"relationName\":\"PermissionBusinessToPermissionConsumer\"}],\"dbName\":\"permission_consumers\"},\"PermissionPos\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"POSRole\"},{\"name\":\"pos_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"permission_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"pos\",\"kind\":\"object\",\"type\":\"Pos\",\"relationName\":\"PermissionPosToPos\"},{\"name\":\"permission\",\"kind\":\"object\",\"type\":\"PermissionConsumer\",\"relationName\":\"PermissionConsumerToPermissionPos\"}],\"dbName\":\"permission_poses\"},\"PermissionComplex\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"ComplexRole\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"permission_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complex\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"ComplexToPermissionComplex\"},{\"name\":\"permission\",\"kind\":\"object\",\"type\":\"PermissionConsumer\",\"relationName\":\"PermissionComplexToPermissionConsumer\"}],\"dbName\":\"permission_complexes\"},\"PermissionBusiness\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"BusinessRole\"},{\"name\":\"business_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"permission_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"business\",\"kind\":\"object\",\"type\":\"BusinessActivity\",\"relationName\":\"BusinessActivityToPermissionBusiness\"},{\"name\":\"permission\",\"kind\":\"object\",\"type\":\"PermissionConsumer\",\"relationName\":\"PermissionBusinessToPermissionConsumer\"}],\"dbName\":\"permission_business_activities\"},\"ProviderAccount\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"ProviderRole\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"provider_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider\",\"kind\":\"object\",\"type\":\"Provider\",\"relationName\":\"ProviderToProviderAccount\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToProviderAccount\"}],\"dbName\":\"provider_accounts\"},\"Provider\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"PartnerStatus\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"ProviderAccount\",\"relationName\":\"ProviderToProviderAccount\"},{\"name\":\"pos_list\",\"kind\":\"object\",\"type\":\"Pos\",\"relationName\":\"PosToProvider\"}],\"dbName\":\"providers\"},\"ConsumerDevices\":{\"fields\":[{\"name\":\"uuid\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"app_version\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"build_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"platform\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"brand\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"model\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"device\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"publisher\",\"kind\":\"enum\",\"type\":\"ApplicationPublisher\"},{\"name\":\"os_version\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sdk_version\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"release_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_agent\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"browser_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fcm_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"consumer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"consumer\",\"kind\":\"object\",\"type\":\"Consumer\",\"relationName\":\"ConsumerToConsumerDevices\"}],\"dbName\":\"consumer_devices\"},\"ApplicationReleasedInfo\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"version\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"build_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_minimum_supported\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"release_type\",\"kind\":\"enum\",\"type\":\"ApplicationReleaseType\"},{\"name\":\"platform\",\"kind\":\"enum\",\"type\":\"ApplicationPlatform\"},{\"name\":\"notes\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"release_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"application_released_info\"},\"ConsumerAccount\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"ConsumerRole\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"consumer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"consumer\",\"kind\":\"object\",\"type\":\"Consumer\",\"relationName\":\"ConsumerToConsumerAccount\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToConsumerAccount\"},{\"name\":\"pos\",\"kind\":\"object\",\"type\":\"Pos\",\"relationName\":\"ConsumerAccountToPos\"},{\"name\":\"permission\",\"kind\":\"object\",\"type\":\"PermissionConsumer\",\"relationName\":\"ConsumerAccountToPermissionConsumer\"},{\"name\":\"account_allocation\",\"kind\":\"object\",\"type\":\"LicenseAccountAllocation\",\"relationName\":\"ConsumerAccountToLicenseAccountAllocation\"},{\"name\":\"sales_invoices\",\"kind\":\"object\",\"type\":\"SalesInvoice\",\"relationName\":\"ConsumerAccountToSalesInvoice\"}],\"dbName\":\"consumer_accounts\"},\"Consumer\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"type\",\"kind\":\"enum\",\"type\":\"ConsumerType\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"ConsumerStatus\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"ConsumerAccount\",\"relationName\":\"ConsumerToConsumerAccount\"},{\"name\":\"business_activities\",\"kind\":\"object\",\"type\":\"BusinessActivity\",\"relationName\":\"BusinessActivityToConsumer\"},{\"name\":\"devices\",\"kind\":\"object\",\"type\":\"ConsumerDevices\",\"relationName\":\"ConsumerToConsumerDevices\"},{\"name\":\"individual\",\"kind\":\"object\",\"type\":\"ConsumerIndividual\",\"relationName\":\"ConsumerToConsumerIndividual\"},{\"name\":\"legal\",\"kind\":\"object\",\"type\":\"ConsumerLegal\",\"relationName\":\"ConsumerToConsumerLegal\"}],\"dbName\":\"consumers\"},\"ConsumerIndividual\":{\"fields\":[{\"name\":\"first_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"last_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mobile_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"national_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"partner_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"partner\",\"kind\":\"object\",\"type\":\"Partner\",\"relationName\":\"ConsumerIndividualToPartner\"},{\"name\":\"consumer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"consumer\",\"kind\":\"object\",\"type\":\"Consumer\",\"relationName\":\"ConsumerToConsumerIndividual\"}],\"dbName\":\"consumers_individual\"},\"ConsumerLegal\":{\"fields\":[{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"registration_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"partner_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"partner\",\"kind\":\"object\",\"type\":\"Partner\",\"relationName\":\"ConsumerLegalToPartner\"},{\"name\":\"consumer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"consumer\",\"kind\":\"object\",\"type\":\"Consumer\",\"relationName\":\"ConsumerToConsumerLegal\"}],\"dbName\":\"consumers_legal\"},\"BusinessActivity\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"economic_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fiscal_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"partner_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"guild_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"guild\",\"kind\":\"object\",\"type\":\"Guild\",\"relationName\":\"BusinessActivityToGuild\"},{\"name\":\"consumer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"consumer\",\"kind\":\"object\",\"type\":\"Consumer\",\"relationName\":\"BusinessActivityToConsumer\"},{\"name\":\"license_activation\",\"kind\":\"object\",\"type\":\"LicenseActivation\",\"relationName\":\"BusinessActivityToLicenseActivation\"},{\"name\":\"complexes\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"BusinessActivityToComplex\"},{\"name\":\"permission_businesses\",\"kind\":\"object\",\"type\":\"PermissionBusiness\",\"relationName\":\"BusinessActivityToPermissionBusiness\"},{\"name\":\"goods\",\"kind\":\"object\",\"type\":\"Good\",\"relationName\":\"BusinessActivityToGood\"},{\"name\":\"customer_individuals\",\"kind\":\"object\",\"type\":\"CustomerIndividual\",\"relationName\":\"BusinessActivityToCustomerIndividual\"},{\"name\":\"customer_legals\",\"kind\":\"object\",\"type\":\"CustomerLegal\",\"relationName\":\"BusinessActivityToCustomerLegal\"}],\"dbName\":\"business_activities\"},\"Complex\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"branch_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"address\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"business_activity_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"business_activity\",\"kind\":\"object\",\"type\":\"BusinessActivity\",\"relationName\":\"BusinessActivityToComplex\"},{\"name\":\"pos_list\",\"kind\":\"object\",\"type\":\"Pos\",\"relationName\":\"ComplexToPos\"},{\"name\":\"good_categories\",\"kind\":\"object\",\"type\":\"GoodCategory\",\"relationName\":\"ComplexToGoodCategory\"},{\"name\":\"permission_complexes\",\"kind\":\"object\",\"type\":\"PermissionComplex\",\"relationName\":\"ComplexToPermissionComplex\"}],\"dbName\":\"complexes\"},\"Pos\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"model\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"serial_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"POSStatus\"},{\"name\":\"pos_type\",\"kind\":\"enum\",\"type\":\"POSType\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complex\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"ComplexToPos\"},{\"name\":\"device_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"device\",\"kind\":\"object\",\"type\":\"Device\",\"relationName\":\"DeviceToPos\"},{\"name\":\"provider_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider\",\"kind\":\"object\",\"type\":\"Provider\",\"relationName\":\"PosToProvider\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"ConsumerAccount\",\"relationName\":\"ConsumerAccountToPos\"},{\"name\":\"permission_pos\",\"kind\":\"object\",\"type\":\"PermissionPos\",\"relationName\":\"PermissionPosToPos\"},{\"name\":\"sales_invoices\",\"kind\":\"object\",\"type\":\"SalesInvoice\",\"relationName\":\"PosToSalesInvoice\"}],\"dbName\":\"poses\"},\"TriggerLog\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":\"trigger_logs\"},\"Customer\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_favorite\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"type\",\"kind\":\"enum\",\"type\":\"CustomerType\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deleted_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"individual\",\"kind\":\"object\",\"type\":\"CustomerIndividual\",\"relationName\":\"CustomerToCustomerIndividual\"},{\"name\":\"legal\",\"kind\":\"object\",\"type\":\"CustomerLegal\",\"relationName\":\"CustomerToCustomerLegal\"},{\"name\":\"sales_invoices\",\"kind\":\"object\",\"type\":\"SalesInvoice\",\"relationName\":\"CustomerToSalesInvoice\"}],\"dbName\":\"customers\"},\"CustomerIndividual\":{\"fields\":[{\"name\":\"first_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"last_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"national_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mobile_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"postal_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"economic_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"customer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"customer\",\"kind\":\"object\",\"type\":\"Customer\",\"relationName\":\"CustomerToCustomerIndividual\"},{\"name\":\"business_activity_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"business_activity\",\"kind\":\"object\",\"type\":\"BusinessActivity\",\"relationName\":\"BusinessActivityToCustomerIndividual\"}],\"dbName\":\"customer_individuals\"},\"CustomerLegal\":{\"fields\":[{\"name\":\"company_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"economic_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"registration_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"postal_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"customer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"customer\",\"kind\":\"object\",\"type\":\"Customer\",\"relationName\":\"CustomerToCustomerLegal\"},{\"name\":\"business_activity_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"business_activity\",\"kind\":\"object\",\"type\":\"BusinessActivity\",\"relationName\":\"BusinessActivityToCustomerLegal\"}],\"dbName\":\"customer_legal\"},\"Good\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_default_guild_good\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"sku\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"unit_type\",\"kind\":\"enum\",\"type\":\"UnitType\"},{\"name\":\"pricing_model\",\"kind\":\"enum\",\"type\":\"GoodPricingModel\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"local_sku\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"barcode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"base_sale_price\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"image_url\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deleted_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"category_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"category\",\"kind\":\"object\",\"type\":\"GoodCategory\",\"relationName\":\"GoodToGoodCategory\"},{\"name\":\"business_activity_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"business_activity\",\"kind\":\"object\",\"type\":\"BusinessActivity\",\"relationName\":\"BusinessActivityToGood\"},{\"name\":\"sales_invoice_items\",\"kind\":\"object\",\"type\":\"SalesInvoiceItem\",\"relationName\":\"GoodToSalesInvoiceItem\"}],\"dbName\":\"goods\"},\"GoodCategory\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"image_url\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_default_guild_good\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"guild_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deleted_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"goods\",\"kind\":\"object\",\"type\":\"Good\",\"relationName\":\"GoodToGoodCategory\"},{\"name\":\"guild\",\"kind\":\"object\",\"type\":\"Guild\",\"relationName\":\"GoodCategoryToGuild\"},{\"name\":\"complex\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"ComplexToGoodCategory\"}],\"dbName\":\"good_categories\"},\"Guild\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"business_activities\",\"kind\":\"object\",\"type\":\"BusinessActivity\",\"relationName\":\"BusinessActivityToGuild\"},{\"name\":\"good_categories\",\"kind\":\"object\",\"type\":\"GoodCategory\",\"relationName\":\"GoodCategoryToGuild\"}],\"dbName\":\"guilds\"},\"SalesInvoice\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"total_amount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"invoice_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"invoice_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"notes\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"unknown_customer\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"customer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"customer\",\"kind\":\"object\",\"type\":\"Customer\",\"relationName\":\"CustomerToSalesInvoice\"},{\"name\":\"consumer_account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"consumer_account\",\"kind\":\"object\",\"type\":\"ConsumerAccount\",\"relationName\":\"ConsumerAccountToSalesInvoice\"},{\"name\":\"pos_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"pos\",\"kind\":\"object\",\"type\":\"Pos\",\"relationName\":\"PosToSalesInvoice\"},{\"name\":\"fiscal\",\"kind\":\"object\",\"type\":\"SaleInvoiceFiscals\",\"relationName\":\"SaleInvoiceFiscalsToSalesInvoice\"},{\"name\":\"items\",\"kind\":\"object\",\"type\":\"SalesInvoiceItem\",\"relationName\":\"SalesInvoiceToSalesInvoiceItem\"},{\"name\":\"payments\",\"kind\":\"object\",\"type\":\"SalesInvoicePayment\",\"relationName\":\"SalesInvoiceToSalesInvoicePayment\"}],\"dbName\":\"sales_invoices\"},\"SalesInvoiceItem\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"quantity\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"unit_type\",\"kind\":\"enum\",\"type\":\"UnitType\"},{\"name\":\"unit_price\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"total_amount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"discount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"notes\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"payload\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"good_snapshot\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"invoice_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"invoice\",\"kind\":\"object\",\"type\":\"SalesInvoice\",\"relationName\":\"SalesInvoiceToSalesInvoiceItem\"},{\"name\":\"good_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"good\",\"kind\":\"object\",\"type\":\"Good\",\"relationName\":\"GoodToSalesInvoiceItem\"},{\"name\":\"service_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"service\",\"kind\":\"object\",\"type\":\"Service\",\"relationName\":\"SalesInvoiceItemToService\"}],\"dbName\":\"sales_invoice_items\"},\"SaleInvoiceFiscals\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"retry_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"last_attempt_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"invoice_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"invoice\",\"kind\":\"object\",\"type\":\"SalesInvoice\",\"relationName\":\"SaleInvoiceFiscalsToSalesInvoice\"},{\"name\":\"attempts\",\"kind\":\"object\",\"type\":\"SaleInvoiceFiscalAttempts\",\"relationName\":\"SaleInvoiceFiscalAttemptsToSaleInvoiceFiscals\"}],\"dbName\":\"sale_invoice_fiscals\"},\"SaleInvoiceFiscalAttempts\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"attempt_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"tax_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"request_payload\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"response_payload\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"error_message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sent_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"received_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"fiscal_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fiscal\",\"kind\":\"object\",\"type\":\"SaleInvoiceFiscals\",\"relationName\":\"SaleInvoiceFiscalAttemptsToSaleInvoiceFiscals\"}],\"dbName\":\"sale_invoice_fiscal_attempts\"},\"SalesInvoicePayment\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"amount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"payment_method\",\"kind\":\"enum\",\"type\":\"PaymentMethodType\"},{\"name\":\"paid_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"invoice_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"invoice\",\"kind\":\"object\",\"type\":\"SalesInvoice\",\"relationName\":\"SalesInvoiceToSalesInvoicePayment\"},{\"name\":\"terminal_info\",\"kind\":\"object\",\"type\":\"SalesInvoicePaymentTerminalInfo\",\"relationName\":\"SalesInvoicePaymentToSalesInvoicePaymentTerminalInfo\"}],\"dbName\":\"sales_invoice_payments\"},\"SalesInvoicePaymentTerminalInfo\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"terminal_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"stan\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"rrn\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"transaction_date_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"customer_card_no\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"payment_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"payment\",\"kind\":\"object\",\"type\":\"SalesInvoicePayment\",\"relationName\":\"SalesInvoicePaymentToSalesInvoicePaymentTerminalInfo\"}],\"dbName\":\"sales_invoice_payment_terminal_info\"},\"Service\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sku\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"local_sku\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"barcode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deleted_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"category_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"base_sale_price\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"category\",\"kind\":\"object\",\"type\":\"ServiceCategory\",\"relationName\":\"ServiceToServiceCategory\"},{\"name\":\"sales_invoice_items\",\"kind\":\"object\",\"type\":\"SalesInvoiceItem\",\"relationName\":\"SalesInvoiceItemToService\"}],\"dbName\":\"services\"},\"ServiceCategory\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"image_url\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deleted_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"services\",\"kind\":\"object\",\"type\":\"Service\",\"relationName\":\"ServiceToServiceCategory\"}],\"dbName\":\"service_categories\"}},\"enums\":{},\"types\":{}}") +config.runtimeDataModel = JSON.parse("{\"models\":{\"AdminAccount\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"admin_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"admin\",\"kind\":\"object\",\"type\":\"Admin\",\"relationName\":\"AdminToAdminAccount\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToAdminAccount\"}],\"dbName\":\"admin_accounts\"},\"Admin\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mobile_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"national_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"first_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"last_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"AdminAccount\",\"relationName\":\"AdminToAdminAccount\"}],\"dbName\":\"admins\"},\"Account\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"username\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"AccountStatus\"},{\"name\":\"type\",\"kind\":\"enum\",\"type\":\"AccountType\"},{\"name\":\"admin_account\",\"kind\":\"object\",\"type\":\"AdminAccount\",\"relationName\":\"AccountToAdminAccount\"},{\"name\":\"provider_account\",\"kind\":\"object\",\"type\":\"ProviderAccount\",\"relationName\":\"AccountToProviderAccount\"},{\"name\":\"partner_account\",\"kind\":\"object\",\"type\":\"PartnerAccount\",\"relationName\":\"AccountToPartnerAccount\"},{\"name\":\"consumer_account\",\"kind\":\"object\",\"type\":\"ConsumerAccount\",\"relationName\":\"AccountToConsumerAccount\"}],\"dbName\":\"accounts\"},\"DeviceBrand\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"devices\",\"kind\":\"object\",\"type\":\"Device\",\"relationName\":\"DeviceToDeviceBrand\"}],\"dbName\":\"device_brands\"},\"Device\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"os_version\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"brand_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"brand\",\"kind\":\"object\",\"type\":\"DeviceBrand\",\"relationName\":\"DeviceToDeviceBrand\"},{\"name\":\"poses\",\"kind\":\"object\",\"type\":\"Pos\",\"relationName\":\"DeviceToPos\"}],\"dbName\":\"devices\"},\"LicenseChargeTransaction\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"activation_expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"tracking_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"purchased_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"partner_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"partner\",\"kind\":\"object\",\"type\":\"Partner\",\"relationName\":\"LicenseChargeTransactionToPartner\"},{\"name\":\"licenses\",\"kind\":\"object\",\"type\":\"License\",\"relationName\":\"LicenseToLicenseChargeTransaction\"}],\"dbName\":\"license_charged_transactions\"},\"License\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"accounts_limit\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"charge_transaction_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"charge_transaction\",\"kind\":\"object\",\"type\":\"LicenseChargeTransaction\",\"relationName\":\"LicenseToLicenseChargeTransaction\"},{\"name\":\"activation\",\"kind\":\"object\",\"type\":\"LicenseActivation\",\"relationName\":\"LicenseToLicenseActivation\"}],\"dbName\":\"licenses\"},\"LicenseActivation\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"starts_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"license_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"license\",\"kind\":\"object\",\"type\":\"License\",\"relationName\":\"LicenseToLicenseActivation\"},{\"name\":\"business_activity_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"business_activity\",\"kind\":\"object\",\"type\":\"BusinessActivity\",\"relationName\":\"BusinessActivityToLicenseActivation\"},{\"name\":\"license_renews\",\"kind\":\"object\",\"type\":\"LicenseRenew\",\"relationName\":\"LicenseActivationToLicenseRenew\"},{\"name\":\"account_allocations\",\"kind\":\"object\",\"type\":\"LicenseAccountAllocation\",\"relationName\":\"LicenseAccountAllocationToLicenseActivation\"}],\"dbName\":\"licenses_activated\"},\"LicenseRenewChargeTransaction\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"activation_expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"tracking_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"purchased_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"partner_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"partner\",\"kind\":\"object\",\"type\":\"Partner\",\"relationName\":\"LicenseRenewChargeTransactionToPartner\"},{\"name\":\"license_renews\",\"kind\":\"object\",\"type\":\"LicenseRenew\",\"relationName\":\"LicenseRenewToLicenseRenewChargeTransaction\"}],\"dbName\":\"license_renew_charge_transaction\"},\"LicenseRenew\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"charge_transaction_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"charge_transaction\",\"kind\":\"object\",\"type\":\"LicenseRenewChargeTransaction\",\"relationName\":\"LicenseRenewToLicenseRenewChargeTransaction\"},{\"name\":\"activation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"activation\",\"kind\":\"object\",\"type\":\"LicenseActivation\",\"relationName\":\"LicenseActivationToLicenseRenew\"}],\"dbName\":\"license_renew\"},\"PartnerAccountQuotaChargeTransaction\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"activation_expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"tracking_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"purchased_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"partner_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"partner\",\"kind\":\"object\",\"type\":\"Partner\",\"relationName\":\"PartnerToPartnerAccountQuotaChargeTransaction\"},{\"name\":\"credits\",\"kind\":\"object\",\"type\":\"PartnerAccountQuotaCredit\",\"relationName\":\"PartnerAccountQuotaChargeTransactionToPartnerAccountQuotaCredit\"}],\"dbName\":\"partner_account_quota_charge_transaction\"},\"PartnerAccountQuotaCredit\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"charge_transaction_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"charge_transaction\",\"kind\":\"object\",\"type\":\"PartnerAccountQuotaChargeTransaction\",\"relationName\":\"PartnerAccountQuotaChargeTransactionToPartnerAccountQuotaCredit\"},{\"name\":\"allocation\",\"kind\":\"object\",\"type\":\"LicenseAccountAllocation\",\"relationName\":\"LicenseAccountAllocationToPartnerAccountQuotaCredit\"}],\"dbName\":\"partner_account_quota_credit\"},\"LicenseAccountAllocation\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"license_activation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"license_activation\",\"kind\":\"object\",\"type\":\"LicenseActivation\",\"relationName\":\"LicenseAccountAllocationToLicenseActivation\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"ConsumerAccount\",\"relationName\":\"ConsumerAccountToLicenseAccountAllocation\"},{\"name\":\"credit_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"credit\",\"kind\":\"object\",\"type\":\"PartnerAccountQuotaCredit\",\"relationName\":\"LicenseAccountAllocationToPartnerAccountQuotaCredit\"}],\"dbName\":\"license_account_allocation\"},\"PartnerAccount\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"PartnerRole\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"partner_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"partner\",\"kind\":\"object\",\"type\":\"Partner\",\"relationName\":\"PartnerToPartnerAccount\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToPartnerAccount\"}],\"dbName\":\"partner_accounts\"},\"Partner\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"PartnerStatus\"},{\"name\":\"fiscal_switch_type\",\"kind\":\"enum\",\"type\":\"PartnerFiscalSwitchType\"},{\"name\":\"logo_url\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"PartnerAccount\",\"relationName\":\"PartnerToPartnerAccount\"},{\"name\":\"consumers_individual\",\"kind\":\"object\",\"type\":\"ConsumerIndividual\",\"relationName\":\"ConsumerIndividualToPartner\"},{\"name\":\"consumers_legal\",\"kind\":\"object\",\"type\":\"ConsumerLegal\",\"relationName\":\"ConsumerLegalToPartner\"},{\"name\":\"license_charge_transactions\",\"kind\":\"object\",\"type\":\"LicenseChargeTransaction\",\"relationName\":\"LicenseChargeTransactionToPartner\"},{\"name\":\"account_quota_charge_transactions\",\"kind\":\"object\",\"type\":\"PartnerAccountQuotaChargeTransaction\",\"relationName\":\"PartnerToPartnerAccountQuotaChargeTransaction\"},{\"name\":\"license_renew_charge_transactions\",\"kind\":\"object\",\"type\":\"LicenseRenewChargeTransaction\",\"relationName\":\"LicenseRenewChargeTransactionToPartner\"}],\"dbName\":\"partners\"},\"PermissionConsumer\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"consumer_account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"consumer_account\",\"kind\":\"object\",\"type\":\"ConsumerAccount\",\"relationName\":\"ConsumerAccountToPermissionConsumer\"},{\"name\":\"pos_permissions\",\"kind\":\"object\",\"type\":\"PermissionPos\",\"relationName\":\"PermissionConsumerToPermissionPos\"},{\"name\":\"complex_permissions\",\"kind\":\"object\",\"type\":\"PermissionComplex\",\"relationName\":\"PermissionComplexToPermissionConsumer\"},{\"name\":\"business_permissions\",\"kind\":\"object\",\"type\":\"PermissionBusiness\",\"relationName\":\"PermissionBusinessToPermissionConsumer\"}],\"dbName\":\"permission_consumers\"},\"PermissionPos\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"POSRole\"},{\"name\":\"pos_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"permission_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"pos\",\"kind\":\"object\",\"type\":\"Pos\",\"relationName\":\"PermissionPosToPos\"},{\"name\":\"permission\",\"kind\":\"object\",\"type\":\"PermissionConsumer\",\"relationName\":\"PermissionConsumerToPermissionPos\"}],\"dbName\":\"permission_poses\"},\"PermissionComplex\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"ComplexRole\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"permission_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complex\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"ComplexToPermissionComplex\"},{\"name\":\"permission\",\"kind\":\"object\",\"type\":\"PermissionConsumer\",\"relationName\":\"PermissionComplexToPermissionConsumer\"}],\"dbName\":\"permission_complexes\"},\"PermissionBusiness\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"BusinessRole\"},{\"name\":\"business_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"permission_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"business\",\"kind\":\"object\",\"type\":\"BusinessActivity\",\"relationName\":\"BusinessActivityToPermissionBusiness\"},{\"name\":\"permission\",\"kind\":\"object\",\"type\":\"PermissionConsumer\",\"relationName\":\"PermissionBusinessToPermissionConsumer\"}],\"dbName\":\"permission_business_activities\"},\"ProviderAccount\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"ProviderRole\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"provider_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider\",\"kind\":\"object\",\"type\":\"Provider\",\"relationName\":\"ProviderToProviderAccount\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToProviderAccount\"}],\"dbName\":\"provider_accounts\"},\"Provider\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"PartnerStatus\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"ProviderAccount\",\"relationName\":\"ProviderToProviderAccount\"},{\"name\":\"pos_list\",\"kind\":\"object\",\"type\":\"Pos\",\"relationName\":\"PosToProvider\"}],\"dbName\":\"providers\"},\"ConsumerDevices\":{\"fields\":[{\"name\":\"uuid\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"app_version\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"build_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"platform\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"brand\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"model\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"device\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"publisher\",\"kind\":\"enum\",\"type\":\"ApplicationPublisher\"},{\"name\":\"os_version\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sdk_version\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"release_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_agent\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"browser_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fcm_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"consumer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"consumer\",\"kind\":\"object\",\"type\":\"Consumer\",\"relationName\":\"ConsumerToConsumerDevices\"}],\"dbName\":\"consumer_devices\"},\"ApplicationReleasedInfo\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"version\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"build_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_minimum_supported\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"release_type\",\"kind\":\"enum\",\"type\":\"ApplicationReleaseType\"},{\"name\":\"platform\",\"kind\":\"enum\",\"type\":\"ApplicationPlatform\"},{\"name\":\"notes\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"release_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"application_released_info\"},\"ConsumerAccount\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"ConsumerRole\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"consumer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"consumer\",\"kind\":\"object\",\"type\":\"Consumer\",\"relationName\":\"ConsumerToConsumerAccount\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToConsumerAccount\"},{\"name\":\"pos\",\"kind\":\"object\",\"type\":\"Pos\",\"relationName\":\"ConsumerAccountToPos\"},{\"name\":\"permission\",\"kind\":\"object\",\"type\":\"PermissionConsumer\",\"relationName\":\"ConsumerAccountToPermissionConsumer\"},{\"name\":\"account_allocation\",\"kind\":\"object\",\"type\":\"LicenseAccountAllocation\",\"relationName\":\"ConsumerAccountToLicenseAccountAllocation\"},{\"name\":\"sales_invoices\",\"kind\":\"object\",\"type\":\"SalesInvoice\",\"relationName\":\"ConsumerAccountToSalesInvoice\"}],\"dbName\":\"consumer_accounts\"},\"Consumer\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"type\",\"kind\":\"enum\",\"type\":\"ConsumerType\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"ConsumerStatus\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"ConsumerAccount\",\"relationName\":\"ConsumerToConsumerAccount\"},{\"name\":\"business_activities\",\"kind\":\"object\",\"type\":\"BusinessActivity\",\"relationName\":\"BusinessActivityToConsumer\"},{\"name\":\"devices\",\"kind\":\"object\",\"type\":\"ConsumerDevices\",\"relationName\":\"ConsumerToConsumerDevices\"},{\"name\":\"individual\",\"kind\":\"object\",\"type\":\"ConsumerIndividual\",\"relationName\":\"ConsumerToConsumerIndividual\"},{\"name\":\"legal\",\"kind\":\"object\",\"type\":\"ConsumerLegal\",\"relationName\":\"ConsumerToConsumerLegal\"}],\"dbName\":\"consumers\"},\"ConsumerIndividual\":{\"fields\":[{\"name\":\"first_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"last_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mobile_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"national_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"partner_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"partner\",\"kind\":\"object\",\"type\":\"Partner\",\"relationName\":\"ConsumerIndividualToPartner\"},{\"name\":\"consumer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"consumer\",\"kind\":\"object\",\"type\":\"Consumer\",\"relationName\":\"ConsumerToConsumerIndividual\"}],\"dbName\":\"consumers_individual\"},\"ConsumerLegal\":{\"fields\":[{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"registration_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"partner_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"partner\",\"kind\":\"object\",\"type\":\"Partner\",\"relationName\":\"ConsumerLegalToPartner\"},{\"name\":\"consumer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"consumer\",\"kind\":\"object\",\"type\":\"Consumer\",\"relationName\":\"ConsumerToConsumerLegal\"}],\"dbName\":\"consumers_legal\"},\"BusinessActivity\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"economic_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fiscal_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"partner_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"guild_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"guild\",\"kind\":\"object\",\"type\":\"Guild\",\"relationName\":\"BusinessActivityToGuild\"},{\"name\":\"consumer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"consumer\",\"kind\":\"object\",\"type\":\"Consumer\",\"relationName\":\"BusinessActivityToConsumer\"},{\"name\":\"license_activation\",\"kind\":\"object\",\"type\":\"LicenseActivation\",\"relationName\":\"BusinessActivityToLicenseActivation\"},{\"name\":\"complexes\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"BusinessActivityToComplex\"},{\"name\":\"permission_businesses\",\"kind\":\"object\",\"type\":\"PermissionBusiness\",\"relationName\":\"BusinessActivityToPermissionBusiness\"},{\"name\":\"goods\",\"kind\":\"object\",\"type\":\"Good\",\"relationName\":\"BusinessActivityToGood\"},{\"name\":\"customer_individuals\",\"kind\":\"object\",\"type\":\"CustomerIndividual\",\"relationName\":\"BusinessActivityToCustomerIndividual\"},{\"name\":\"customer_legals\",\"kind\":\"object\",\"type\":\"CustomerLegal\",\"relationName\":\"BusinessActivityToCustomerLegal\"}],\"dbName\":\"business_activities\"},\"Complex\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"branch_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"address\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"business_activity_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"business_activity\",\"kind\":\"object\",\"type\":\"BusinessActivity\",\"relationName\":\"BusinessActivityToComplex\"},{\"name\":\"pos_list\",\"kind\":\"object\",\"type\":\"Pos\",\"relationName\":\"ComplexToPos\"},{\"name\":\"good_categories\",\"kind\":\"object\",\"type\":\"GoodCategory\",\"relationName\":\"ComplexToGoodCategory\"},{\"name\":\"permission_complexes\",\"kind\":\"object\",\"type\":\"PermissionComplex\",\"relationName\":\"ComplexToPermissionComplex\"}],\"dbName\":\"complexes\"},\"Pos\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"model\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"serial_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"POSStatus\"},{\"name\":\"pos_type\",\"kind\":\"enum\",\"type\":\"POSType\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complex\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"ComplexToPos\"},{\"name\":\"device_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"device\",\"kind\":\"object\",\"type\":\"Device\",\"relationName\":\"DeviceToPos\"},{\"name\":\"provider_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider\",\"kind\":\"object\",\"type\":\"Provider\",\"relationName\":\"PosToProvider\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"ConsumerAccount\",\"relationName\":\"ConsumerAccountToPos\"},{\"name\":\"permission_pos\",\"kind\":\"object\",\"type\":\"PermissionPos\",\"relationName\":\"PermissionPosToPos\"},{\"name\":\"sales_invoices\",\"kind\":\"object\",\"type\":\"SalesInvoice\",\"relationName\":\"PosToSalesInvoice\"}],\"dbName\":\"poses\"},\"Good\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_default_guild_good\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"pricing_model\",\"kind\":\"enum\",\"type\":\"GoodPricingModel\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"local_sku\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"barcode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"base_sale_price\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"image_url\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deleted_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"sku_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sku\",\"kind\":\"object\",\"type\":\"StockKeepingUnits\",\"relationName\":\"GoodToStockKeepingUnits\"},{\"name\":\"measure_unit_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"measure_unit\",\"kind\":\"object\",\"type\":\"MeasureUnits\",\"relationName\":\"GoodToMeasureUnits\"},{\"name\":\"category_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"category\",\"kind\":\"object\",\"type\":\"GoodCategory\",\"relationName\":\"GoodToGoodCategory\"},{\"name\":\"business_activity_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"business_activity\",\"kind\":\"object\",\"type\":\"BusinessActivity\",\"relationName\":\"BusinessActivityToGood\"},{\"name\":\"sales_invoice_items\",\"kind\":\"object\",\"type\":\"SalesInvoiceItem\",\"relationName\":\"GoodToSalesInvoiceItem\"}],\"dbName\":\"goods\"},\"GoodCategory\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"image_url\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_default_guild_good\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"guild_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deleted_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"goods\",\"kind\":\"object\",\"type\":\"Good\",\"relationName\":\"GoodToGoodCategory\"},{\"name\":\"guild\",\"kind\":\"object\",\"type\":\"Guild\",\"relationName\":\"GoodCategoryToGuild\"},{\"name\":\"complex\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"ComplexToGoodCategory\"}],\"dbName\":\"good_categories\"},\"MeasureUnits\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"goods\",\"kind\":\"object\",\"type\":\"Good\",\"relationName\":\"GoodToMeasureUnits\"}],\"dbName\":\"measure_units\"},\"StockKeepingUnits\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"VAT\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"type\",\"kind\":\"enum\",\"type\":\"SKUGuildType\"},{\"name\":\"is_public\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_domestic\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"goods\",\"kind\":\"object\",\"type\":\"Good\",\"relationName\":\"GoodToStockKeepingUnits\"}],\"dbName\":\"stock_keeping_units\"},\"TriggerLog\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":\"trigger_logs\"},\"Customer\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_favorite\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"type\",\"kind\":\"enum\",\"type\":\"CustomerType\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deleted_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"individual\",\"kind\":\"object\",\"type\":\"CustomerIndividual\",\"relationName\":\"CustomerToCustomerIndividual\"},{\"name\":\"legal\",\"kind\":\"object\",\"type\":\"CustomerLegal\",\"relationName\":\"CustomerToCustomerLegal\"},{\"name\":\"sales_invoices\",\"kind\":\"object\",\"type\":\"SalesInvoice\",\"relationName\":\"CustomerToSalesInvoice\"}],\"dbName\":\"customers\"},\"CustomerIndividual\":{\"fields\":[{\"name\":\"first_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"last_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"national_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mobile_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"postal_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"economic_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"customer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"customer\",\"kind\":\"object\",\"type\":\"Customer\",\"relationName\":\"CustomerToCustomerIndividual\"},{\"name\":\"business_activity_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"business_activity\",\"kind\":\"object\",\"type\":\"BusinessActivity\",\"relationName\":\"BusinessActivityToCustomerIndividual\"}],\"dbName\":\"customer_individuals\"},\"CustomerLegal\":{\"fields\":[{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"economic_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"registration_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"postal_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"customer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"customer\",\"kind\":\"object\",\"type\":\"Customer\",\"relationName\":\"CustomerToCustomerLegal\"},{\"name\":\"business_activity_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"business_activity\",\"kind\":\"object\",\"type\":\"BusinessActivity\",\"relationName\":\"BusinessActivityToCustomerLegal\"}],\"dbName\":\"customer_legal\"},\"Guild\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"business_activities\",\"kind\":\"object\",\"type\":\"BusinessActivity\",\"relationName\":\"BusinessActivityToGuild\"},{\"name\":\"good_categories\",\"kind\":\"object\",\"type\":\"GoodCategory\",\"relationName\":\"GoodCategoryToGuild\"}],\"dbName\":\"guilds\"},\"SalesInvoice\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"total_amount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"invoice_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"invoice_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"notes\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"unknown_customer\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"customer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"customer\",\"kind\":\"object\",\"type\":\"Customer\",\"relationName\":\"CustomerToSalesInvoice\"},{\"name\":\"consumer_account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"consumer_account\",\"kind\":\"object\",\"type\":\"ConsumerAccount\",\"relationName\":\"ConsumerAccountToSalesInvoice\"},{\"name\":\"pos_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"pos\",\"kind\":\"object\",\"type\":\"Pos\",\"relationName\":\"PosToSalesInvoice\"},{\"name\":\"fiscal\",\"kind\":\"object\",\"type\":\"SaleInvoiceFiscals\",\"relationName\":\"SaleInvoiceFiscalsToSalesInvoice\"},{\"name\":\"items\",\"kind\":\"object\",\"type\":\"SalesInvoiceItem\",\"relationName\":\"SalesInvoiceToSalesInvoiceItem\"},{\"name\":\"payments\",\"kind\":\"object\",\"type\":\"SalesInvoicePayment\",\"relationName\":\"SalesInvoiceToSalesInvoicePayment\"}],\"dbName\":\"sales_invoices\"},\"SalesInvoiceItem\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"quantity\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"measure_unit_text\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"measure_unit_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sku_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sku_vat\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"unit_price\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"total_amount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"discount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"notes\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"payload\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"good_snapshot\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"invoice_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"invoice\",\"kind\":\"object\",\"type\":\"SalesInvoice\",\"relationName\":\"SalesInvoiceToSalesInvoiceItem\"},{\"name\":\"good_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"good\",\"kind\":\"object\",\"type\":\"Good\",\"relationName\":\"GoodToSalesInvoiceItem\"},{\"name\":\"service_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"service\",\"kind\":\"object\",\"type\":\"Service\",\"relationName\":\"SalesInvoiceItemToService\"}],\"dbName\":\"sales_invoice_items\"},\"SaleInvoiceFiscals\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"retry_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"last_attempt_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"invoice_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"invoice\",\"kind\":\"object\",\"type\":\"SalesInvoice\",\"relationName\":\"SaleInvoiceFiscalsToSalesInvoice\"},{\"name\":\"attempts\",\"kind\":\"object\",\"type\":\"SaleInvoiceFiscalAttempts\",\"relationName\":\"SaleInvoiceFiscalAttemptsToSaleInvoiceFiscals\"}],\"dbName\":\"sale_invoice_fiscals\"},\"SaleInvoiceFiscalAttempts\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"attempt_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"FiscalResponseStatus\"},{\"name\":\"tax_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"type\",\"kind\":\"enum\",\"type\":\"FiscalRequestType\"},{\"name\":\"request_payload\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"response_payload\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"error_message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sent_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"received_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"fiscal_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fiscal\",\"kind\":\"object\",\"type\":\"SaleInvoiceFiscals\",\"relationName\":\"SaleInvoiceFiscalAttemptsToSaleInvoiceFiscals\"}],\"dbName\":\"sale_invoice_fiscal_attempts\"},\"SalesInvoicePayment\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"amount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"payment_method\",\"kind\":\"enum\",\"type\":\"PaymentMethodType\"},{\"name\":\"paid_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"invoice_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"invoice\",\"kind\":\"object\",\"type\":\"SalesInvoice\",\"relationName\":\"SalesInvoiceToSalesInvoicePayment\"},{\"name\":\"terminal_info\",\"kind\":\"object\",\"type\":\"SalesInvoicePaymentTerminalInfo\",\"relationName\":\"SalesInvoicePaymentToSalesInvoicePaymentTerminalInfo\"}],\"dbName\":\"sales_invoice_payments\"},\"SalesInvoicePaymentTerminalInfo\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"terminal_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"stan\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"rrn\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"transaction_date_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"customer_card_no\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"payment_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"payment\",\"kind\":\"object\",\"type\":\"SalesInvoicePayment\",\"relationName\":\"SalesInvoicePaymentToSalesInvoicePaymentTerminalInfo\"}],\"dbName\":\"sales_invoice_payment_terminal_info\"},\"Service\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sku\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"local_sku\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"barcode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deleted_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"category_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"base_sale_price\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"category\",\"kind\":\"object\",\"type\":\"ServiceCategory\",\"relationName\":\"ServiceToServiceCategory\"},{\"name\":\"sales_invoice_items\",\"kind\":\"object\",\"type\":\"SalesInvoiceItem\",\"relationName\":\"SalesInvoiceItemToService\"}],\"dbName\":\"services\"},\"ServiceCategory\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"image_url\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complex_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deleted_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"services\",\"kind\":\"object\",\"type\":\"Service\",\"relationName\":\"ServiceToServiceCategory\"}],\"dbName\":\"service_categories\"}},\"enums\":{},\"types\":{}}") config.parameterizationSchema = { - strings: JSON.parse("[\"where\",\"orderBy\",\"cursor\",\"accounts\",\"_count\",\"admin\",\"admin_account\",\"business_activities\",\"category\",\"business_activity\",\"customer\",\"individual\",\"legal\",\"sales_invoices\",\"consumer\",\"devices\",\"partner\",\"account\",\"consumers_individual\",\"consumers_legal\",\"charge_transaction\",\"license\",\"license_renews\",\"activation\",\"license_activation\",\"credits\",\"allocation\",\"credit\",\"account_allocations\",\"licenses\",\"license_charge_transactions\",\"account_quota_charge_transactions\",\"license_renew_charge_transactions\",\"pos\",\"consumer_account\",\"permission\",\"pos_permissions\",\"complex\",\"complex_permissions\",\"business\",\"business_permissions\",\"account_allocation\",\"invoice\",\"fiscal\",\"attempts\",\"items\",\"payment\",\"terminal_info\",\"payments\",\"good\",\"services\",\"sales_invoice_items\",\"service\",\"goods\",\"guild\",\"good_categories\",\"complexes\",\"permission_businesses\",\"customer_individuals\",\"customer_legals\",\"pos_list\",\"permission_complexes\",\"brand\",\"poses\",\"device\",\"provider\",\"permission_pos\",\"provider_account\",\"partner_account\",\"AdminAccount.findUnique\",\"AdminAccount.findUniqueOrThrow\",\"AdminAccount.findFirst\",\"AdminAccount.findFirstOrThrow\",\"AdminAccount.findMany\",\"data\",\"AdminAccount.createOne\",\"AdminAccount.createMany\",\"AdminAccount.updateOne\",\"AdminAccount.updateMany\",\"create\",\"update\",\"AdminAccount.upsertOne\",\"AdminAccount.deleteOne\",\"AdminAccount.deleteMany\",\"having\",\"_min\",\"_max\",\"AdminAccount.groupBy\",\"AdminAccount.aggregate\",\"Admin.findUnique\",\"Admin.findUniqueOrThrow\",\"Admin.findFirst\",\"Admin.findFirstOrThrow\",\"Admin.findMany\",\"Admin.createOne\",\"Admin.createMany\",\"Admin.updateOne\",\"Admin.updateMany\",\"Admin.upsertOne\",\"Admin.deleteOne\",\"Admin.deleteMany\",\"Admin.groupBy\",\"Admin.aggregate\",\"Account.findUnique\",\"Account.findUniqueOrThrow\",\"Account.findFirst\",\"Account.findFirstOrThrow\",\"Account.findMany\",\"Account.createOne\",\"Account.createMany\",\"Account.updateOne\",\"Account.updateMany\",\"Account.upsertOne\",\"Account.deleteOne\",\"Account.deleteMany\",\"Account.groupBy\",\"Account.aggregate\",\"DeviceBrand.findUnique\",\"DeviceBrand.findUniqueOrThrow\",\"DeviceBrand.findFirst\",\"DeviceBrand.findFirstOrThrow\",\"DeviceBrand.findMany\",\"DeviceBrand.createOne\",\"DeviceBrand.createMany\",\"DeviceBrand.updateOne\",\"DeviceBrand.updateMany\",\"DeviceBrand.upsertOne\",\"DeviceBrand.deleteOne\",\"DeviceBrand.deleteMany\",\"DeviceBrand.groupBy\",\"DeviceBrand.aggregate\",\"Device.findUnique\",\"Device.findUniqueOrThrow\",\"Device.findFirst\",\"Device.findFirstOrThrow\",\"Device.findMany\",\"Device.createOne\",\"Device.createMany\",\"Device.updateOne\",\"Device.updateMany\",\"Device.upsertOne\",\"Device.deleteOne\",\"Device.deleteMany\",\"Device.groupBy\",\"Device.aggregate\",\"LicenseChargeTransaction.findUnique\",\"LicenseChargeTransaction.findUniqueOrThrow\",\"LicenseChargeTransaction.findFirst\",\"LicenseChargeTransaction.findFirstOrThrow\",\"LicenseChargeTransaction.findMany\",\"LicenseChargeTransaction.createOne\",\"LicenseChargeTransaction.createMany\",\"LicenseChargeTransaction.updateOne\",\"LicenseChargeTransaction.updateMany\",\"LicenseChargeTransaction.upsertOne\",\"LicenseChargeTransaction.deleteOne\",\"LicenseChargeTransaction.deleteMany\",\"_avg\",\"_sum\",\"LicenseChargeTransaction.groupBy\",\"LicenseChargeTransaction.aggregate\",\"License.findUnique\",\"License.findUniqueOrThrow\",\"License.findFirst\",\"License.findFirstOrThrow\",\"License.findMany\",\"License.createOne\",\"License.createMany\",\"License.updateOne\",\"License.updateMany\",\"License.upsertOne\",\"License.deleteOne\",\"License.deleteMany\",\"License.groupBy\",\"License.aggregate\",\"LicenseActivation.findUnique\",\"LicenseActivation.findUniqueOrThrow\",\"LicenseActivation.findFirst\",\"LicenseActivation.findFirstOrThrow\",\"LicenseActivation.findMany\",\"LicenseActivation.createOne\",\"LicenseActivation.createMany\",\"LicenseActivation.updateOne\",\"LicenseActivation.updateMany\",\"LicenseActivation.upsertOne\",\"LicenseActivation.deleteOne\",\"LicenseActivation.deleteMany\",\"LicenseActivation.groupBy\",\"LicenseActivation.aggregate\",\"LicenseRenewChargeTransaction.findUnique\",\"LicenseRenewChargeTransaction.findUniqueOrThrow\",\"LicenseRenewChargeTransaction.findFirst\",\"LicenseRenewChargeTransaction.findFirstOrThrow\",\"LicenseRenewChargeTransaction.findMany\",\"LicenseRenewChargeTransaction.createOne\",\"LicenseRenewChargeTransaction.createMany\",\"LicenseRenewChargeTransaction.updateOne\",\"LicenseRenewChargeTransaction.updateMany\",\"LicenseRenewChargeTransaction.upsertOne\",\"LicenseRenewChargeTransaction.deleteOne\",\"LicenseRenewChargeTransaction.deleteMany\",\"LicenseRenewChargeTransaction.groupBy\",\"LicenseRenewChargeTransaction.aggregate\",\"LicenseRenew.findUnique\",\"LicenseRenew.findUniqueOrThrow\",\"LicenseRenew.findFirst\",\"LicenseRenew.findFirstOrThrow\",\"LicenseRenew.findMany\",\"LicenseRenew.createOne\",\"LicenseRenew.createMany\",\"LicenseRenew.updateOne\",\"LicenseRenew.updateMany\",\"LicenseRenew.upsertOne\",\"LicenseRenew.deleteOne\",\"LicenseRenew.deleteMany\",\"LicenseRenew.groupBy\",\"LicenseRenew.aggregate\",\"PartnerAccountQuotaChargeTransaction.findUnique\",\"PartnerAccountQuotaChargeTransaction.findUniqueOrThrow\",\"PartnerAccountQuotaChargeTransaction.findFirst\",\"PartnerAccountQuotaChargeTransaction.findFirstOrThrow\",\"PartnerAccountQuotaChargeTransaction.findMany\",\"PartnerAccountQuotaChargeTransaction.createOne\",\"PartnerAccountQuotaChargeTransaction.createMany\",\"PartnerAccountQuotaChargeTransaction.updateOne\",\"PartnerAccountQuotaChargeTransaction.updateMany\",\"PartnerAccountQuotaChargeTransaction.upsertOne\",\"PartnerAccountQuotaChargeTransaction.deleteOne\",\"PartnerAccountQuotaChargeTransaction.deleteMany\",\"PartnerAccountQuotaChargeTransaction.groupBy\",\"PartnerAccountQuotaChargeTransaction.aggregate\",\"PartnerAccountQuotaCredit.findUnique\",\"PartnerAccountQuotaCredit.findUniqueOrThrow\",\"PartnerAccountQuotaCredit.findFirst\",\"PartnerAccountQuotaCredit.findFirstOrThrow\",\"PartnerAccountQuotaCredit.findMany\",\"PartnerAccountQuotaCredit.createOne\",\"PartnerAccountQuotaCredit.createMany\",\"PartnerAccountQuotaCredit.updateOne\",\"PartnerAccountQuotaCredit.updateMany\",\"PartnerAccountQuotaCredit.upsertOne\",\"PartnerAccountQuotaCredit.deleteOne\",\"PartnerAccountQuotaCredit.deleteMany\",\"PartnerAccountQuotaCredit.groupBy\",\"PartnerAccountQuotaCredit.aggregate\",\"LicenseAccountAllocation.findUnique\",\"LicenseAccountAllocation.findUniqueOrThrow\",\"LicenseAccountAllocation.findFirst\",\"LicenseAccountAllocation.findFirstOrThrow\",\"LicenseAccountAllocation.findMany\",\"LicenseAccountAllocation.createOne\",\"LicenseAccountAllocation.createMany\",\"LicenseAccountAllocation.updateOne\",\"LicenseAccountAllocation.updateMany\",\"LicenseAccountAllocation.upsertOne\",\"LicenseAccountAllocation.deleteOne\",\"LicenseAccountAllocation.deleteMany\",\"LicenseAccountAllocation.groupBy\",\"LicenseAccountAllocation.aggregate\",\"PartnerAccount.findUnique\",\"PartnerAccount.findUniqueOrThrow\",\"PartnerAccount.findFirst\",\"PartnerAccount.findFirstOrThrow\",\"PartnerAccount.findMany\",\"PartnerAccount.createOne\",\"PartnerAccount.createMany\",\"PartnerAccount.updateOne\",\"PartnerAccount.updateMany\",\"PartnerAccount.upsertOne\",\"PartnerAccount.deleteOne\",\"PartnerAccount.deleteMany\",\"PartnerAccount.groupBy\",\"PartnerAccount.aggregate\",\"Partner.findUnique\",\"Partner.findUniqueOrThrow\",\"Partner.findFirst\",\"Partner.findFirstOrThrow\",\"Partner.findMany\",\"Partner.createOne\",\"Partner.createMany\",\"Partner.updateOne\",\"Partner.updateMany\",\"Partner.upsertOne\",\"Partner.deleteOne\",\"Partner.deleteMany\",\"Partner.groupBy\",\"Partner.aggregate\",\"PermissionConsumer.findUnique\",\"PermissionConsumer.findUniqueOrThrow\",\"PermissionConsumer.findFirst\",\"PermissionConsumer.findFirstOrThrow\",\"PermissionConsumer.findMany\",\"PermissionConsumer.createOne\",\"PermissionConsumer.createMany\",\"PermissionConsumer.updateOne\",\"PermissionConsumer.updateMany\",\"PermissionConsumer.upsertOne\",\"PermissionConsumer.deleteOne\",\"PermissionConsumer.deleteMany\",\"PermissionConsumer.groupBy\",\"PermissionConsumer.aggregate\",\"PermissionPos.findUnique\",\"PermissionPos.findUniqueOrThrow\",\"PermissionPos.findFirst\",\"PermissionPos.findFirstOrThrow\",\"PermissionPos.findMany\",\"PermissionPos.createOne\",\"PermissionPos.createMany\",\"PermissionPos.updateOne\",\"PermissionPos.updateMany\",\"PermissionPos.upsertOne\",\"PermissionPos.deleteOne\",\"PermissionPos.deleteMany\",\"PermissionPos.groupBy\",\"PermissionPos.aggregate\",\"PermissionComplex.findUnique\",\"PermissionComplex.findUniqueOrThrow\",\"PermissionComplex.findFirst\",\"PermissionComplex.findFirstOrThrow\",\"PermissionComplex.findMany\",\"PermissionComplex.createOne\",\"PermissionComplex.createMany\",\"PermissionComplex.updateOne\",\"PermissionComplex.updateMany\",\"PermissionComplex.upsertOne\",\"PermissionComplex.deleteOne\",\"PermissionComplex.deleteMany\",\"PermissionComplex.groupBy\",\"PermissionComplex.aggregate\",\"PermissionBusiness.findUnique\",\"PermissionBusiness.findUniqueOrThrow\",\"PermissionBusiness.findFirst\",\"PermissionBusiness.findFirstOrThrow\",\"PermissionBusiness.findMany\",\"PermissionBusiness.createOne\",\"PermissionBusiness.createMany\",\"PermissionBusiness.updateOne\",\"PermissionBusiness.updateMany\",\"PermissionBusiness.upsertOne\",\"PermissionBusiness.deleteOne\",\"PermissionBusiness.deleteMany\",\"PermissionBusiness.groupBy\",\"PermissionBusiness.aggregate\",\"ProviderAccount.findUnique\",\"ProviderAccount.findUniqueOrThrow\",\"ProviderAccount.findFirst\",\"ProviderAccount.findFirstOrThrow\",\"ProviderAccount.findMany\",\"ProviderAccount.createOne\",\"ProviderAccount.createMany\",\"ProviderAccount.updateOne\",\"ProviderAccount.updateMany\",\"ProviderAccount.upsertOne\",\"ProviderAccount.deleteOne\",\"ProviderAccount.deleteMany\",\"ProviderAccount.groupBy\",\"ProviderAccount.aggregate\",\"Provider.findUnique\",\"Provider.findUniqueOrThrow\",\"Provider.findFirst\",\"Provider.findFirstOrThrow\",\"Provider.findMany\",\"Provider.createOne\",\"Provider.createMany\",\"Provider.updateOne\",\"Provider.updateMany\",\"Provider.upsertOne\",\"Provider.deleteOne\",\"Provider.deleteMany\",\"Provider.groupBy\",\"Provider.aggregate\",\"ConsumerDevices.findUnique\",\"ConsumerDevices.findUniqueOrThrow\",\"ConsumerDevices.findFirst\",\"ConsumerDevices.findFirstOrThrow\",\"ConsumerDevices.findMany\",\"ConsumerDevices.createOne\",\"ConsumerDevices.createMany\",\"ConsumerDevices.updateOne\",\"ConsumerDevices.updateMany\",\"ConsumerDevices.upsertOne\",\"ConsumerDevices.deleteOne\",\"ConsumerDevices.deleteMany\",\"ConsumerDevices.groupBy\",\"ConsumerDevices.aggregate\",\"ApplicationReleasedInfo.findUnique\",\"ApplicationReleasedInfo.findUniqueOrThrow\",\"ApplicationReleasedInfo.findFirst\",\"ApplicationReleasedInfo.findFirstOrThrow\",\"ApplicationReleasedInfo.findMany\",\"ApplicationReleasedInfo.createOne\",\"ApplicationReleasedInfo.createMany\",\"ApplicationReleasedInfo.updateOne\",\"ApplicationReleasedInfo.updateMany\",\"ApplicationReleasedInfo.upsertOne\",\"ApplicationReleasedInfo.deleteOne\",\"ApplicationReleasedInfo.deleteMany\",\"ApplicationReleasedInfo.groupBy\",\"ApplicationReleasedInfo.aggregate\",\"ConsumerAccount.findUnique\",\"ConsumerAccount.findUniqueOrThrow\",\"ConsumerAccount.findFirst\",\"ConsumerAccount.findFirstOrThrow\",\"ConsumerAccount.findMany\",\"ConsumerAccount.createOne\",\"ConsumerAccount.createMany\",\"ConsumerAccount.updateOne\",\"ConsumerAccount.updateMany\",\"ConsumerAccount.upsertOne\",\"ConsumerAccount.deleteOne\",\"ConsumerAccount.deleteMany\",\"ConsumerAccount.groupBy\",\"ConsumerAccount.aggregate\",\"Consumer.findUnique\",\"Consumer.findUniqueOrThrow\",\"Consumer.findFirst\",\"Consumer.findFirstOrThrow\",\"Consumer.findMany\",\"Consumer.createOne\",\"Consumer.createMany\",\"Consumer.updateOne\",\"Consumer.updateMany\",\"Consumer.upsertOne\",\"Consumer.deleteOne\",\"Consumer.deleteMany\",\"Consumer.groupBy\",\"Consumer.aggregate\",\"ConsumerIndividual.findUnique\",\"ConsumerIndividual.findUniqueOrThrow\",\"ConsumerIndividual.findFirst\",\"ConsumerIndividual.findFirstOrThrow\",\"ConsumerIndividual.findMany\",\"ConsumerIndividual.createOne\",\"ConsumerIndividual.createMany\",\"ConsumerIndividual.updateOne\",\"ConsumerIndividual.updateMany\",\"ConsumerIndividual.upsertOne\",\"ConsumerIndividual.deleteOne\",\"ConsumerIndividual.deleteMany\",\"ConsumerIndividual.groupBy\",\"ConsumerIndividual.aggregate\",\"ConsumerLegal.findUnique\",\"ConsumerLegal.findUniqueOrThrow\",\"ConsumerLegal.findFirst\",\"ConsumerLegal.findFirstOrThrow\",\"ConsumerLegal.findMany\",\"ConsumerLegal.createOne\",\"ConsumerLegal.createMany\",\"ConsumerLegal.updateOne\",\"ConsumerLegal.updateMany\",\"ConsumerLegal.upsertOne\",\"ConsumerLegal.deleteOne\",\"ConsumerLegal.deleteMany\",\"ConsumerLegal.groupBy\",\"ConsumerLegal.aggregate\",\"BusinessActivity.findUnique\",\"BusinessActivity.findUniqueOrThrow\",\"BusinessActivity.findFirst\",\"BusinessActivity.findFirstOrThrow\",\"BusinessActivity.findMany\",\"BusinessActivity.createOne\",\"BusinessActivity.createMany\",\"BusinessActivity.updateOne\",\"BusinessActivity.updateMany\",\"BusinessActivity.upsertOne\",\"BusinessActivity.deleteOne\",\"BusinessActivity.deleteMany\",\"BusinessActivity.groupBy\",\"BusinessActivity.aggregate\",\"Complex.findUnique\",\"Complex.findUniqueOrThrow\",\"Complex.findFirst\",\"Complex.findFirstOrThrow\",\"Complex.findMany\",\"Complex.createOne\",\"Complex.createMany\",\"Complex.updateOne\",\"Complex.updateMany\",\"Complex.upsertOne\",\"Complex.deleteOne\",\"Complex.deleteMany\",\"Complex.groupBy\",\"Complex.aggregate\",\"Pos.findUnique\",\"Pos.findUniqueOrThrow\",\"Pos.findFirst\",\"Pos.findFirstOrThrow\",\"Pos.findMany\",\"Pos.createOne\",\"Pos.createMany\",\"Pos.updateOne\",\"Pos.updateMany\",\"Pos.upsertOne\",\"Pos.deleteOne\",\"Pos.deleteMany\",\"Pos.groupBy\",\"Pos.aggregate\",\"TriggerLog.findUnique\",\"TriggerLog.findUniqueOrThrow\",\"TriggerLog.findFirst\",\"TriggerLog.findFirstOrThrow\",\"TriggerLog.findMany\",\"TriggerLog.createOne\",\"TriggerLog.createMany\",\"TriggerLog.updateOne\",\"TriggerLog.updateMany\",\"TriggerLog.upsertOne\",\"TriggerLog.deleteOne\",\"TriggerLog.deleteMany\",\"TriggerLog.groupBy\",\"TriggerLog.aggregate\",\"Customer.findUnique\",\"Customer.findUniqueOrThrow\",\"Customer.findFirst\",\"Customer.findFirstOrThrow\",\"Customer.findMany\",\"Customer.createOne\",\"Customer.createMany\",\"Customer.updateOne\",\"Customer.updateMany\",\"Customer.upsertOne\",\"Customer.deleteOne\",\"Customer.deleteMany\",\"Customer.groupBy\",\"Customer.aggregate\",\"CustomerIndividual.findUnique\",\"CustomerIndividual.findUniqueOrThrow\",\"CustomerIndividual.findFirst\",\"CustomerIndividual.findFirstOrThrow\",\"CustomerIndividual.findMany\",\"CustomerIndividual.createOne\",\"CustomerIndividual.createMany\",\"CustomerIndividual.updateOne\",\"CustomerIndividual.updateMany\",\"CustomerIndividual.upsertOne\",\"CustomerIndividual.deleteOne\",\"CustomerIndividual.deleteMany\",\"CustomerIndividual.groupBy\",\"CustomerIndividual.aggregate\",\"CustomerLegal.findUnique\",\"CustomerLegal.findUniqueOrThrow\",\"CustomerLegal.findFirst\",\"CustomerLegal.findFirstOrThrow\",\"CustomerLegal.findMany\",\"CustomerLegal.createOne\",\"CustomerLegal.createMany\",\"CustomerLegal.updateOne\",\"CustomerLegal.updateMany\",\"CustomerLegal.upsertOne\",\"CustomerLegal.deleteOne\",\"CustomerLegal.deleteMany\",\"CustomerLegal.groupBy\",\"CustomerLegal.aggregate\",\"Good.findUnique\",\"Good.findUniqueOrThrow\",\"Good.findFirst\",\"Good.findFirstOrThrow\",\"Good.findMany\",\"Good.createOne\",\"Good.createMany\",\"Good.updateOne\",\"Good.updateMany\",\"Good.upsertOne\",\"Good.deleteOne\",\"Good.deleteMany\",\"Good.groupBy\",\"Good.aggregate\",\"GoodCategory.findUnique\",\"GoodCategory.findUniqueOrThrow\",\"GoodCategory.findFirst\",\"GoodCategory.findFirstOrThrow\",\"GoodCategory.findMany\",\"GoodCategory.createOne\",\"GoodCategory.createMany\",\"GoodCategory.updateOne\",\"GoodCategory.updateMany\",\"GoodCategory.upsertOne\",\"GoodCategory.deleteOne\",\"GoodCategory.deleteMany\",\"GoodCategory.groupBy\",\"GoodCategory.aggregate\",\"Guild.findUnique\",\"Guild.findUniqueOrThrow\",\"Guild.findFirst\",\"Guild.findFirstOrThrow\",\"Guild.findMany\",\"Guild.createOne\",\"Guild.createMany\",\"Guild.updateOne\",\"Guild.updateMany\",\"Guild.upsertOne\",\"Guild.deleteOne\",\"Guild.deleteMany\",\"Guild.groupBy\",\"Guild.aggregate\",\"SalesInvoice.findUnique\",\"SalesInvoice.findUniqueOrThrow\",\"SalesInvoice.findFirst\",\"SalesInvoice.findFirstOrThrow\",\"SalesInvoice.findMany\",\"SalesInvoice.createOne\",\"SalesInvoice.createMany\",\"SalesInvoice.updateOne\",\"SalesInvoice.updateMany\",\"SalesInvoice.upsertOne\",\"SalesInvoice.deleteOne\",\"SalesInvoice.deleteMany\",\"SalesInvoice.groupBy\",\"SalesInvoice.aggregate\",\"SalesInvoiceItem.findUnique\",\"SalesInvoiceItem.findUniqueOrThrow\",\"SalesInvoiceItem.findFirst\",\"SalesInvoiceItem.findFirstOrThrow\",\"SalesInvoiceItem.findMany\",\"SalesInvoiceItem.createOne\",\"SalesInvoiceItem.createMany\",\"SalesInvoiceItem.updateOne\",\"SalesInvoiceItem.updateMany\",\"SalesInvoiceItem.upsertOne\",\"SalesInvoiceItem.deleteOne\",\"SalesInvoiceItem.deleteMany\",\"SalesInvoiceItem.groupBy\",\"SalesInvoiceItem.aggregate\",\"SaleInvoiceFiscals.findUnique\",\"SaleInvoiceFiscals.findUniqueOrThrow\",\"SaleInvoiceFiscals.findFirst\",\"SaleInvoiceFiscals.findFirstOrThrow\",\"SaleInvoiceFiscals.findMany\",\"SaleInvoiceFiscals.createOne\",\"SaleInvoiceFiscals.createMany\",\"SaleInvoiceFiscals.updateOne\",\"SaleInvoiceFiscals.updateMany\",\"SaleInvoiceFiscals.upsertOne\",\"SaleInvoiceFiscals.deleteOne\",\"SaleInvoiceFiscals.deleteMany\",\"SaleInvoiceFiscals.groupBy\",\"SaleInvoiceFiscals.aggregate\",\"SaleInvoiceFiscalAttempts.findUnique\",\"SaleInvoiceFiscalAttempts.findUniqueOrThrow\",\"SaleInvoiceFiscalAttempts.findFirst\",\"SaleInvoiceFiscalAttempts.findFirstOrThrow\",\"SaleInvoiceFiscalAttempts.findMany\",\"SaleInvoiceFiscalAttempts.createOne\",\"SaleInvoiceFiscalAttempts.createMany\",\"SaleInvoiceFiscalAttempts.updateOne\",\"SaleInvoiceFiscalAttempts.updateMany\",\"SaleInvoiceFiscalAttempts.upsertOne\",\"SaleInvoiceFiscalAttempts.deleteOne\",\"SaleInvoiceFiscalAttempts.deleteMany\",\"SaleInvoiceFiscalAttempts.groupBy\",\"SaleInvoiceFiscalAttempts.aggregate\",\"SalesInvoicePayment.findUnique\",\"SalesInvoicePayment.findUniqueOrThrow\",\"SalesInvoicePayment.findFirst\",\"SalesInvoicePayment.findFirstOrThrow\",\"SalesInvoicePayment.findMany\",\"SalesInvoicePayment.createOne\",\"SalesInvoicePayment.createMany\",\"SalesInvoicePayment.updateOne\",\"SalesInvoicePayment.updateMany\",\"SalesInvoicePayment.upsertOne\",\"SalesInvoicePayment.deleteOne\",\"SalesInvoicePayment.deleteMany\",\"SalesInvoicePayment.groupBy\",\"SalesInvoicePayment.aggregate\",\"SalesInvoicePaymentTerminalInfo.findUnique\",\"SalesInvoicePaymentTerminalInfo.findUniqueOrThrow\",\"SalesInvoicePaymentTerminalInfo.findFirst\",\"SalesInvoicePaymentTerminalInfo.findFirstOrThrow\",\"SalesInvoicePaymentTerminalInfo.findMany\",\"SalesInvoicePaymentTerminalInfo.createOne\",\"SalesInvoicePaymentTerminalInfo.createMany\",\"SalesInvoicePaymentTerminalInfo.updateOne\",\"SalesInvoicePaymentTerminalInfo.updateMany\",\"SalesInvoicePaymentTerminalInfo.upsertOne\",\"SalesInvoicePaymentTerminalInfo.deleteOne\",\"SalesInvoicePaymentTerminalInfo.deleteMany\",\"SalesInvoicePaymentTerminalInfo.groupBy\",\"SalesInvoicePaymentTerminalInfo.aggregate\",\"Service.findUnique\",\"Service.findUniqueOrThrow\",\"Service.findFirst\",\"Service.findFirstOrThrow\",\"Service.findMany\",\"Service.createOne\",\"Service.createMany\",\"Service.updateOne\",\"Service.updateMany\",\"Service.upsertOne\",\"Service.deleteOne\",\"Service.deleteMany\",\"Service.groupBy\",\"Service.aggregate\",\"ServiceCategory.findUnique\",\"ServiceCategory.findUniqueOrThrow\",\"ServiceCategory.findFirst\",\"ServiceCategory.findFirstOrThrow\",\"ServiceCategory.findMany\",\"ServiceCategory.createOne\",\"ServiceCategory.createMany\",\"ServiceCategory.updateOne\",\"ServiceCategory.updateMany\",\"ServiceCategory.upsertOne\",\"ServiceCategory.deleteOne\",\"ServiceCategory.deleteMany\",\"ServiceCategory.groupBy\",\"ServiceCategory.aggregate\",\"AND\",\"OR\",\"NOT\",\"id\",\"name\",\"description\",\"image_url\",\"account_id\",\"complex_id\",\"created_at\",\"updated_at\",\"deleted_at\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"not\",\"contains\",\"startsWith\",\"endsWith\",\"search\",\"every\",\"some\",\"none\",\"sku\",\"local_sku\",\"barcode\",\"category_id\",\"base_sale_price\",\"terminal_id\",\"stan\",\"rrn\",\"transaction_date_time\",\"customer_card_no\",\"payment_id\",\"terminal_id_stan_rrn_payment_id\",\"amount\",\"PaymentMethodType\",\"payment_method\",\"paid_at\",\"invoice_id\",\"attempt_no\",\"status\",\"tax_id\",\"request_payload\",\"response_payload\",\"error_message\",\"sent_at\",\"received_at\",\"fiscal_id\",\"string_contains\",\"string_starts_with\",\"string_ends_with\",\"array_starts_with\",\"array_ends_with\",\"array_contains\",\"retry_count\",\"last_attempt_at\",\"quantity\",\"UnitType\",\"unit_type\",\"unit_price\",\"total_amount\",\"discount\",\"notes\",\"payload\",\"good_snapshot\",\"good_id\",\"service_id\",\"code\",\"invoice_number\",\"invoice_date\",\"unknown_customer\",\"customer_id\",\"consumer_account_id\",\"pos_id\",\"is_default_guild_good\",\"guild_id\",\"GoodPricingModel\",\"pricing_model\",\"business_activity_id\",\"company_name\",\"economic_code\",\"registration_number\",\"postal_code\",\"first_name\",\"last_name\",\"national_id\",\"mobile_number\",\"is_favorite\",\"CustomerType\",\"type\",\"message\",\"createdAt\",\"model\",\"serial_number\",\"POSStatus\",\"POSType\",\"pos_type\",\"device_id\",\"provider_id\",\"branch_code\",\"address\",\"partner_token\",\"consumer_id\",\"registration_code\",\"partner_id\",\"national_code\",\"ConsumerType\",\"ConsumerStatus\",\"ConsumerRole\",\"role\",\"version\",\"build_number\",\"is_minimum_supported\",\"ApplicationReleaseType\",\"release_type\",\"ApplicationPlatform\",\"platform\",\"release_date\",\"uuid\",\"app_version\",\"ApplicationPublisher\",\"publisher\",\"os_version\",\"sdk_version\",\"release_number\",\"user_agent\",\"browser_name\",\"fcm_token\",\"PartnerStatus\",\"ProviderRole\",\"BusinessRole\",\"business_id\",\"permission_id\",\"ComplexRole\",\"POSRole\",\"PartnerFiscalSwitchType\",\"fiscal_switch_type\",\"logo_url\",\"PartnerRole\",\"license_activation_id\",\"credit_id\",\"charge_transaction_id\",\"activation_expires_at\",\"tracking_code\",\"purchased_count\",\"expires_at\",\"activation_id\",\"starts_at\",\"license_id\",\"accounts_limit\",\"brand_id\",\"username\",\"password\",\"AccountStatus\",\"AccountType\",\"admin_id\",\"business_activity_id_economic_code\",\"business_activity_id_national_id\",\"fiscal_id_attempt_no\",\"permission_id_business_id\",\"permission_id_complex_id\",\"permission_id_pos_id\",\"partner_id_registration_code\",\"mobile_number_consumer_id\",\"partner_id_national_code\",\"invoice_number_pos_id\",\"economic_code_consumer_id\",\"is\",\"isNot\",\"connectOrCreate\",\"upsert\",\"createMany\",\"set\",\"disconnect\",\"delete\",\"connect\",\"updateMany\",\"deleteMany\",\"_relevance\",\"increment\",\"decrement\",\"multiply\",\"divide\"]"), - graph: "xha-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_CgAwxAUAAEAAEMUFAAD_CgAwxwUBAJEJACHMBUAAkwkAIc0FQACTCQAhrgYBAAAAAa8GAQCRCQAhsAYBAJEJACHqBgAA_goAIAMAAABAACABAABBADACAABCACAMEAAA7woAIB0AAP0KACDDBQAA_AoAMMQFAABEABDFBQAA_AoAMMYFAQCRCQAhzAVAAJMJACHNBUAAkwkAIbAGAQCRCQAh1gZAAJMJACHXBgEAkQkAIdgGAgCqCQAhAxAAAMoTACAdAADYEwAg-gYAANkTACAMEAAA7woAIB0AAP0KACDDBQAA_AoAMMQFAABEABDFBQAA_AoAMMYFAQAAAAHMBUAAkwkAIc0FQACTCQAhsAYBAJEJACHWBkAAkwkAIdcGAQAAAAHYBgIAqgkAIQMAAABEACABAABFADACAABGACAKFAAA-woAIBcAAPYKACDDBQAA-goAMMQFAABIABDFBQAA-goAMMYFAQCRCQAhzAVAAJMJACHNBUAAkwkAIdUGAQCRCQAh3QYCAKoJACEDFAAA1hMAIBcAANETACD6BgAA1xMAIAoUAAD7CgAgFwAA9goAIMMFAAD6CgAwxAUAAEgAEMUFAAD6CgAwxgUBAAAAAcwFQACTCQAhzQVAAJMJACHVBgEAkQkAId0GAgCqCQAhAwAAAEgAIAEAAEkAMAIAAEoAIA4JAAC1CgAgFQAAtAoAIBYAALYKACAcAAC3CgAgwwUAALMKADDEBQAATAAQxQUAALMKADDGBQEAkQkAIcwFQACTCQAhzQVAAJMJACGWBgEAkQkAIdkGQACTCQAh2wZAAJMJACHcBgEAkQkAIQEAAABMACALFAAA-QoAIBcAAPYKACDDBQAA-AoAMMQFAABOABDFBQAA-AoAMMYFAQCRCQAhzAVAAJMJACHNBUAAkwkAIdUGAQCRCQAh2QZAAJMJACHaBgEAkgkAIQQUAADUEwAgFwAA0RMAINoGAACvCwAg-gYAANUTACALFAAA-QoAIBcAAPYKACDDBQAA-AoAMMQFAABOABDFBQAA-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_ACABAACAAQAwAgAAgQEAIAkjAADlCgAgJwAAtQoAIMMFAADjCgAwxAUAAIMBABDFBQAA4woAMMYFAQCRCQAhtQYAAOQKywYiywYBAJEJACHMBgEAkQkAIQMjAADEEwAgJwAAwxIAIPoGAADFEwAgCiMAAOUKACAnAAC1CgAgwwUAAOMKADDEBQAAgwEAEMUFAADjCgAwxgUBAAAAAbUGAADkCssGIssGAQCRCQAhzAYBAJEJACHnBgAA4goAIAMAAACDAQAgAQAAhAEAMAIAAIUBACABAAAAewAgAQAAAH8AIAEAAACDAQAgAQAAAFUAIAMAAAApACABAAAqADACAAArACABAAAAKQAgCyoAAKsJACAsAACsCQAgwwUAAKkJADDEBQAAjQEAEMUFAACpCQAwxgUBAJEJACHMBUAAkwkAIc0FQACTCQAh7gUBAJEJACH-BQIAqgkAIf8FQACUCQAhAQAAAI0BACAPKwAA4QoAIMMFAADgCgAwxAUAAI8BABDFBQAA4AoAMMYFAQCRCQAhzAVAAJMJACHvBQIAqgkAIfAFAQCRCQAh8QUBAJIJACHyBQAA-gkAIPMFAAD6CQAg9AUBAJIJACH1BUAAlAkAIfYFQACUCQAh9wUBAJEJACEIKwAAwhMAIPEFAACvCwAg8gUAAK8LACDzBQAArwsAIPQFAACvCwAg9QUAAK8LACD2BQAArwsAIPoGAADDEwAgECsAAOEKACDDBQAA4AoAMMQFAACPAQAQxQUAAOAKADDGBQEAAAABzAVAAJMJACHvBQIAqgkAIfAFAQCRCQAh8QUBAAAAAfIFAAD6CQAg8wUAAPoJACD0BQEAkgkAIfUFQACUCQAh9gVAAJQJACH3BQEAkQkAIeYGAADfCgAgAwAAAI8BACABAACQAQAwAgAAkQEAIAEAAACPAQAgAwAAAB8AIAEAACAAMAIAACEAIAsqAACrCQAgLwAA3goAIMMFAADcCgAwxAUAAJUBABDFBQAA3AoAMMYFAQCRCQAhzAVAAJMJACHqBRAA2QoAIewFAADdCuwFIu0FQACTCQAh7gUBAJEJACEDKgAAlQwAIC8AAMATACD6BgAAwRMAIAsqAACrCQAgLwAA3goAIMMFAADcCgAwxAUAAJUBABDFBQAA3AoAMMYFAQAAAAHMBUAAkwkAIeoFEADZCgAh7AUAAN0K7AUi7QVAAJMJACHuBQEAkQkAIQMAAACVAQAgAQAAlgEAMAIAAJcBACANLgAAnQkAIMMFAACcCQAwxAUAAJkBABDFBQAAnAkAMMYFAQCRCQAhyAUBAJIJACHMBUAAkwkAIeMFAQCRCQAh5AUBAJEJACHlBQEAkQkAIeYFQACTCQAh5wUBAJIJACHoBQEAkQkAIQEAAACZAQAgAQAAAB8AIAEAAACVAQAgAQAAABkAIBIIAADaCgAgMwAA2woAIMMFAADYCgAwxAUAAJ4BABDFBQAA2AoAMMYFAQCRCQAhxwUBAJEJACHIBQEAkgkAIcoFAQCRCQAhywUBAJEJACHMBUAAkwkAIc0FQACTCQAhzgVAAJQJACHeBQEAkQkAId8FAQCSCQAh4AUBAJIJACHhBQEAkgkAIeIFEADZCgAhAQAAAJ4BACANMgAAlQkAIMMFAACQCQAwxAUAAKABABDFBQAAkAkAMMYFAQCRCQAhxwUBAJEJACHIBQEAkgkAIckFAQCSCQAhygUBAJEJACHLBQEAkQkAIcwFQACTCQAhzQVAAJMJACHOBUAAlAkAIQEAAACgAQAgCAgAAL0TACAzAAC-EwAgyAUAAK8LACDOBQAArwsAIN8FAACvCwAg4AUAAK8LACDhBQAArwsAIPoGAAC_EwAgEggAANoKACAzAADbCgAgwwUAANgKADDEBQAAngEAEMUFAADYCgAwxgUBAAAAAccFAQCRCQAhyAUBAJIJACHKBQEAkQkAIcsFAQCRCQAhzAVAAJMJACHNBUAAkwkAIc4FQACUCQAh3gUBAAAAAd8FAQAAAAHgBQEAAAAB4QUBAJIJACHiBRAA2QoAIQMAAACeAQAgAQAAogEAMAIAAKMBACABAAAAngEAIAMAAAAfACABAAAgADACAAAhACABAAAAHwAgAQAAAB8AIAoHAAC0CQAgNwAAtQkAIMMFAACzCQAwxAUAAKkBABDFBQAAswkAMMYFAQCRCQAhxwUBAJEJACHMBUAAkwkAIc0FQACTCQAhiwYBAJIJACEBAAAAqQEAIA4JAAC1CgAgNwAAtQkAIDwAAIYKACA9AACbCgAgwwUAANcKADDEBQAAqwEAEMUFAADXCgAwxgUBAJEJACHHBQEAkQkAIcwFQACTCQAhzQVAAJMJACGWBgEAkQkAIasGAQCRCQAhrAYBAJIJACEBAAAAqwEAIAEAAAAZACABAAAAEQAgAQAAABUAIAEAAABMACAGCQAAwxIAIDcAANYOACA8AADsEAAgPQAAgxEAIKwGAACvCwAg-gYAALwTACAOCQAAtQoAIDcAALUJACA8AACGCgAgPQAAmwoAIMMFAADXCgAwxAUAAKsBABDFBQAA1woAMMYFAQAAAAHHBQEAkQkAIcwFQACTCQAhzQVAAJMJACGWBgEAkQkAIasGAQCRCQAhrAYBAJIJACEDAAAAqwEAIAEAALEBADACAACyAQAgAwAAAIMBACABAACEAQAwAgAAhQEAIAMAAAAZACABAAAaADACAAAbACAECQAAwxIAIAoAALkTACCYBgAArwsAIPoGAAC7EwAgDgkAALUKACAKAADUCgAgwwUAANYKADDEBQAAJQAQxQUAANYKADCPBgEAAAABlgYBAJEJACGYBgEAkgkAIZoGAQCRCQAhmwYBAJEJACGcBgEAkQkAIZ0GAQCRCQAhngYBAJEJACHlBgAA1QoAIAMAAAAlACABAAC2AQAwAgAAtwEAIAQJAADDEgAgCgAAuRMAIJkGAACvCwAg-gYAALoTACAMCQAAtQoAIAoAANQKACDDBQAA0woAMMQFAAAnABDFBQAA0woAMI8GAQAAAAGWBgEAkQkAIZcGAQCRCQAhmAYBAJEJACGZBgEAkgkAIZoGAQCRCQAh5AYAANIKACADAAAAJwAgAQAAuQEAMAIAALoBACABAAAAqwEAIAEAAACDAQAgAQAAABkAIAEAAAAlACABAAAAJwAgAwAAAA0AIAEAAA4AMAIAAA8AIAMAAAAVACABAAAWADACAAAXACADAAAAfwAgAQAAgAEAMAIAAIEBACABAAAADQAgAQAAABUAIAEAAAB_ACALPgAA0QoAID8AAIYKACDDBQAA0AoAMMQFAADHAQAQxQUAANAKADDGBQEAkQkAIccFAQCRCQAhzAVAAJMJACHNBUAAkwkAIcIGAQCSCQAh3gYBAJEJACEBAAAAxwEAIAQ-AAC3EwAgPwAA7BAAIMIGAACvCwAg-gYAALgTACALPgAA0QoAID8AAIYKACDDBQAA0AoAMMQFAADHAQAQxQUAANAKADDGBQEAAAABxwUBAJEJACHMBUAAkwkAIc0FQACTCQAhwgYBAJIJACHeBgEAkQkAIQMAAADHAQAgAQAAyQEAMAIAAMoBACABAAAAxwEAIAMAAAANACABAAAOADACAAAPACABAAAADQAgCwMAAIUKACA8AACGCgAgwwUAAIMKADDEBQAAzwEAEMUFAACDCgAwxgUBAJEJACHHBQEAkQkAIcwFQACTCQAhzQVAAJMJACHwBQAAhArJBiKLBgEAkQkAIQEAAADPAQAgAwAAAHsAIAEAAHwAMAIAAH0AIAMAAAApACABAAAqADACAAArACABAAAAewAgAQAAACkAIAEAAAAIACABAAAADQAgAQAAADkAIAEAAAAuACABAAAAAQAgAwAAAAMAIAEAAAQAMAIAAAEAIAMAAAADACABAAAEADACAAABACADAAAAAwAgAQAABAAwAgAAAQAgBwUAAJYTACARAACwEwAgxgUBAAAAAcoFAQAAAAHMBUAAAAABzQVAAAAAAeMGAQAAAAEBSgAA3QEAIAXGBQEAAAABygUBAAAAAcwFQAAAAAHNBUAAAAAB4wYBAAAAAQFKAADfAQAwBwUAAJUTACARAACuEwAgxgUBALMLACHKBQEAswsAIcwFQAC1CwAhzQVAALULACHjBgEAswsAIQIAAAABACBKAADhAQAgBcYFAQCzCwAhygUBALMLACHMBUAAtQsAIc0FQAC1CwAh4wYBALMLACECAAAAAwAgSgAA4wEAIAMAAAABACBPAADdAQAgUAAA4QEAIAEAAAABACABAAAAAwAgAwQAALQTACBVAAC2EwAgVgAAtRMAIAjDBQAAzwoAMMQFAADpAQAQxQUAAM8KADDGBQEAggkAIcoFAQCCCQAhzAVAAIQJACHNBUAAhAkAIeMGAQCCCQAhAwAAAAMAIAEAAOgBADBUAADpAQAgAwAAAAMAIAEAAAQAMAIAAAEAIAsDAADOCgAgwwUAAM0KADDEBQAA7wEAEMUFAADNCgAwxgUBAAAAAcwFQACTCQAhzQVAAJMJACGbBgEAkQkAIZwGAQCRCQAhngYBAAAAAbEGAQAAAAEBAAAA7AEAIAEAAADsAQAgCwMAAM4KACDDBQAAzQoAMMQFAADvAQAQxQUAAM0KADDGBQEAkQkAIcwFQACTCQAhzQVAAJMJACGbBgEAkQkAIZwGAQCRCQAhngYBAJEJACGxBgEAkgkAIQMDAACyEwAgsQYAAK8LACD6BgAAsxMAIAMAAADvAQAgAQAA8AEAMAIAAOwBACADAAAA7wEAIAEAAPABADACAADsAQAgAwAAAO8BACABAADwAQAwAgAA7AEAIAgDAACxEwAgxgUBAAAAAcwFQAAAAAHNBUAAAAABmwYBAAAAAZwGAQAAAAGeBgEAAAABsQYBAAAAAQFKAAD0AQAgB8YFAQAAAAHMBUAAAAABzQVAAAAAAZsGAQAAAAGcBgEAAAABngYBAAAAAbEGAQAAAAEBSgAA9gEAMAgDAACiEwAgxgUBALMLACHMBUAAtQsAIc0FQAC1CwAhmwYBALMLACGcBgEAswsAIZ4GAQCzCwAhsQYBALQLACECAAAA7AEAIEoAAPgBACAHxgUBALMLACHMBUAAtQsAIc0FQAC1CwAhmwYBALMLACGcBgEAswsAIZ4GAQCzCwAhsQYBALQLACECAAAA7wEAIEoAAPoBACADAAAA7AEAIE8AAPQBACBQAAD4AQAgAQAAAOwBACABAAAA7wEAIAQEAACfEwAgVQAAoRMAIFYAAKATACCxBgAArwsAIArDBQAAzAoAMMQFAACAAgAQxQUAAMwKADDGBQEAggkAIcwFQACECQAhzQVAAIQJACGbBgEAggkAIZwGAQCCCQAhngYBAIIJACGxBgEAgwkAIQMAAADvAQAgAQAA_wEAMFQAAIACACADAAAA7wEAIAEAAPABADACAADsAQAgDAYAAMgKACAiAADLCgAgQwAAyQoAIEQAAMoKACDDBQAAxQoAMMQFAACGAgAQxQUAAMUKADDGBQEAAAAB8AUAAMYK4gYioQYAAMcK4wYi3wYBAAAAAeAGAQCRCQAhAQAAAIMCACABAAAAgwIAIAwGAADICgAgIgAAywoAIEMAAMkKACBEAADKCgAgwwUAAMUKADDEBQAAhgIAEMUFAADFCgAwxgUBAJEJACHwBQAAxgriBiKhBgAAxwrjBiLfBgEAkQkAIeAGAQCRCQAhBQYAAJsTACAiAACBEQAgQwAAnBMAIEQAAJ0TACD6BgAAnhMAIAMAAACGAgAgAQAAhwIAMAIAAIMCACADAAAAhgIAIAEAAIcCADACAACDAgAgAwAAAIYCACABAACHAgAwAgAAgwIAIAkGAACXEwAgIgAAmhMAIEMAAJgTACBEAACZEwAgxgUBAAAAAfAFAAAA4gYCoQYAAADjBgLfBgEAAAAB4AYBAAAAAQFKAACLAgAgBcYFAQAAAAHwBQAAAOIGAqEGAAAA4wYC3wYBAAAAAeAGAQAAAAEBSgAAjQIAMAkGAAD9EgAgIgAAgBMAIEMAAP4SACBEAAD_EgAgxgUBALMLACHwBQAA-xLiBiKhBgAA_BLjBiLfBgEAswsAIeAGAQCzCwAhAgAAAIMCACBKAACPAgAgBcYFAQCzCwAh8AUAAPsS4gYioQYAAPwS4wYi3wYBALMLACHgBgEAswsAIQIAAACGAgAgSgAAkQIAIAMAAACDAgAgTwAAiwIAIFAAAI8CACABAAAAgwIAIAEAAACGAgAgAwQAAPgSACBVAAD6EgAgVgAA-RIAIAjDBQAAvgoAMMQFAACXAgAQxQUAAL4KADDGBQEAggkAIfAFAAC_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_QsAIQIAAABIACBKAADkAgAgAwAAAEoAIE8AAN4CACBQAADiAgAgAQAAAEoAIAEAAABIACAFBAAAxxIAIFUAAMoSACBWAADJEgAgnQEAAMgSACCeAQAAyxIAIAjDBQAAuAoAMMQFAADqAgAQxQUAALgKADDGBQEAggkAIcwFQACECQAhzQVAAIQJACHVBgEAggkAId0GAgCjCQAhAwAAAEgAIAEAAOkCADBUAADqAgAgAwAAAEgAIAEAAEkAMAIAAEoAIA4JAAC1CgAgFQAAtAoAIBYAALYKACAcAAC3CgAgwwUAALMKADDEBQAATAAQxQUAALMKADDGBQEAAAABzAVAAJMJACHNBUAAkwkAIZYGAQAAAAHZBkAAkwkAIdsGQACTCQAh3AYBAAAAAQEAAADtAgAgAQAAAO0CACAFCQAAwxIAIBUAAMISACAWAADEEgAgHAAAxRIAIPoGAADGEgAgAwAAAEwAIAEAAPACADACAADtAgAgAwAAAEwAIAEAAPACADACAADtAgAgAwAAAEwAIAEAAPACADACAADtAgAgCwkAAOgRACAVAADIDgAgFgAAyQ4AIBwAAMoOACDGBQEAAAABzAVAAAAAAc0FQAAAAAGWBgEAAAAB2QZAAAAAAdsGQAAAAAHcBgEAAAABAUoAAPQCACAHxgUBAAAAAcwFQAAAAAHNBUAAAAABlgYBAAAAAdkGQAAAAAHbBkAAAAAB3AYBAAAAAQFKAAD2AgAwCwkAAOcRACAVAACnDgAgFgAAqA4AIBwAAKkOACDGBQEAswsAIcwFQAC1CwAhzQVAALULACGWBgEAswsAIdkGQAC1CwAh2wZAALULACHcBgEAswsAIQIAAADtAgAgSgAA-AIAIAfGBQEAswsAIcwFQAC1CwAhzQVAALULACGWBgEAswsAIdkGQAC1CwAh2wZAALULACHcBgEAswsAIQIAAABMACBKAAD6AgAgAwAAAO0CACBPAAD0AgAgUAAA-AIAIAEAAADtAgAgAQAAAEwAIAMEAAC_EgAgVQAAwRIAIFYAAMASACAKwwUAALIKADDEBQAAgAMAEMUFAACyCgAwxgUBAIIJACHMBUAAhAkAIc0FQACECQAhlgYBAIIJACHZBkAAhAkAIdsGQACECQAh3AYBAIIJACEDAAAATAAgAQAA_wIAMFQAAIADACADAAAATAAgAQAA8AIAMAIAAO0CACABAAAAbAAgAQAAAGwAIAMAAABqACABAABrADACAABsACADAAAAagAgAQAAawAwAgAAbAAgAwAAAGoAIAEAAGsAMAIAAGwAIAkQAAC-EgAgFgAAqBEAIMYFAQAAAAHMBUAAAAABzQVAAAAAAbAGAQAAAAHWBkAAAAAB1wYBAAAAAdgGAgAAAAEBSgAAiAMAIAfGBQEAAAABzAVAAAAAAc0FQAAAAAGwBgEAAAAB1gZAAAAAAdcGAQAAAAHYBgIAAAABAUoAAIoDADAJEAAAvRIAIBYAAJsRACDGBQEAswsAIcwFQAC1CwAhzQVAALULACGwBgEAswsAIdYGQAC1CwAh1wYBALMLACHYBgIA_QsAIQIAAABsACBKAACMAwAgB8YFAQCzCwAhzAVAALULACHNBUAAtQsAIbAGAQCzCwAh1gZAALULACHXBgEAswsAIdgGAgD9CwAhAgAAAGoAIEoAAI4DACADAAAAbAAgTwAAiAMAIFAAAIwDACABAAAAbAAgAQAAAGoAIAUEAAC4EgAgVQAAuxIAIFYAALoSACCdAQAAuRIAIJ4BAAC8EgAgCsMFAACxCgAwxAUAAJQDABDFBQAAsQoAMMYFAQCCCQAhzAVAAIQJACHNBUAAhAkAIbAGAQCCCQAh1gZAAIQJACHXBgEAggkAIdgGAgCjCQAhAwAAAGoAIAEAAJMDADBUAACUAwAgAwAAAGoAIAEAAGsAMAIAAGwAIAEAAABQACABAAAAUAAgAwAAAE4AIAEAAE8AMAIAAFAAIAMAAABOACABAABPADACAABQACADAAAATgAgAQAATwAwAgAAUAAgCBQAAMcOACAXAACmEQAgxgUBAAAAAcwFQAAAAAHNBUAAAAAB1QYBAAAAAdkGQAAAAAHaBgEAAAABAUoAAJwDACAGxgUBAAAAAcwFQAAAAAHNBUAAAAAB1QYBAAAAAdkGQAAAAAHaBgEAAAABAUoAAJ4DADAIFAAAxQ4AIBcAAKQRACDGBQEAswsAIcwFQAC1CwAhzQVAALULACHVBgEAswsAIdkGQAC1CwAh2gYBALQLACECAAAAUAAgSgAAoAMAIAbGBQEAswsAIcwFQAC1CwAhzQVAALULACHVBgEAswsAIdkGQAC1CwAh2gYBALQLACECAAAATgAgSgAAogMAIAMAAABQACBPAACcAwAgUAAAoAMAIAEAAABQACABAAAATgAgBAQAALUSACBVAAC3EgAgVgAAthIAINoGAACvCwAgCcMFAACwCgAwxAUAAKgDABDFBQAAsAoAMMYFAQCCCQAhzAVAAIQJACHNBUAAhAkAIdUGAQCCCQAh2QZAAIQJACHaBgEAgwkAIQMAAABOACABAACnAwAwVAAAqAMAIAMAAABOACABAABPADACAABQACABAAAAaAAgAQAAAGgAIAMAAABdACABAABnADACAABoACADAAAAXQAgAQAAZwAwAgAAaAAgAwAAAF0AIAEAAGcAMAIAAGgAIAkQAAC0EgAgGQAAyREAIMYFAQAAAAHMBUAAAAABzQVAAAAAAbAGAQAAAAHWBkAAAAAB1wYBAAAAAdgGAgAAAAEBSgAAsAMAIAfGBQEAAAABzAVAAAAAAc0FQAAAAAGwBgEAAAAB1gZAAAAAAdcGAQAAAAHYBgIAAAABAUoAALIDADAJEAAAsxIAIBkAALQRACDGBQEAswsAIcwFQAC1CwAhzQVAALULACGwBgEAswsAIdYGQAC1CwAh1wYBALMLACHYBgIA_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_AwAwAgAA-wMAIAMAAAD-AwAgAQAA_wMAMAIAAPsDACADAAAA_gMAIAEAAP8DADACAAD7AwAgDgMAAJQSACASAACVEgAgEwAAlhIAIB4AAJcSACAfAACYEgAgIAAAmRIAIMYFAQAAAAHHBQEAAAABzAVAAAAAAc0FQAAAAAHwBQAAAMkGAosGAQAAAAHQBgAAANAGAtEGAQAAAAEBSgAAgwQAIAjGBQEAAAABxwUBAAAAAcwFQAAAAAHNBUAAAAAB8AUAAADJBgKLBgEAAAAB0AYAAADQBgLRBgEAAAABAUoAAIUEADAOAwAAihEAIBIAAIsRACATAACMEQAgHgAAjREAIB8AAI4RACAgAACPEQAgxgUBALMLACHHBQEAswsAIcwFQAC1CwAhzQVAALULACHwBQAAzhDJBiKLBgEAswsAIdAGAACJEdAGItEGAQC0CwAhAgAAAPsDACBKAACHBAAgCMYFAQCzCwAhxwUBALMLACHMBUAAtQsAIc0FQAC1CwAh8AUAAM4QyQYiiwYBALMLACHQBgAAiRHQBiLRBgEAtAsAIQIAAAD-AwAgSgAAiQQAIAMAAAD7AwAgTwAAgwQAIFAAAIcEACABAAAA-wMAIAEAAAD-AwAgBAQAAIYRACBVAACIEQAgVgAAhxEAINEGAACvCwAgC8MFAACdCgAwxAUAAI8EABDFBQAAnQoAMMYFAQCCCQAhxwUBAIIJACHMBUAAhAkAIc0FQACECQAh8AUAAIAKyQYiiwYBAIIJACHQBgAAngrQBiLRBgEAgwkAIQMAAAD-AwAgAQAAjgQAMFQAAI8EACADAAAA_gMAIAEAAP8DADACAAD7AwAgCSIAAJkKACAkAACaCgAgJgAAmwoAICgAAJwKACDDBQAAmAoAMMQFAAB5ABDFBQAAmAoAMMYFAQAAAAGQBgEAAAABAQAAAJIEACABAAAAkgQAIAUiAACBEQAgJAAAghEAICYAAIMRACAoAACEEQAg-gYAAIURACADAAAAeQAgAQAAlQQAMAIAAJIEACADAAAAeQAgAQAAlQQAMAIAAJIEACADAAAAeQAgAQAAlQQAMAIAAJIEACAGIgAAgBEAICQAAKMQACAmAACkEAAgKAAApRAAIMYFAQAAAAGQBgEAAAABAUoAAJkEACACxgUBAAAAAZAGAQAAAAEBSgAAmwQAMAYiAAD_EAAgJAAA_w8AICYAAIAQACAoAACBEAAgxgUBALMLACGQBgEAswsAIQIAAACSBAAgSgAAnQQAIALGBQEAswsAIZAGAQCzCwAhAgAAAHkAIEoAAJ8EACADAAAAkgQAIE8AAJkEACBQAACdBAAgAQAAAJIEACABAAAAeQAgAwQAAPwQACBVAAD-EAAgVgAA_RAAIAXDBQAAlwoAMMQFAAClBAAQxQUAAJcKADDGBQEAggkAIZAGAQCCCQAhAwAAAHkAIAEAAKQEADBUAAClBAAgAwAAAHkAIAEAAJUEADACAACSBAAgAQAAAH0AIAEAAAB9ACADAAAAewAgAQAAfAAwAgAAfQAgAwAAAHsAIAEAAHwAMAIAAH0AIAMAAAB7ACABAAB8ADACAAB9ACAGIQAAohAAICMAAJcOACDGBQEAAAABkQYBAAAAAbUGAAAAzwYCzAYBAAAAAQFKAACtBAAgBMYFAQAAAAGRBgEAAAABtQYAAADPBgLMBgEAAAABAUoAAK8EADAGIQAAoBAAICMAAJUOACDGBQEAswsAIZEGAQCzCwAhtQYAAJMOzwYizAYBALMLACECAAAAfQAgSgAAsQQAIATGBQEAswsAIZEGAQCzCwAhtQYAAJMOzwYizAYBALMLACECAAAAewAgSgAAswQAIAMAAAB9ACBPAACtBAAgUAAAsQQAIAEAAAB9ACABAAAAewAgAwQAAPkQACBVAAD7EAAgVgAA-hAAIAfDBQAAkwoAMMQFAAC5BAAQxQUAAJMKADDGBQEAggkAIZEGAQCCCQAhtQYAAJQKzwYizAYBAIIJACEDAAAAewAgAQAAuAQAMFQAALkEACADAAAAewAgAQAAfAAwAgAAfQAgAQAAAIEBACABAAAAgQEAIAMAAAB_ACABAACAAQAwAgAAgQEAIAMAAAB_ACABAACAAQAwAgAAgQEAIAMAAAB_ACABAACAAQAwAgAAgQEAIAYjAADfDQAgJQAAlxAAIMYFAQAAAAHLBQEAAAABtQYAAADOBgLMBgEAAAABAUoAAMEEACAExgUBAAAAAcsFAQAAAAG1BgAAAM4GAswGAQAAAAEBSgAAwwQAMAYjAADdDQAgJQAAlRAAIMYFAQCzCwAhywUBALMLACG1BgAA2w3OBiLMBgEAswsAIQIAAACBAQAgSgAAxQQAIATGBQEAswsAIcsFAQCzCwAhtQYAANsNzgYizAYBALMLACECAAAAfwAgSgAAxwQAIAMAAACBAQAgTwAAwQQAIFAAAMUEACABAAAAgQEAIAEAAAB_ACADBAAA9hAAIFUAAPgQACBWAAD3EAAgB8MFAACPCgAwxAUAAM0EABDFBQAAjwoAMMYFAQCCCQAhywUBAIIJACG1BgAAkArOBiLMBgEAggkAIQMAAAB_ACABAADMBAAwVAAAzQQAIAMAAAB_ACABAACAAQAwAgAAgQEAIAEAAACFAQAgAQAAAIUBACADAAAAgwEAIAEAAIQBADACAACFAQAgAwAAAIMBACABAACEAQAwAgAAhQEAIAMAAACDAQAgAQAAhAEAMAIAAIUBACAGIwAAwg0AICcAAIwQACDGBQEAAAABtQYAAADLBgLLBgEAAAABzAYBAAAAAQFKAADVBAAgBMYFAQAAAAG1BgAAAMsGAssGAQAAAAHMBgEAAAABAUoAANcEADAGIwAAwA0AICcAAIoQACDGBQEAswsAIbUGAAC-DcsGIssGAQCzCwAhzAYBALMLACECAAAAhQEAIEoAANkEACAExgUBALMLACG1BgAAvg3LBiLLBgEAswsAIcwGAQCzCwAhAgAAAIMBACBKAADbBAAgAwAAAIUBACBPAADVBAAgUAAA2QQAIAEAAACFAQAgAQAAAIMBACADBAAA8xAAIFUAAPUQACBWAAD0EAAgB8MFAACLCgAwxAUAAOEEABDFBQAAiwoAMMYFAQCCCQAhtQYAAIwKywYiywYBAIIJACHMBgEAggkAIQMAAACDAQAgAQAA4AQAMFQAAOEEACADAAAAgwEAIAEAAIQBADACAACFAQAgAQAAAAsAIAEAAAALACADAAAACAAgAQAACgAwAgAACwAgAwAAAAgAIAEAAAoAMAIAAAsAIAMAAAAIACABAAAKADACAAALACAIEQAA6BAAIEEAAPIQACDGBQEAAAABygUBAAAAAcwFQAAAAAHNBUAAAAABqgYBAAAAAbUGAAAAygYCAUoAAOkEACAGxgUBAAAAAcoFAQAAAAHMBUAAAAABzQVAAAAAAaoGAQAAAAG1BgAAAMoGAgFKAADrBAAwCBEAAOYQACBBAADxEAAgxgUBALMLACHKBQEAswsAIcwFQAC1CwAhzQVAALULACGqBgEAswsAIbUGAADkEMoGIgIAAAALACBKAADtBAAgBsYFAQCzCwAhygUBALMLACHMBUAAtQsAIc0FQAC1CwAhqgYBALMLACG1BgAA5BDKBiICAAAACAAgSgAA7wQAIAMAAAALACBPAADpBAAgUAAA7QQAIAEAAAALACABAAAACAAgAwQAAO4QACBVAADwEAAgVgAA7xAAIAnDBQAAhwoAMMQFAAD1BAAQxQUAAIcKADDGBQEAggkAIcoFAQCCCQAhzAVAAIQJACHNBUAAhAkAIaoGAQCCCQAhtQYAAIgKygYiAwAAAAgAIAEAAPQEADBUAAD1BAAgAwAAAAgAIAEAAAoAMAIAAAsAIAsDAACFCgAgPAAAhgoAIMMFAACDCgAwxAUAAM8BABDFBQAAgwoAMMYFAQAAAAHHBQEAkQkAIcwFQACTCQAhzQVAAJMJACHwBQAAhArJBiKLBgEAAAABAQAAAPgEACABAAAA-AQAIAMDAADrEAAgPAAA7BAAIPoGAADtEAAgAwAAAM8BACABAAD7BAAwAgAA-AQAIAMAAADPAQAgAQAA-wQAMAIAAPgEACADAAAAzwEAIAEAAPsEADACAAD4BAAgCAMAAOkQACA8AADqEAAgxgUBAAAAAccFAQAAAAHMBUAAAAABzQVAAAAAAfAFAAAAyQYCiwYBAAAAAQFKAAD_BAAgBsYFAQAAAAHHBQEAAAABzAVAAAAAAc0FQAAAAAHwBQAAAMkGAosGAQAAAAEBSgAAgQUAMAgDAADPEAAgPAAA0BAAIMYFAQCzCwAhxwUBALMLACHMBUAAtQsAIc0FQAC1CwAh8AUAAM4QyQYiiwYBALMLACECAAAA-AQAIEoAAIMFACAGxgUBALMLACHHBQEAswsAIcwFQAC1CwAhzQVAALULACHwBQAAzhDJBiKLBgEAswsAIQIAAADPAQAgSgAAhQUAIAMAAAD4BAAgTwAA_wQAIFAAAIMFACABAAAA-AQAIAEAAADPAQAgAwQAAMsQACBVAADNEAAgVgAAzBAAIAnDBQAA_wkAMMQFAACLBQAQxQUAAP8JADDGBQEAggkAIccFAQCCCQAhzAVAAIQJACHNBUAAhAkAIfAFAACACskGIosGAQCCCQAhAwAAAM8BACABAACKBQAwVAAAiwUAIAMAAADPAQAgAQAA-wQAMAIAAPgEACABAAAANQAgAQAAADUAIAMAAAAzACABAAA0ADACAAA1ACADAAAAMwAgAQAANAAwAgAANQAgAwAAADMAIAEAADQAMAIAADUAIBIOAADKEAAgPgEAAAABQAEAAAABzAVAAAAAAc0FQAAAAAGkBgEAAAABrgYBAAAAAbcGAQAAAAG8BgEAAAABvgYBAAAAAb8GAQAAAAHBBgAAAMEGAsIGAQAAAAHDBgEAAAABxAYBAAAAAcUGAQAAAAHGBgEAAAABxwYBAAAAAQFKAACTBQAgET4BAAAAAUABAAAAAcwFQAAAAAHNBUAAAAABpAYBAAAAAa4GAQAAAAG3BgEAAAABvAYBAAAAAb4GAQAAAAG_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-ACBPAADpBQAgUAAA7QUAIAEAAAA-ACABAAAANwAgAwQAAKgPACBVAACqDwAgVgAAqQ8AIAvDBQAA3AkAMMQFAAD1BQAQxQUAANwJADDMBUAAhAkAIc0FQACECQAhmwYBAIIJACGcBgEAggkAIZ4GAQCCCQAhrgYBAIIJACGwBgEAggkAIbEGAQCCCQAhAwAAADcAIAEAAPQFADBUAAD1BQAgAwAAADcAIAEAAD0AMAIAAD4AIAEAAABCACABAAAAQgAgAwAAAEAAIAEAAEEAMAIAAEIAIAMAAABAACABAABBADACAABCACADAAAAQAAgAQAAQQAwAgAAQgAgCA4AAKcPACAQAACmDwAgxwUBAAAAAcwFQAAAAAHNBUAAAAABrgYBAAAAAa8GAQAAAAGwBgEAAAABAUoAAP0FACAGxwUBAAAAAcwFQAAAAAHNBUAAAAABrgYBAAAAAa8GAQAAAAGwBgEAAAABAUoAAP8FADAIDgAApQ8AIBAAAKQPACDHBQEAswsAIcwFQAC1CwAhzQVAALULACGuBgEAswsAIa8GAQCzCwAhsAYBALMLACECAAAAQgAgSgAAgQYAIAbHBQEAswsAIcwFQAC1CwAhzQVAALULACGuBgEAswsAIa8GAQCzCwAhsAYBALMLACECAAAAQAAgSgAAgwYAIAMAAABCACBPAAD9BQAgUAAAgQYAIAEAAABCACABAAAAQAAgAwQAAKEPACBVAACjDwAgVgAAog8AIAnDBQAA2wkAMMQFAACJBgAQxQUAANsJADDHBQEAggkAIcwFQACECQAhzQVAAIQJACGuBgEAggkAIa8GAQCCCQAhsAYBAIIJACEDAAAAQAAgAQAAiAYAMFQAAIkGACADAAAAQAAgAQAAQQAwAgAAQgAgAQAAABMAIAEAAAATACADAAAAEQAgAQAAEgAwAgAAEwAgAwAAABEAIAEAABIAMAIAABMAIAMAAAARACABAAASADACAAATACARDgAAzA4AIBgAAM0OACA1AADQDgAgNgAAoA8AIDgAAM4OACA5AADPDgAgOgAA0Q4AIDsAANIOACDGBQEAAAABxwUBAAAAAcwFQAAAAAHNBUAAAAAB9wUBAAAAAZMGAQAAAAGYBgEAAAABrQYBAAAAAa4GAQAAAAEBSgAAkQYAIAnGBQEAAAABxwUBAAAAAcwFQAAAAAHNBUAAAAAB9wUBAAAAAZMGAQAAAAGYBgEAAAABrQYBAAAAAa4GAQAAAAEBSgAAkwYAMBEOAACGDQAgGAAAhw0AIDUAAIoNACA2AACfDwAgOAAAiA0AIDkAAIkNACA6AACLDQAgOwAAjA0AIMYFAQCzCwAhxwUBALMLACHMBUAAtQsAIc0FQAC1CwAh9wUBALMLACGTBgEAswsAIZgGAQCzCwAhrQYBALMLACGuBgEAswsAIQIAAAATACBKAACVBgAgCcYFAQCzCwAhxwUBALMLACHMBUAAtQsAIc0FQAC1CwAh9wUBALMLACGTBgEAswsAIZgGAQCzCwAhrQYBALMLACGuBgEAswsAIQIAAAARACBKAACXBgAgAwAAABMAIE8AAJEGACBQAACVBgAgAQAAABMAIAEAAAARACADBAAAnA8AIFUAAJ4PACBWAACdDwAgDMMFAADaCQAwxAUAAJ0GABDFBQAA2gkAMMYFAQCCCQAhxwUBAIIJACHMBUAAhAkAIc0FQACECQAh9wUBAIIJACGTBgEAggkAIZgGAQCCCQAhrQYBAIIJACGuBgEAggkAIQMAAAARACABAACcBgAwVAAAnQYAIAMAAAARACABAAASADACAAATACABAAAAsgEAIAEAAACyAQAgAwAAAKsBACABAACxAQAwAgAAsgEAIAMAAACrAQAgAQAAsQEAMAIAALIBACADAAAAqwEAIAEAALEBADACAACyAQAgCwkAAJsPACA3AACgDgAgPAAAnw4AID0AAKEOACDGBQEAAAABxwUBAAAAAcwFQAAAAAHNBUAAAAABlgYBAAAAAasGAQAAAAGsBgEAAAABAUoAAKUGACAHxgUBAAAAAccFAQAAAAHMBUAAAAABzQVAAAAAAZYGAQAAAAGrBgEAAAABrAYBAAAAAQFKAACnBgAwCwkAAJoPACA3AADPDQAgPAAAzg0AID0AANANACDGBQEAswsAIccFAQCzCwAhzAVAALULACHNBUAAtQsAIZYGAQCzCwAhqwYBALMLACGsBgEAtAsAIQIAAACyAQAgSgAAqQYAIAfGBQEAswsAIccFAQCzCwAhzAVAALULACHNBUAAtQsAIZYGAQCzCwAhqwYBALMLACGsBgEAtAsAIQIAAACrAQAgSgAAqwYAIAMAAACyAQAgTwAApQYAIFAAAKkGACABAAAAsgEAIAEAAACrAQAgBAQAAJcPACBVAACZDwAgVgAAmA8AIKwGAACvCwAgCsMFAADZCQAwxAUAALEGABDFBQAA2QkAMMYFAQCCCQAhxwUBAIIJACHMBUAAhAkAIc0FQACECQAhlgYBAIIJACGrBgEAggkAIawGAQCDCQAhAwAAAKsBACABAACwBgAwVAAAsQYAIAMAAACrAQAgAQAAsQEAMAIAALIBACABAAAADwAgAQAAAA8AIAMAAAANACABAAAOADACAAAPACADAAAADQAgAQAADgAwAgAADwAgAwAAAA0AIAEAAA4AMAIAAA8AIBINAACdDgAgEQAAmw4AICUAAJYPACBAAACZDgAgQQAAmg4AIEIAAJwOACDGBQEAAAABxwUBAAAAAcoFAQAAAAHLBQEAAAABzAVAAAAAAc0FQAAAAAHwBQAAAKcGAqQGAQAAAAGlBgEAAAABqAYAAACoBgKpBgEAAAABqgYBAAAAAQFKAAC5BgAgDMYFAQAAAAHHBQEAAAABygUBAAAAAcsFAQAAAAHMBUAAAAABzQVAAAAAAfAFAAAApwYCpAYBAAAAAaUGAQAAAAGoBgAAAKgGAqkGAQAAAAGqBgEAAAABAUoAALsGADASDQAA_A0AIBEAAPoNACAlAACVDwAgQAAA-A0AIEEAAPkNACBCAAD7DQAgxgUBALMLACHHBQEAswsAIcoFAQCzCwAhywUBALMLACHMBUAAtQsAIc0FQAC1CwAh8AUAAPUNpwYipAYBALQLACGlBgEAtAsAIagGAAD2DagGIqkGAQC0CwAhqgYBALQLACECAAAADwAgSgAAvQYAIAzGBQEAswsAIccFAQCzCwAhygUBALMLACHLBQEAswsAIcwFQAC1CwAhzQVAALULACHwBQAA9Q2nBiKkBgEAtAsAIaUGAQC0CwAhqAYAAPYNqAYiqQYBALQLACGqBgEAtAsAIQIAAAANACBKAAC_BgAgAwAAAA8AIE8AALkGACBQAAC9BgAgAQAAAA8AIAEAAAANACAHBAAAkg8AIFUAAJQPACBWAACTDwAgpAYAAK8LACClBgAArwsAIKkGAACvCwAgqgYAAK8LACAPwwUAANIJADDEBQAAxQYAEMUFAADSCQAwxgUBAIIJACHHBQEAggkAIcoFAQCCCQAhywUBAIIJACHMBUAAhAkAIc0FQACECQAh8AUAANMJpwYipAYBAIMJACGlBgEAgwkAIagGAADUCagGIqkGAQCDCQAhqgYBAIMJACEDAAAADQAgAQAAxAYAMFQAAMUGACADAAAADQAgAQAADgAwAgAADwAgB8MFAADRCQAwxAUAAMsGABDFBQAA0QkAMMYFAgAAAAHHBQEAkQkAIaIGAQCRCQAhowZAAJMJACEBAAAAyAYAIAEAAADIBgAgB8MFAADRCQAwxAUAAMsGABDFBQAA0QkAMMYFAgCqCQAhxwUBAJEJACGiBgEAkQkAIaMGQACTCQAhAfoGAACRDwAgAwAAAMsGACABAADMBgAwAgAAyAYAIAMAAADLBgAgAQAAzAYAMAIAAMgGACADAAAAywYAIAEAAMwGADACAADIBgAgBMYFAgAAAAHHBQEAAAABogYBAAAAAaMGQAAAAAEBSgAA0AYAIATGBQIAAAABxwUBAAAAAaIGAQAAAAGjBkAAAAABAUoAANIGADAExgUCAP0LACHHBQEAswsAIaIGAQCzCwAhowZAALULACECAAAAyAYAIEoAANQGACAExgUCAP0LACHHBQEAswsAIaIGAQCzCwAhowZAALULACECAAAAywYAIEoAANYGACADAAAAyAYAIE8AANAGACBQAADUBgAgAQAAAMgGACABAAAAywYAIAUEAACMDwAgVQAAjw8AIFYAAI4PACCdAQAAjQ8AIJ4BAACQDwAgB8MFAADQCQAwxAUAANwGABDFBQAA0AkAMMYFAgCjCQAhxwUBAIIJACGiBgEAggkAIaMGQACECQAhAwAAAMsGACABAADbBgAwVAAA3AYAIAMAAADLBgAgAQAAzAYAMAIAAMgGACAMCwAAzQkAIAwAAM4JACANAADPCQAgwwUAAMoJADDEBQAAIwAQxQUAAMoJADDGBQEAAAABzAVAAJMJACHNBUAAkwkAIc4FQACUCQAhnwYgAMsJACGhBgAAzAmhBiIBAAAA3wYAIAEAAADfBgAgBgsAAIgPACAMAACJDwAgDQAAig8AIM4FAACvCwAgnwYAAK8LACD6BgAAiw8AIAMAAAAjACABAADiBgAwAgAA3wYAIAMAAAAjACABAADiBgAwAgAA3wYAIAMAAAAjACABAADiBgAwAgAA3wYAIAkLAACFDwAgDAAAhg8AIA0AAIcPACDGBQEAAAABzAVAAAAAAc0FQAAAAAHOBUAAAAABnwYgAAAAAaEGAAAAoQYCAUoAAOYGACAGxgUBAAAAAcwFQAAAAAHNBUAAAAABzgVAAAAAAZ8GIAAAAAGhBgAAAKEGAgFKAADoBgAwCQsAAO8OACAMAADwDgAgDQAA8Q4AIMYFAQCzCwAhzAVAALULACHNBUAAtQsAIc4FQAC2CwAhnwYgAO0OACGhBgAA7g6hBiICAAAA3wYAIEoAAOoGACAGxgUBALMLACHMBUAAtQsAIc0FQAC1CwAhzgVAALYLACGfBiAA7Q4AIaEGAADuDqEGIgIAAAAjACBKAADsBgAgAwAAAN8GACBPAADmBgAgUAAA6gYAIAEAAADfBgAgAQAAACMAIAUEAADqDgAgVQAA7A4AIFYAAOsOACDOBQAArwsAIJ8GAACvCwAgCcMFAADDCQAwxAUAAPIGABDFBQAAwwkAMMYFAQCCCQAhzAVAAIQJACHNBUAAhAkAIc4FQACFCQAhnwYgAMQJACGhBgAAxQmhBiIDAAAAIwAgAQAA8QYAMFQAAPIGACADAAAAIwAgAQAA4gYAMAIAAN8GACABAAAAtwEAIAEAAAC3AQAgAwAAACUAIAEAALYBADACAAC3AQAgAwAAACUAIAEAALYBADACAAC3AQAgAwAAACUAIAEAALYBADACAAC3AQAgCgkAAOkOACAKAACoDQAgjwYBAAAAAZYGAQAAAAGYBgEAAAABmgYBAAAAAZsGAQAAAAGcBgEAAAABnQYBAAAAAZ4GAQAAAAEBSgAA-gYAIAiPBgEAAAABlgYBAAAAAZgGAQAAAAGaBgEAAAABmwYBAAAAAZwGAQAAAAGdBgEAAAABngYBAAAAAQFKAAD8BgAwCgkAAOgOACAKAACmDQAgjwYBALMLACGWBgEAswsAIZgGAQC0CwAhmgYBALMLACGbBgEAswsAIZwGAQCzCwAhnQYBALMLACGeBgEAswsAIQIAAAC3AQAgSgAA_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_wVAAJQJACEBAAAAgwgAIAEAAACDCAAgBCoAAJUMACAsAACWDAAg_wUAAK8LACD6BgAAlwwAIAMAAACNAQAgAQAAhggAMAIAAIMIACADAAAAjQEAIAEAAIYIADACAACDCAAgAwAAAI0BACABAACGCAAwAgAAgwgAIAgqAACTDAAgLAAAlAwAIMYFAQAAAAHMBUAAAAABzQVAAAAAAe4FAQAAAAH-BQIAAAAB_wVAAAAAAQFKAACKCAAgBsYFAQAAAAHMBUAAAAABzQVAAAAAAe4FAQAAAAH-BQIAAAAB_wVAAAAAAQFKAACMCAAwCCoAAIUMACAsAACGDAAgxgUBALMLACHMBUAAtQsAIc0FQAC1CwAh7gUBALMLACH-BQIA_QsAIf8FQAC2CwAhAgAAAIMIACBKAACOCAAgBsYFAQCzCwAhzAVAALULACHNBUAAtQsAIe4FAQCzCwAh_gUCAP0LACH_BUAAtgsAIQIAAACNAQAgSgAAkAgAIAMAAACDCAAgTwAAiggAIFAAAI4IACABAAAAgwgAIAEAAACNAQAgBgQAAIAMACBVAACDDAAgVgAAggwAIJ0BAACBDAAgngEAAIQMACD_BQAArwsAIAnDBQAAqAkAMMQFAACWCAAQxQUAAKgJADDGBQEAggkAIcwFQACECQAhzQVAAIQJACHuBQEAggkAIf4FAgCjCQAh_wVAAIUJACEDAAAAjQEAIAEAAJUIADBUAACWCAAgAwAAAI0BACABAACGCAAwAgAAgwgAIAEAAACRAQAgAQAAAJEBACADAAAAjwEAIAEAAJABADACAACRAQAgAwAAAI8BACABAACQAQAwAgAAkQEAIAMAAACPAQAgAQAAkAEAMAIAAJEBACAMKwAA_wsAIMYFAQAAAAHMBUAAAAAB7wUCAAAAAfAFAQAAAAHxBQEAAAAB8gWAAAAAAfMFgAAAAAH0BQEAAAAB9QVAAAAAAfYFQAAAAAH3BQEAAAABAUoAAJ4IACALxgUBAAAAAcwFQAAAAAHvBQIAAAAB8AUBAAAAAfEFAQAAAAHyBYAAAAAB8wWAAAAAAfQFAQAAAAH1BUAAAAAB9gVAAAAAAfcFAQAAAAEBSgAAoAgAMAwrAAD-CwAgxgUBALMLACHMBUAAtQsAIe8FAgD9CwAh8AUBALMLACHxBQEAtAsAIfIFgAAAAAHzBYAAAAAB9AUBALQLACH1BUAAtgsAIfYFQAC2CwAh9wUBALMLACECAAAAkQEAIEoAAKIIACALxgUBALMLACHMBUAAtQsAIe8FAgD9CwAh8AUBALMLACHxBQEAtAsAIfIFgAAAAAHzBYAAAAAB9AUBALQLACH1BUAAtgsAIfYFQAC2CwAh9wUBALMLACECAAAAjwEAIEoAAKQIACADAAAAkQEAIE8AAJ4IACBQAACiCAAgAQAAAJEBACABAAAAjwEAIAsEAAD4CwAgVQAA-wsAIFYAAPoLACCdAQAA-QsAIJ4BAAD8CwAg8QUAAK8LACDyBQAArwsAIPMFAACvCwAg9AUAAK8LACD1BQAArwsAIPYFAACvCwAgDsMFAACiCQAwxAUAAKoIABDFBQAAogkAMMYFAQCCCQAhzAVAAIQJACHvBQIAowkAIfAFAQCCCQAh8QUBAIMJACHyBQAApAkAIPMFAACkCQAg9AUBAIMJACH1BUAAhQkAIfYFQACFCQAh9wUBAIIJACEDAAAAjwEAIAEAAKkIADBUAACqCAAgAwAAAI8BACABAACQAQAwAgAAkQEAIAEAAACXAQAgAQAAAJcBACADAAAAlQEAIAEAAJYBADACAACXAQAgAwAAAJUBACABAACWAQAwAgAAlwEAIAMAAACVAQAgAQAAlgEAMAIAAJcBACAIKgAA9gsAIC8AAPcLACDGBQEAAAABzAVAAAAAAeoFEAAAAAHsBQAAAOwFAu0FQAAAAAHuBQEAAAABAUoAALIIACAGxgUBAAAAAcwFQAAAAAHqBRAAAAAB7AUAAADsBQLtBUAAAAAB7gUBAAAAAQFKAAC0CAAwCCoAAO8LACAvAADwCwAgxgUBALMLACHMBUAAtQsAIeoFEADCCwAh7AUAAO4L7AUi7QVAALULACHuBQEAswsAIQIAAACXAQAgSgAAtggAIAbGBQEAswsAIcwFQAC1CwAh6gUQAMILACHsBQAA7gvsBSLtBUAAtQsAIe4FAQCzCwAhAgAAAJUBACBKAAC4CAAgAwAAAJcBACBPAACyCAAgUAAAtggAIAEAAACXAQAgAQAAAJUBACAFBAAA6QsAIFUAAOwLACBWAADrCwAgnQEAAOoLACCeAQAA7QsAIAnDBQAAngkAMMQFAAC-CAAQxQUAAJ4JADDGBQEAggkAIcwFQACECQAh6gUQAJcJACHsBQAAnwnsBSLtBUAAhAkAIe4FAQCCCQAhAwAAAJUBACABAAC9CAAwVAAAvggAIAMAAACVAQAgAQAAlgEAMAIAAJcBACAOLgAAnQkAIMMFAACcCQAwxAUAAJkBABDFBQAAnAkAMMYFAQAAAAHIBQEAkgkAIcwFQACTCQAh4wUBAJEJACHkBQEAkQkAIeUFAQCRCQAh5gVAAJMJACHnBQEAkgkAIegFAQAAAAHpBQAAmwkAIAEAAADBCAAgAQAAAMEIACAELgAA5wsAIMgFAACvCwAg5wUAAK8LACD6BgAA6AsAIAMAAACZAQAgAQAAxAgAMAIAAMEIACADAAAAmQEAIAEAAMQIADACAADBCAAgAwAAAJkBACABAADECAAwAgAAwQgAIAouAADmCwAgxgUBAAAAAcgFAQAAAAHMBUAAAAAB4wUBAAAAAeQFAQAAAAHlBQEAAAAB5gVAAAAAAecFAQAAAAHoBQEAAAABAUoAAMgIACAJxgUBAAAAAcgFAQAAAAHMBUAAAAAB4wUBAAAAAeQFAQAAAAHlBQEAAAAB5gVAAAAAAecFAQAAAAHoBQEAAAABAUoAAMoIADAKLgAA5QsAIMYFAQCzCwAhyAUBALQLACHMBUAAtQsAIeMFAQCzCwAh5AUBALMLACHlBQEAswsAIeYFQAC1CwAh5wUBALQLACHoBQEAswsAIQIAAADBCAAgSgAAzAgAIAnGBQEAswsAIcgFAQC0CwAhzAVAALULACHjBQEAswsAIeQFAQCzCwAh5QUBALMLACHmBUAAtQsAIecFAQC0CwAh6AUBALMLACECAAAAmQEAIEoAAM4IACADAAAAwQgAIE8AAMgIACBQAADMCAAgAQAAAMEIACABAAAAmQEAIAUEAADiCwAgVQAA5AsAIFYAAOMLACDIBQAArwsAIOcFAACvCwAgDMMFAACaCQAwxAUAANQIABDFBQAAmgkAMMYFAQCCCQAhyAUBAIMJACHMBUAAhAkAIeMFAQCCCQAh5AUBAIIJACHlBQEAggkAIeYFQACECQAh5wUBAIMJACHoBQEAggkAIQMAAACZAQAgAQAA0wgAMFQAANQIACADAAAAmQEAIAEAAMQIADACAADBCAAgAQAAAKMBACABAAAAowEAIAMAAACeAQAgAQAAogEAMAIAAKMBACADAAAAngEAIAEAAKIBADACAACjAQAgAwAAAJ4BACABAACiAQAwAgAAowEAIA8IAADhCwAgMwAA1wsAIMYFAQAAAAHHBQEAAAAByAUBAAAAAcoFAQAAAAHLBQEAAAABzAVAAAAAAc0FQAAAAAHOBUAAAAAB3gUBAAAAAd8FAQAAAAHgBQEAAAAB4QUBAAAAAeIFEAAAAAEBSgAA3AgAIA3GBQEAAAABxwUBAAAAAcgFAQAAAAHKBQEAAAABywUBAAAAAcwFQAAAAAHNBUAAAAABzgVAAAAAAd4FAQAAAAHfBQEAAAAB4AUBAAAAAeEFAQAAAAHiBRAAAAABAUoAAN4IADAPCAAA4AsAIDMAAMQLACDGBQEAswsAIccFAQCzCwAhyAUBALQLACHKBQEAswsAIcsFAQCzCwAhzAVAALULACHNBUAAtQsAIc4FQAC2CwAh3gUBALMLACHfBQEAtAsAIeAFAQC0CwAh4QUBALQLACHiBRAAwgsAIQIAAACjAQAgSgAA4AgAIA3GBQEAswsAIccFAQCzCwAhyAUBALQLACHKBQEAswsAIcsFAQCzCwAhzAVAALULACHNBUAAtQsAIc4FQAC2CwAh3gUBALMLACHfBQEAtAsAIeAFAQC0CwAh4QUBALQLACHiBRAAwgsAIQIAAACeAQAgSgAA4ggAIAMAAACjAQAgTwAA3AgAIFAAAOAIACABAAAAowEAIAEAAACeAQAgCgQAANsLACBVAADeCwAgVgAA3QsAIJ0BAADcCwAgngEAAN8LACDIBQAArwsAIM4FAACvCwAg3wUAAK8LACDgBQAArwsAIOEFAACvCwAgEMMFAACWCQAwxAUAAOgIABDFBQAAlgkAMMYFAQCCCQAhxwUBAIIJACHIBQEAgwkAIcoFAQCCCQAhywUBAIIJACHMBUAAhAkAIc0FQACECQAhzgVAAIUJACHeBQEAggkAId8FAQCDCQAh4AUBAIMJACHhBQEAgwkAIeIFEACXCQAhAwAAAJ4BACABAADnCAAwVAAA6AgAIAMAAACeAQAgAQAAogEAMAIAAKMBACANMgAAlQkAIMMFAACQCQAwxAUAAKABABDFBQAAkAkAMMYFAQAAAAHHBQEAkQkAIcgFAQCSCQAhyQUBAJIJACHKBQEAkQkAIcsFAQCRCQAhzAVAAJMJACHNBUAAkwkAIc4FQACUCQAhAQAAAOsIACABAAAA6wgAIAUyAADZCwAgyAUAAK8LACDJBQAArwsAIM4FAACvCwAg-gYAANoLACADAAAAoAEAIAEAAO4IADACAADrCAAgAwAAAKABACABAADuCAAwAgAA6wgAIAMAAACgAQAgAQAA7ggAMAIAAOsIACAKMgAA2AsAIMYFAQAAAAHHBQEAAAAByAUBAAAAAckFAQAAAAHKBQEAAAABywUBAAAAAcwFQAAAAAHNBUAAAAABzgVAAAAAAQFKAADyCAAgCcYFAQAAAAHHBQEAAAAByAUBAAAAAckFAQAAAAHKBQEAAAABywUBAAAAAcwFQAAAAAHNBUAAAAABzgVAAAAAAQFKAAD0CAAwCjIAALcLACDGBQEAswsAIccFAQCzCwAhyAUBALQLACHJBQEAtAsAIcoFAQCzCwAhywUBALMLACHMBUAAtQsAIc0FQAC1CwAhzgVAALYLACECAAAA6wgAIEoAAPYIACAJxgUBALMLACHHBQEAswsAIcgFAQC0CwAhyQUBALQLACHKBQEAswsAIcsFAQCzCwAhzAVAALULACHNBUAAtQsAIc4FQAC2CwAhAgAAAKABACBKAAD4CAAgAwAAAOsIACBPAADyCAAgUAAA9ggAIAEAAADrCAAgAQAAAKABACAGBAAAsAsAIFUAALILACBWAACxCwAgyAUAAK8LACDJBQAArwsAIM4FAACvCwAgDMMFAACBCQAwxAUAAP4IABDFBQAAgQkAMMYFAQCCCQAhxwUBAIIJACHIBQEAgwkAIckFAQCDCQAhygUBAIIJACHLBQEAggkAIcwFQACECQAhzQVAAIQJACHOBUAAhQkAIQMAAACgAQAgAQAA_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-gUBAAAAAfsFgAAAAAH8BYAAAAAB_QWAAAAAAQzPBYAAAAAB0gWAAAAAAdMFgAAAAAHUBYAAAAAB1QWAAAAAAdYFgAAAAAH4BQEAAAAB-QUBAAAAAfoFAQAAAAH7BYAAAAAB_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_woAMMQFAABAABDFBQAA_woAMMcFAQCRCQAhzAVAAJMJACHNBUAAkwkAIa4GAQCRCQAhrwYBAJEJACGwBgEAkQkAIe8GAABAACDwBgAAQAAgCcMFAADrCQAwxAUAAMoFABDFBQAA6wkAMMYFAQCCCQAhygUBAIIJACHMBUAAhAkAIc0FQACECQAhrgYBAIIJACG1BgAA7Am1BiIHBAAAigkAIFUAAO4JACBWAADuCQAgzwUAAAC1BgLQBQAAALUGCNEFAAAAtQYI1gUAAO0JtQYiBwQAAIoJACBVAADuCQAgVgAA7gkAIM8FAAAAtQYC0AUAAAC1BgjRBQAAALUGCNYFAADtCbUGIgTPBQAAALUGAtAFAAAAtQYI0QUAAAC1BgjWBQAA7gm1BiINwwUAAO8JADDEBQAAtgUAEMUFAADvCQAwxgUBAIIJACHMBUAAhAkAIc0FQACECQAhhgYAAKQJACC2BgEAggkAIbcGAQCCCQAhuAYgALcJACG6BgAA8Am6BiK8BgAA8Qm8BiK9BkAAhAkAIQcEAACKCQAgVQAA9QkAIFYAAPUJACDPBQAAALoGAtAFAAAAugYI0QUAAAC6BgjWBQAA9Am6BiIHBAAAigkAIFUAAPMJACBWAADzCQAgzwUAAAC8BgLQBQAAALwGCNEFAAAAvAYI1gUAAPIJvAYiBwQAAIoJACBVAADzCQAgVgAA8wkAIM8FAAAAvAYC0AUAAAC8BgjRBQAAALwGCNYFAADyCbwGIgTPBQAAALwGAtAFAAAAvAYI0QUAAAC8BgjWBQAA8wm8BiIHBAAAigkAIFUAAPUJACBWAAD1CQAgzwUAAAC6BgLQBQAAALoGCNEFAAAAugYI1gUAAPQJugYiBM8FAAAAugYC0AUAAAC6BgjRBQAAALoGCNYFAAD1CboGIg3DBQAA9gkAMMQFAAClBQAQxQUAAPYJADDGBQEAkQkAIcwFQACTCQAhzQVAAJMJACGGBgAA-gkAILYGAQCRCQAhtwYBAJEJACG4BiAA9wkAIboGAAD4CboGIrwGAAD5CbwGIr0GQACTCQAhAs8FIAAAAAHWBSAAuQkAIQTPBQAAALoGAtAFAAAAugYI0QUAAAC6BgjWBQAA9Qm6BiIEzwUAAAC8BgLQBQAAALwGCNEFAAAAvAYI1gUAAPMJvAYiDM8FgAAAAAHSBYAAAAAB0wWAAAAAAdQFgAAAAAHVBYAAAAAB1gWAAAAAAfgFAQAAAAH5BQEAAAAB-gUBAAAAAfsFgAAAAAH8BYAAAAAB_QWAAAAAARQ-AQCCCQAhQAEAggkAIcMFAAD7CQAwxAUAAJ8FABDFBQAA-wkAMMwFQACECQAhzQVAAIQJACGkBgEAggkAIa4GAQCCCQAhtwYBAIIJACG8BgEAggkAIb4GAQCCCQAhvwYBAIIJACHBBgAA_AnBBiLCBgEAggkAIcMGAQCCCQAhxAYBAIIJACHFBgEAgwkAIcYGAQCDCQAhxwYBAIMJACEHBAAAigkAIFUAAP4JACBWAAD-CQAgzwUAAADBBgLQBQAAAMEGCNEFAAAAwQYI1gUAAP0JwQYiBwQAAIoJACBVAAD-CQAgVgAA_gkAIM8FAAAAwQYC0AUAAADBBgjRBQAAAMEGCNYFAAD9CcEGIgTPBQAAAMEGAtAFAAAAwQYI0QUAAADBBgjWBQAA_gnBBiIJwwUAAP8JADDEBQAAiwUAEMUFAAD_CQAwxgUBAIIJACHHBQEAggkAIcwFQACECQAhzQVAAIQJACHwBQAAgArJBiKLBgEAggkAIQcEAACKCQAgVQAAggoAIFYAAIIKACDPBQAAAMkGAtAFAAAAyQYI0QUAAADJBgjWBQAAgQrJBiIHBAAAigkAIFUAAIIKACBWAACCCgAgzwUAAADJBgLQBQAAAMkGCNEFAAAAyQYI1gUAAIEKyQYiBM8FAAAAyQYC0AUAAADJBgjRBQAAAMkGCNYFAACCCskGIgsDAACFCgAgPAAAhgoAIMMFAACDCgAwxAUAAM8BABDFBQAAgwoAMMYFAQCRCQAhxwUBAJEJACHMBUAAkwkAIc0FQACTCQAh8AUAAIQKyQYiiwYBAJEJACEEzwUAAADJBgLQBQAAAMkGCNEFAAAAyQYI1gUAAIIKyQYiA9sFAAAIACDcBQAACAAg3QUAAAgAIAPbBQAADQAg3AUAAA0AIN0FAAANACAJwwUAAIcKADDEBQAA9QQAEMUFAACHCgAwxgUBAIIJACHKBQEAggkAIcwFQACECQAhzQVAAIQJACGqBgEAggkAIbUGAACICsoGIgcEAACKCQAgVQAAigoAIFYAAIoKACDPBQAAAMoGAtAFAAAAygYI0QUAAADKBgjWBQAAiQrKBiIHBAAAigkAIFUAAIoKACBWAACKCgAgzwUAAADKBgLQBQAAAMoGCNEFAAAAygYI1gUAAIkKygYiBM8FAAAAygYC0AUAAADKBgjRBQAAAMoGCNYFAACKCsoGIgfDBQAAiwoAMMQFAADhBAAQxQUAAIsKADDGBQEAggkAIbUGAACMCssGIssGAQCCCQAhzAYBAIIJACEHBAAAigkAIFUAAI4KACBWAACOCgAgzwUAAADLBgLQBQAAAMsGCNEFAAAAywYI1gUAAI0KywYiBwQAAIoJACBVAACOCgAgVgAAjgoAIM8FAAAAywYC0AUAAADLBgjRBQAAAMsGCNYFAACNCssGIgTPBQAAAMsGAtAFAAAAywYI0QUAAADLBgjWBQAAjgrLBiIHwwUAAI8KADDEBQAAzQQAEMUFAACPCgAwxgUBAIIJACHLBQEAggkAIbUGAACQCs4GIswGAQCCCQAhBwQAAIoJACBVAACSCgAgVgAAkgoAIM8FAAAAzgYC0AUAAADOBgjRBQAAAM4GCNYFAACRCs4GIgcEAACKCQAgVQAAkgoAIFYAAJIKACDPBQAAAM4GAtAFAAAAzgYI0QUAAADOBgjWBQAAkQrOBiIEzwUAAADOBgLQBQAAAM4GCNEFAAAAzgYI1gUAAJIKzgYiB8MFAACTCgAwxAUAALkEABDFBQAAkwoAMMYFAQCCCQAhkQYBAIIJACG1BgAAlArPBiLMBgEAggkAIQcEAACKCQAgVQAAlgoAIFYAAJYKACDPBQAAAM8GAtAFAAAAzwYI0QUAAADPBgjWBQAAlQrPBiIHBAAAigkAIFUAAJYKACBWAACWCgAgzwUAAADPBgLQBQAAAM8GCNEFAAAAzwYI1gUAAJUKzwYiBM8FAAAAzwYC0AUAAADPBgjRBQAAAM8GCNYFAACWCs8GIgXDBQAAlwoAMMQFAAClBAAQxQUAAJcKADDGBQEAggkAIZAGAQCCCQAhCSIAAJkKACAkAACaCgAgJgAAmwoAICgAAJwKACDDBQAAmAoAMMQFAAB5ABDFBQAAmAoAMMYFAQCRCQAhkAYBAJEJACERDQAAzwkAIA4AAIALACARAACGCwAgIQAAiwsAICMAAIwLACApAAD0CgAgwwUAAIkLADDEBQAALgAQxQUAAIkLADDGBQEAkQkAIcoFAQCRCQAhzAVAAJMJACHNBUAAkwkAIa4GAQCRCQAhtQYAAIoLtQYi7wYAAC4AIPAGAAAuACAD2wUAAHsAINwFAAB7ACDdBQAAewAgA9sFAAB_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_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_gMAIPAGAAD-AwAgDBAAAO8KACAZAADxCgAgwwUAAPAKADDEBQAAXQAQxQUAAPAKADDGBQEAkQkAIcwFQACTCQAhzQVAAJMJACGwBgEAkQkAIdYGQACTCQAh1wYBAJEJACHYBgIAqgkAIQPbBQAAWwAg3AUAAFsAIN0FAABbACAJFAAA8woAIBoAAPQKACDDBQAA8goAMMQFAABbABDFBQAA8goAMMYFAQCRCQAhzAVAAJMJACHNBUAAkwkAIdUGAQCSCQAhDhAAAO8KACAZAADxCgAgwwUAAPAKADDEBQAAXQAQxQUAAPAKADDGBQEAkQkAIcwFQACTCQAhzQVAAJMJACGwBgEAkQkAIdYGQACTCQAh1wYBAJEJACHYBgIAqgkAIe8GAABdACDwBgAAXQAgDhEAAMsKACAYAAD2CgAgGwAA9woAIMMFAAD1CgAwxAUAAFUAEMUFAAD1CgAwxgUBAJEJACHKBQEAkgkAIcwFQACTCQAhzQVAAJMJACHTBgEAkgkAIdQGAQCSCQAh7wYAAFUAIPAGAABVACAMEQAAywoAIBgAAPYKACAbAAD3CgAgwwUAAPUKADDEBQAAVQAQxQUAAPUKADDGBQEAkQkAIcoFAQCSCQAhzAVAAJMJACHNBUAAkwkAIdMGAQCSCQAh1AYBAJIJACEQCQAAtQoAIBUAALQKACAWAAC2CgAgHAAAtwoAIMMFAACzCgAwxAUAAEwAEMUFAACzCgAwxgUBAJEJACHMBUAAkwkAIc0FQACTCQAhlgYBAJEJACHZBkAAkwkAIdsGQACTCQAh3AYBAJEJACHvBgAATAAg8AYAAEwAIAsUAADzCgAgGgAA9AoAIMMFAADyCgAwxAUAAFsAEMUFAADyCgAwxgUBAJEJACHMBUAAkwkAIc0FQACTCQAh1QYBAJIJACHvBgAAWwAg8AYAAFsAIAsUAAD5CgAgFwAA9goAIMMFAAD4CgAwxAUAAE4AEMUFAAD4CgAwxgUBAJEJACHMBUAAkwkAIc0FQACTCQAh1QYBAJEJACHZBkAAkwkAIdoGAQCSCQAhDhAAAO8KACAWAAC2CgAgwwUAAO4KADDEBQAAagAQxQUAAO4KADDGBQEAkQkAIcwFQACTCQAhzQVAAJMJACGwBgEAkQkAIdYGQACTCQAh1wYBAJEJACHYBgIAqgkAIe8GAABqACDwBgAAagAgChQAAPsKACAXAAD2CgAgwwUAAPoKADDEBQAASAAQxQUAAPoKADDGBQEAkQkAIcwFQACTCQAhzQVAAJMJACHVBgEAkQkAId0GAgCqCQAhDhAAAO8KACAdAAD9CgAgwwUAAPwKADDEBQAARAAQxQUAAPwKADDGBQEAkQkAIcwFQACTCQAhzQVAAJMJACGwBgEAkQkAIdYGQACTCQAh1wYBAJEJACHYBgIAqgkAIe8GAABEACDwBgAARAAgDBAAAO8KACAdAAD9CgAgwwUAAPwKADDEBQAARAAQxQUAAPwKADDGBQEAkQkAIcwFQACTCQAhzQVAAJMJACGwBgEAkQkAIdYGQACTCQAh1wYBAJEJACHYBgIAqgkAIQPbBQAASAAg3AUAAEgAIN0FAABIACACrwYBAAAAAbAGAQAAAAELDgAAgAsAIBAAAO8KACDDBQAA_woAMMQFAABAABDFBQAA_woAMMcFAQCRCQAhzAVAAJMJACHNBUAAkwkAIa4GAQCRCQAhrwYBAJEJACGwBgEAkQkAIQ8DAADnCQAgBwAAtAkAIAsAAOkJACAMAADqCQAgDwAA6AkAIMMFAADkCQAwxAUAANAFABDFBQAA5AkAMMYFAQCRCQAhzAVAAJMJACHNBUAAkwkAIfAFAADmCbQGIqEGAADlCbMGIu8GAADQBQAg8AYAANAFACACngYBAAAAAa4GAQAAAAECsAYBAAAAAbEGAQAAAAENDgAAgAsAIBAAAO8KACDDBQAAgwsAMMQFAAA3ABDFBQAAgwsAMMwFQACTCQAhzQVAAJMJACGbBgEAkQkAIZwGAQCRCQAhngYBAJEJACGuBgEAkQkAIbAGAQCRCQAhsQYBAJEJACELEAAA7woAIBEAAIYLACDDBQAAhAsAMMQFAAA5ABDFBQAAhAsAMMYFAQCRCQAhygUBAJEJACHMBUAAkwkAIc0FQACTCQAhsAYBAJEJACG1BgAAhQvTBiIEzwUAAADTBgLQBQAAANMGCNEFAAAA0wYI1gUAAKwK0wYiDgYAAMgKACAiAADLCgAgQwAAyQoAIEQAAMoKACDDBQAAxQoAMMQFAACGAgAQxQUAAMUKADDGBQEAkQkAIfAFAADGCuIGIqEGAADHCuMGIt8GAQCRCQAh4AYBAJEJACHvBgAAhgIAIPAGAACGAgAgFQ4AAIALACA-AQCRCQAhQAEAkQkAIcMFAACHCwAwxAUAADMAEMUFAACHCwAwzAVAAJMJACHNBUAAkwkAIaQGAQCRCQAhrgYBAJEJACG3BgEAkQkAIbwGAQCRCQAhvgYBAJEJACG_BgEAkQkAIcEGAACIC8EGIsIGAQCRCQAhwwYBAJEJACHEBgEAkQkAIcUGAQCSCQAhxgYBAJIJACHHBgEAkgkAIQTPBQAAAMEGAtAFAAAAwQYI0QUAAADBBgjWBQAA_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_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_AYCAAAAAf0GAgAAAAH-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_gUCAAAAAf8FQAAAAAECAAAAgwgAIE8AAL8MACADAAAAjQEAIE8AAL8MACBQAADDDAAgCAAAAI0BACAsAACGDAAgSgAAwwwAIMYFAQCzCwAhzAVAALULACHNBUAAtQsAIf4FAgD9CwAh_wVAALYLACEGLAAAhgwAIMYFAQCzCwAhzAVAALULACHNBUAAtQsAIf4FAgD9CwAh_wVAALYLACEDTwAAjxYAIPEGAACQFgAg9wYAAN8GACADTwAAjRYAIPEGAACOFgAg9wYAADAAIANPAACLFgAg8QYAAIwWACD3BgAADwAgA08AAL8MACDxBgAAwAwAIPcGAACDCAAgBE8AALYMADDxBgAAtwwAMPMGAAC5DAAg9wYAAMkLADAETwAAqgwAMPEGAACrDAAw8wYAAK0MACD3BgAArgwAMAAAAAtPAAD7DAAwUAAAgA0AMPEGAAD8DAAw8gYAAP0MADDzBgAA_gwAIPQGAAD_DAAw9QYAAP8MADD2BgAA_wwAMPcGAAD_DAAw-AYAAIENADD5BgAAgg0AMAtPAADPDAAwUAAA1AwAMPEGAADQDAAw8gYAANEMADDzBgAA0gwAIPQGAADTDAAw9QYAANMMADD2BgAA0wwAMPcGAADTDAAw-AYAANUMADD5BgAA1gwAMAslAAD6DAAgNQAA-QwAIMYFAQAAAAHHBQEAAAAByAUBAAAAAckFAQAAAAHLBQEAAAABzAVAAAAAAc0FQAAAAAHOBUAAAAABkgYgAAAAAQIAAAAXACBPAAD4DAAgAwAAABcAIE8AAPgMACBQAADaDAAgAUoAAIoWADAQJQAAngsAIDUAAJwLACA2AACdCwAgwwUAAJsLADDEBQAAFQAQxQUAAJsLADDGBQEAAAABxwUBAJEJACHIBQEAkgkAIckFAQCSCQAhywUBAJIJACHMBUAAkwkAIc0FQACTCQAhzgVAAJQJACGSBiAA9wkAIZMGAQCSCQAhAgAAABcAIEoAANoMACACAAAA1wwAIEoAANgMACANwwUAANYMADDEBQAA1wwAEMUFAADWDAAwxgUBAJEJACHHBQEAkQkAIcgFAQCSCQAhyQUBAJIJACHLBQEAkgkAIcwFQACTCQAhzQVAAJMJACHOBUAAlAkAIZIGIAD3CQAhkwYBAJIJACENwwUAANYMADDEBQAA1wwAEMUFAADWDAAwxgUBAJEJACHHBQEAkQkAIcgFAQCSCQAhyQUBAJIJACHLBQEAkgkAIcwFQACTCQAhzQVAAJMJACHOBUAAlAkAIZIGIAD3CQAhkwYBAJIJACEJxgUBALMLACHHBQEAswsAIcgFAQC0CwAhyQUBALQLACHLBQEAtAsAIcwFQAC1CwAhzQVAALULACHOBUAAtgsAIZIGIADZDAAhAfQGIAAAAAELJQAA3AwAIDUAANsMACDGBQEAswsAIccFAQCzCwAhyAUBALQLACHJBQEAtAsAIcsFAQC0CwAhzAVAALULACHNBUAAtQsAIc4FQAC2CwAhkgYgANkMACELTwAA3QwAMFAAAOIMADDxBgAA3gwAMPIGAADfDAAw8wYAAOAMACD0BgAA4QwAMPUGAADhDAAw9gYAAOEMADD3BgAA4QwAMPgGAADjDAAw-QYAAOQMADAHTwAA_hUAIFAAAIgWACDxBgAA_xUAIPIGAACHFgAg9QYAAKsBACD2BgAAqwEAIPcGAACyAQAgEQkAAPYMACAzAAD3DAAgxgUBAAAAAccFAQAAAAHIBQEAAAAByQUBAAAAAcwFQAAAAAHNBUAAAAABzgVAAAAAAd4FAQAAAAHfBQEAAAAB4AUBAAAAAeIFEAAAAAGCBgAAAIIGApIGIAAAAAGVBgAAAJUGApYGAQAAAAECAAAAGwAgTwAA9QwAIAMAAAAbACBPAAD1DAAgUAAA6QwAIAFKAACGFgAwFggAAJkLACAJAACaCwAgMwAA2woAIMMFAACWCwAwxAUAABkAEMUFAACWCwAwxgUBAAAAAccFAQCRCQAhyAUBAJIJACHJBQEAkgkAIcwFQACTCQAhzQVAAJMJACHOBUAAlAkAId4FAQCRCQAh3wUBAAAAAeAFAQAAAAHhBQEAkgkAIeIFEACYCwAhggYAAJMLggYikgYgAPcJACGVBgAAlwuVBiKWBgEAkgkAIQIAAAAbACBKAADpDAAgAgAAAOUMACBKAADmDAAgE8MFAADkDAAwxAUAAOUMABDFBQAA5AwAMMYFAQCRCQAhxwUBAJEJACHIBQEAkgkAIckFAQCSCQAhzAVAAJMJACHNBUAAkwkAIc4FQACUCQAh3gUBAJEJACHfBQEAkgkAIeAFAQCSCQAh4QUBAJIJACHiBRAAmAsAIYIGAACTC4IGIpIGIAD3CQAhlQYAAJcLlQYilgYBAJIJACETwwUAAOQMADDEBQAA5QwAEMUFAADkDAAwxgUBAJEJACHHBQEAkQkAIcgFAQCSCQAhyQUBAJIJACHMBUAAkwkAIc0FQACTCQAhzgVAAJQJACHeBQEAkQkAId8FAQCSCQAh4AUBAJIJACHhBQEAkgkAIeIFEACYCwAhggYAAJMLggYikgYgAPcJACGVBgAAlwuVBiKWBgEAkgkAIQ_GBQEAswsAIccFAQCzCwAhyAUBALQLACHJBQEAtAsAIcwFQAC1CwAhzQVAALULACHOBUAAtgsAId4FAQCzCwAh3wUBALQLACHgBQEAtAsAIeIFEADoDAAhggYAAM8LggYikgYgANkMACGVBgAA5wyVBiKWBgEAtAsAIQH0BgAAAJUGAgX0BhAAAAAB-wYQAAAAAfwGEAAAAAH9BhAAAAAB_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-QYAAMoNADALTwAAtA0AMFAAALkNADDxBgAAtQ0AMPIGAAC2DQAw8wYAALcNACD0BgAAuA0AMPUGAAC4DQAw9gYAALgNADD3BgAAuA0AMPgGAAC6DQAw-QYAALsNADALTwAAqQ0AMFAAAK0NADDxBgAAqg0AMPIGAACrDQAw8wYAAKwNACD0BgAA4QwAMPUGAADhDAAw9gYAAOEMADD3BgAA4QwAMPgGAACuDQAw-QYAAOQMADALTwAAmw0AMFAAAKANADDxBgAAnA0AMPIGAACdDQAw8wYAAJ4NACD0BgAAnw0AMPUGAACfDQAw9gYAAJ8NADD3BgAAnw0AMPgGAAChDQAw-QYAAKINADALTwAAjQ0AMFAAAJINADDxBgAAjg0AMPIGAACPDQAw8wYAAJANACD0BgAAkQ0AMPUGAACRDQAw9gYAAJENADD3BgAAkQ0AMPgGAACTDQAw-QYAAJQNADAGCgAAmg0AII8GAQAAAAGXBgEAAAABmAYBAAAAAZkGAQAAAAGaBgEAAAABAgAAALoBACBPAACZDQAgAwAAALoBACBPAACZDQAgUAAAlw0AIAFKAAD5FQAwDAkAALUKACAKAADUCgAgwwUAANMKADDEBQAAJwAQxQUAANMKADCPBgEAAAABlgYBAJEJACGXBgEAkQkAIZgGAQCRCQAhmQYBAJIJACGaBgEAkQkAIeQGAADSCgAgAgAAALoBACBKAACXDQAgAgAAAJUNACBKAACWDQAgCcMFAACUDQAwxAUAAJUNABDFBQAAlA0AMI8GAQCRCQAhlgYBAJEJACGXBgEAkQkAIZgGAQCRCQAhmQYBAJIJACGaBgEAkQkAIQnDBQAAlA0AMMQFAACVDQAQxQUAAJQNADCPBgEAkQkAIZYGAQCRCQAhlwYBAJEJACGYBgEAkQkAIZkGAQCSCQAhmgYBAJEJACEFjwYBALMLACGXBgEAswsAIZgGAQCzCwAhmQYBALQLACGaBgEAswsAIQYKAACYDQAgjwYBALMLACGXBgEAswsAIZgGAQCzCwAhmQYBALQLACGaBgEAswsAIQVPAAD0FQAgUAAA9xUAIPEGAAD1FQAg8gYAAPYVACD3BgAA3wYAIAYKAACaDQAgjwYBAAAAAZcGAQAAAAGYBgEAAAABmQYBAAAAAZoGAQAAAAEDTwAA9BUAIPEGAAD1FQAg9wYAAN8GACAICgAAqA0AII8GAQAAAAGYBgEAAAABmgYBAAAAAZsGAQAAAAGcBgEAAAABnQYBAAAAAZ4GAQAAAAECAAAAtwEAIE8AAKcNACADAAAAtwEAIE8AAKcNACBQAAClDQAgAUoAAPMVADAOCQAAtQoAIAoAANQKACDDBQAA1goAMMQFAAAlABDFBQAA1goAMI8GAQAAAAGWBgEAkQkAIZgGAQCSCQAhmgYBAJEJACGbBgEAkQkAIZwGAQCRCQAhnQYBAJEJACGeBgEAkQkAIeUGAADVCgAgAgAAALcBACBKAAClDQAgAgAAAKMNACBKAACkDQAgC8MFAACiDQAwxAUAAKMNABDFBQAAog0AMI8GAQCRCQAhlgYBAJEJACGYBgEAkgkAIZoGAQCRCQAhmwYBAJEJACGcBgEAkQkAIZ0GAQCRCQAhngYBAJEJACELwwUAAKINADDEBQAAow0AEMUFAACiDQAwjwYBAJEJACGWBgEAkQkAIZgGAQCSCQAhmgYBAJEJACGbBgEAkQkAIZwGAQCRCQAhnQYBAJEJACGeBgEAkQkAIQePBgEAswsAIZgGAQC0CwAhmgYBALMLACGbBgEAswsAIZwGAQCzCwAhnQYBALMLACGeBgEAswsAIQgKAACmDQAgjwYBALMLACGYBgEAtAsAIZoGAQCzCwAhmwYBALMLACGcBgEAswsAIZ0GAQCzCwAhngYBALMLACEFTwAA7hUAIFAAAPEVACDxBgAA7xUAIPIGAADwFQAg9wYAAN8GACAICgAAqA0AII8GAQAAAAGYBgEAAAABmgYBAAAAAZsGAQAAAAGcBgEAAAABnQYBAAAAAZ4GAQAAAAEDTwAA7hUAIPEGAADvFQAg9wYAAN8GACARCAAAsw0AIDMAAPcMACDGBQEAAAABxwUBAAAAAcgFAQAAAAHJBQEAAAABzAVAAAAAAc0FQAAAAAHOBUAAAAAB3gUBAAAAAd8FAQAAAAHgBQEAAAAB4QUBAAAAAeIFEAAAAAGCBgAAAIIGApIGIAAAAAGVBgAAAJUGAgIAAAAbACBPAACyDQAgAwAAABsAIE8AALINACBQAACwDQAgAUoAAO0VADACAAAAGwAgSgAAsA0AIAIAAADlDAAgSgAArw0AIA_GBQEAswsAIccFAQCzCwAhyAUBALQLACHJBQEAtAsAIcwFQAC1CwAhzQVAALULACHOBUAAtgsAId4FAQCzCwAh3wUBALQLACHgBQEAtAsAIeEFAQC0CwAh4gUQAOgMACGCBgAAzwuCBiKSBiAA2QwAIZUGAADnDJUGIhEIAACxDQAgMwAA6wwAIMYFAQCzCwAhxwUBALMLACHIBQEAtAsAIckFAQC0CwAhzAVAALULACHNBUAAtQsAIc4FQAC2CwAh3gUBALMLACHfBQEAtAsAIeAFAQC0CwAh4QUBALQLACHiBRAA6AwAIYIGAADPC4IGIpIGIADZDAAhlQYAAOcMlQYiB08AAOgVACBQAADrFQAg8QYAAOkVACDyBgAA6hUAIPUGAAAVACD2BgAAFQAg9wYAABcAIBEIAACzDQAgMwAA9wwAIMYFAQAAAAHHBQEAAAAByAUBAAAAAckFAQAAAAHMBUAAAAABzQVAAAAAAc4FQAAAAAHeBQEAAAAB3wUBAAAAAeAFAQAAAAHhBQEAAAAB4gUQAAAAAYIGAAAAggYCkgYgAAAAAZUGAAAAlQYCA08AAOgVACDxBgAA6RUAIPcGAAAXACAEIwAAwg0AIMYFAQAAAAG1BgAAAMsGAswGAQAAAAECAAAAhQEAIE8AAMENACADAAAAhQEAIE8AAMENACBQAAC_DQAgAUoAAOcVADAKIwAA5QoAICcAALUKACDDBQAA4woAMMQFAACDAQAQxQUAAOMKADDGBQEAAAABtQYAAOQKywYiywYBAJEJACHMBgEAkQkAIecGAADiCgAgAgAAAIUBACBKAAC_DQAgAgAAALwNACBKAAC9DQAgB8MFAAC7DQAwxAUAALwNABDFBQAAuw0AMMYFAQCRCQAhtQYAAOQKywYiywYBAJEJACHMBgEAkQkAIQfDBQAAuw0AMMQFAAC8DQAQxQUAALsNADDGBQEAkQkAIbUGAADkCssGIssGAQCRCQAhzAYBAJEJACEDxgUBALMLACG1BgAAvg3LBiLMBgEAswsAIQH0BgAAAMsGAgQjAADADQAgxgUBALMLACG1BgAAvg3LBiLMBgEAswsAIQVPAADiFQAgUAAA5RUAIPEGAADjFQAg8gYAAOQVACD3BgAAkgQAIAQjAADCDQAgxgUBAAAAAbUGAAAAywYCzAYBAAAAAQNPAADiFQAg8QYAAOMVACD3BgAAkgQAIAk3AACgDgAgPAAAnw4AID0AAKEOACDGBQEAAAABxwUBAAAAAcwFQAAAAAHNBUAAAAABqwYBAAAAAawGAQAAAAECAAAAsgEAIE8AAJ4OACADAAAAsgEAIE8AAJ4OACBQAADNDQAgAUoAAOEVADAOCQAAtQoAIDcAALUJACA8AACGCgAgPQAAmwoAIMMFAADXCgAwxAUAAKsBABDFBQAA1woAMMYFAQAAAAHHBQEAkQkAIcwFQACTCQAhzQVAAJMJACGWBgEAkQkAIasGAQCRCQAhrAYBAJIJACECAAAAsgEAIEoAAM0NACACAAAAyw0AIEoAAMwNACAKwwUAAMoNADDEBQAAyw0AEMUFAADKDQAwxgUBAJEJACHHBQEAkQkAIcwFQACTCQAhzQVAAJMJACGWBgEAkQkAIasGAQCRCQAhrAYBAJIJACEKwwUAAMoNADDEBQAAyw0AEMUFAADKDQAwxgUBAJEJACHHBQEAkQkAIcwFQACTCQAhzQVAAJMJACGWBgEAkQkAIasGAQCRCQAhrAYBAJIJACEGxgUBALMLACHHBQEAswsAIcwFQAC1CwAhzQVAALULACGrBgEAswsAIawGAQC0CwAhCTcAAM8NACA8AADODQAgPQAA0A0AIMYFAQCzCwAhxwUBALMLACHMBUAAtQsAIc0FQAC1CwAhqwYBALMLACGsBgEAtAsAIQtPAADrDQAwUAAA8A0AMPEGAADsDQAw8gYAAO0NADDzBgAA7g0AIPQGAADvDQAw9QYAAO8NADD2BgAA7w0AMPcGAADvDQAw-AYAAPENADD5BgAA8g0AMAtPAADgDQAwUAAA5A0AMPEGAADhDQAw8gYAAOINADDzBgAA4w0AIPQGAADTDAAw9QYAANMMADD2BgAA0wwAMPcGAADTDAAw-AYAAOUNADD5BgAA1gwAMAtPAADRDQAwUAAA1g0AMPEGAADSDQAw8gYAANMNADDzBgAA1A0AIPQGAADVDQAw9QYAANUNADD2BgAA1Q0AMPcGAADVDQAw-AYAANcNADD5BgAA2A0AMAQjAADfDQAgxgUBAAAAAbUGAAAAzgYCzAYBAAAAAQIAAACBAQAgTwAA3g0AIAMAAACBAQAgTwAA3g0AIFAAANwNACABSgAA4BUAMAojAADlCgAgJQAA6QoAIMMFAADnCgAwxAUAAH8AEMUFAADnCgAwxgUBAAAAAcsFAQCRCQAhtQYAAOgKzgYizAYBAJEJACHoBgAA5goAIAIAAACBAQAgSgAA3A0AIAIAAADZDQAgSgAA2g0AIAfDBQAA2A0AMMQFAADZDQAQxQUAANgNADDGBQEAkQkAIcsFAQCRCQAhtQYAAOgKzgYizAYBAJEJACEHwwUAANgNADDEBQAA2Q0AEMUFAADYDQAwxgUBAJEJACHLBQEAkQkAIbUGAADoCs4GIswGAQCRCQAhA8YFAQCzCwAhtQYAANsNzgYizAYBALMLACEB9AYAAADOBgIEIwAA3Q0AIMYFAQCzCwAhtQYAANsNzgYizAYBALMLACEFTwAA2xUAIFAAAN4VACDxBgAA3BUAIPIGAADdFQAg9wYAAJIEACAEIwAA3w0AIMYFAQAAAAG1BgAAAM4GAswGAQAAAAEDTwAA2xUAIPEGAADcFQAg9wYAAJIEACALNQAA-QwAIDYAAOoNACDGBQEAAAABxwUBAAAAAcgFAQAAAAHJBQEAAAABzAVAAAAAAc0FQAAAAAHOBUAAAAABkgYgAAAAAZMGAQAAAAECAAAAFwAgTwAA6Q0AIAMAAAAXACBPAADpDQAgUAAA5w0AIAFKAADaFQAwAgAAABcAIEoAAOcNACACAAAA1wwAIEoAAOYNACAJxgUBALMLACHHBQEAswsAIcgFAQC0CwAhyQUBALQLACHMBUAAtQsAIc0FQAC1CwAhzgVAALYLACGSBiAA2QwAIZMGAQC0CwAhCzUAANsMACA2AADoDQAgxgUBALMLACHHBQEAswsAIcgFAQC0CwAhyQUBALQLACHMBUAAtQsAIc0FQAC1CwAhzgVAALYLACGSBiAA2QwAIZMGAQC0CwAhB08AANUVACBQAADYFQAg8QYAANYVACDyBgAA1xUAIPUGAACpAQAg9gYAAKkBACD3BgAAxQcAIAs1AAD5DAAgNgAA6g0AIMYFAQAAAAHHBQEAAAAByAUBAAAAAckFAQAAAAHMBUAAAAABzQVAAAAAAc4FQAAAAAGSBiAAAAABkwYBAAAAAQNPAADVFQAg8QYAANYVACD3BgAAxQcAIBANAACdDgAgEQAAmw4AIEAAAJkOACBBAACaDgAgQgAAnA4AIMYFAQAAAAHHBQEAAAABygUBAAAAAcwFQAAAAAHNBUAAAAAB8AUAAACnBgKkBgEAAAABpQYBAAAAAagGAAAAqAYCqQYBAAAAAaoGAQAAAAECAAAADwAgTwAAmA4AIAMAAAAPACBPAACYDgAgUAAA9w0AIAFKAADUFQAwFQ0AAM8JACARAACZCgAgJQAA6QoAIEAAAKgLACBBAACpCwAgQgAAmgoAIMMFAAClCwAwxAUAAA0AEMUFAAClCwAwxgUBAAAAAccFAQCRCQAhygUBAAAAAcsFAQCRCQAhzAVAAJMJACHNBUAAkwkAIfAFAACmC6cGIqQGAQCSCQAhpQYBAAAAAagGAACnC6gGIqkGAQCSCQAhqgYBAJIJACECAAAADwAgSgAA9w0AIAIAAADzDQAgSgAA9A0AIA_DBQAA8g0AMMQFAADzDQAQxQUAAPINADDGBQEAkQkAIccFAQCRCQAhygUBAJEJACHLBQEAkQkAIcwFQACTCQAhzQVAAJMJACHwBQAApgunBiKkBgEAkgkAIaUGAQCSCQAhqAYAAKcLqAYiqQYBAJIJACGqBgEAkgkAIQ_DBQAA8g0AMMQFAADzDQAQxQUAAPINADDGBQEAkQkAIccFAQCRCQAhygUBAJEJACHLBQEAkQkAIcwFQACTCQAhzQVAAJMJACHwBQAApgunBiKkBgEAkgkAIaUGAQCSCQAhqAYAAKcLqAYiqQYBAJIJACGqBgEAkgkAIQvGBQEAswsAIccFAQCzCwAhygUBALMLACHMBUAAtQsAIc0FQAC1CwAh8AUAAPUNpwYipAYBALQLACGlBgEAtAsAIagGAAD2DagGIqkGAQC0CwAhqgYBALQLACEB9AYAAACnBgIB9AYAAACoBgIQDQAA_A0AIBEAAPoNACBAAAD4DQAgQQAA-Q0AIEIAAPsNACDGBQEAswsAIccFAQCzCwAhygUBALMLACHMBUAAtQsAIc0FQAC1CwAh8AUAAPUNpwYipAYBALQLACGlBgEAtAsAIagGAAD2DagGIqkGAQC0CwAhqgYBALQLACEHTwAAwhUAIFAAANIVACDxBgAAwxUAIPIGAADRFQAg9QYAAMcBACD2BgAAxwEAIPcGAADKAQAgB08AAMAVACBQAADPFQAg8QYAAMEVACDyBgAAzhUAIPUGAADPAQAg9gYAAM8BACD3BgAA-AQAIAVPAAC-FQAgUAAAzBUAIPEGAAC_FQAg8gYAAMsVACD3BgAAMAAgC08AAIkOADBQAACODgAw8QYAAIoOADDyBgAAiw4AMPMGAACMDgAg9AYAAI0OADD1BgAAjQ4AMPYGAACNDgAw9wYAAI0OADD4BgAAjw4AMPkGAACQDgAwC08AAP0NADBQAACCDgAw8QYAAP4NADDyBgAA_w0AMPMGAACADgAg9AYAAIEOADD1BgAAgQ4AMPYGAACBDgAw9wYAAIEOADD4BgAAgw4AMPkGAACEDgAwEAoAAMQMACAiAADFDAAgKwAAxwwAIC0AAMgMACAwAADJDAAgxgUBAAAAAcwFQAAAAAHNBUAAAAABhAYQAAAAAYYGAQAAAAGLBgEAAAABjAYCAAAAAY0GQAAAAAGOBoAAAAABjwYBAAAAAZAGAQAAAAECAAAAKwAgTwAAiA4AIAMAAAArACBPAACIDgAgUAAAhw4AIAFKAADKFQAwFgoAAI8LACAhAADtCgAgIgAAmQoAICsAAJALACAtAADbCgAgMAAAkQsAIMMFAACOCwAwxAUAACkAEMUFAACOCwAwxgUBAAAAAcwFQACTCQAhzQVAAJMJACGEBhAA2QoAIYYGAQCSCQAhiwYBAAAAAYwGAgCqCQAhjQZAAJMJACGOBgAA-gkAII8GAQCSCQAhkAYBAJEJACGRBgEAkQkAIe0GAACNCwAgAgAAACsAIEoAAIcOACACAAAAhQ4AIEoAAIYOACAPwwUAAIQOADDEBQAAhQ4AEMUFAACEDgAwxgUBAJEJACHMBUAAkwkAIc0FQACTCQAhhAYQANkKACGGBgEAkgkAIYsGAQCRCQAhjAYCAKoJACGNBkAAkwkAIY4GAAD6CQAgjwYBAJIJACGQBgEAkQkAIZEGAQCRCQAhD8MFAACEDgAwxAUAAIUOABDFBQAAhA4AMMYFAQCRCQAhzAVAAJMJACHNBUAAkwkAIYQGEADZCgAhhgYBAJIJACGLBgEAkQkAIYwGAgCqCQAhjQZAAJMJACGOBgAA-gkAII8GAQCSCQAhkAYBAJEJACGRBgEAkQkAIQvGBQEAswsAIcwFQAC1CwAhzQVAALULACGEBhAAwgsAIYYGAQC0CwAhiwYBALMLACGMBgIA_QsAIY0GQAC1CwAhjgaAAAAAAY8GAQC0CwAhkAYBALMLACEQCgAApAwAICIAAKUMACArAACnDAAgLQAAqAwAIDAAAKkMACDGBQEAswsAIcwFQAC1CwAhzQVAALULACGEBhAAwgsAIYYGAQC0CwAhiwYBALMLACGMBgIA_QsAIY0GQAC1CwAhjgaAAAAAAY8GAQC0CwAhkAYBALMLACEQCgAAxAwAICIAAMUMACArAADHDAAgLQAAyAwAIDAAAMkMACDGBQEAAAABzAVAAAAAAc0FQAAAAAGEBhAAAAABhgYBAAAAAYsGAQAAAAGMBgIAAAABjQZAAAAAAY4GgAAAAAGPBgEAAAABkAYBAAAAAQQjAACXDgAgxgUBAAAAAbUGAAAAzwYCzAYBAAAAAQIAAAB9ACBPAACWDgAgAwAAAH0AIE8AAJYOACBQAACUDgAgAUoAAMkVADAKIQAA7QoAICMAAOUKACDDBQAA6woAMMQFAAB7ABDFBQAA6woAMMYFAQAAAAGRBgEAkQkAIbUGAADsCs8GIswGAQCRCQAh6QYAAOoKACACAAAAfQAgSgAAlA4AIAIAAACRDgAgSgAAkg4AIAfDBQAAkA4AMMQFAACRDgAQxQUAAJAOADDGBQEAkQkAIZEGAQCRCQAhtQYAAOwKzwYizAYBAJEJACEHwwUAAJAOADDEBQAAkQ4AEMUFAACQDgAwxgUBAJEJACGRBgEAkQkAIbUGAADsCs8GIswGAQCRCQAhA8YFAQCzCwAhtQYAAJMOzwYizAYBALMLACEB9AYAAADPBgIEIwAAlQ4AIMYFAQCzCwAhtQYAAJMOzwYizAYBALMLACEFTwAAxBUAIFAAAMcVACDxBgAAxRUAIPIGAADGFQAg9wYAAJIEACAEIwAAlw4AIMYFAQAAAAG1BgAAAM8GAswGAQAAAAEDTwAAxBUAIPEGAADFFQAg9wYAAJIEACAQDQAAnQ4AIBEAAJsOACBAAACZDgAgQQAAmg4AIEIAAJwOACDGBQEAAAABxwUBAAAAAcoFAQAAAAHMBUAAAAABzQVAAAAAAfAFAAAApwYCpAYBAAAAAaUGAQAAAAGoBgAAAKgGAqkGAQAAAAGqBgEAAAABA08AAMIVACDxBgAAwxUAIPcGAADKAQAgA08AAMAVACDxBgAAwRUAIPcGAAD4BAAgA08AAL4VACDxBgAAvxUAIPcGAAAwACAETwAAiQ4AMPEGAACKDgAw8wYAAIwOACD3BgAAjQ4AMARPAAD9DQAw8QYAAP4NADDzBgAAgA4AIPcGAACBDgAwCTcAAKAOACA8AACfDgAgPQAAoQ4AIMYFAQAAAAHHBQEAAAABzAVAAAAAAc0FQAAAAAGrBgEAAAABrAYBAAAAAQRPAADrDQAw8QYAAOwNADDzBgAA7g0AIPcGAADvDQAwBE8AAOANADDxBgAA4Q0AMPMGAADjDQAg9wYAANMMADAETwAA0Q0AMPEGAADSDQAw8wYAANQNACD3BgAA1Q0AMAkVAADIDgAgFgAAyQ4AIBwAAMoOACDGBQEAAAABzAVAAAAAAc0FQAAAAAHZBkAAAAAB2wZAAAAAAdwGAQAAAAECAAAA7QIAIE8AAKIOACADAAAATAAgTwAAog4AIFAAAKYOACALAAAATAAgFQAApw4AIBYAAKgOACAcAACpDgAgSgAApg4AIMYFAQCzCwAhzAVAALULACHNBUAAtQsAIdkGQAC1CwAh2wZAALULACHcBgEAswsAIQkVAACnDgAgFgAAqA4AIBwAAKkOACDGBQEAswsAIcwFQAC1CwAhzQVAALULACHZBkAAtQsAIdsGQAC1CwAh3AYBALMLACEFTwAAqBUAIFAAALwVACDxBgAAqRUAIPIGAAC7FQAg9wYAAEoAIAtPAAC6DgAwUAAAvw4AMPEGAAC7DgAw8gYAALwOADDzBgAAvQ4AIPQGAAC-DgAw9QYAAL4OADD2BgAAvg4AMPcGAAC-DgAw-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-wwAMPEGAAD8DAAw8wYAAP4MACD3BgAA_wwAMARPAADPDAAw8QYAANAMADDzBgAA0gwAIPcGAADTDAAwAAAB2gUBAAAAAQAAAAAAAAAAAAAABU8AAKEVACBQAACkFQAg8QYAAKIVACDyBgAAoxUAIPcGAAATACADTwAAoRUAIPEGAACiFQAg9wYAABMAIAAAAAVPAACcFQAgUAAAnxUAIPEGAACdFQAg8gYAAJ4VACD3BgAAEwAgA08AAJwVACDxBgAAnRUAIPcGAAATACAAAAAB9AYgAAAAAQH0BgAAAKEGAgdPAACADwAgUAAAgw8AIPEGAACBDwAg8gYAAIIPACD1BgAAJQAg9gYAACUAIPcGAAC3AQAgB08AAPsOACBQAAD-DgAg8QYAAPwOACDyBgAA_Q4AIPUGAAAnACD2BgAAJwAg9wYAALoBACALTwAA8g4AMFAAAPYOADDxBgAA8w4AMPIGAAD0DgAw8wYAAPUOACD0BgAAgQ4AMPUGAACBDgAw9gYAAIEOADD3BgAAgQ4AMPgGAAD3DgAw-QYAAIQOADAQIQAAxgwAICIAAMUMACArAADHDAAgLQAAyAwAIDAAAMkMACDGBQEAAAABzAVAAAAAAc0FQAAAAAGEBhAAAAABhgYBAAAAAYsGAQAAAAGMBgIAAAABjQZAAAAAAY4GgAAAAAGQBgEAAAABkQYBAAAAAQIAAAArACBPAAD6DgAgAwAAACsAIE8AAPoOACBQAAD5DgAgAUoAAJsVADACAAAAKwAgSgAA-Q4AIAIAAACFDgAgSgAA-A4AIAvGBQEAswsAIcwFQAC1CwAhzQVAALULACGEBhAAwgsAIYYGAQC0CwAhiwYBALMLACGMBgIA_QsAIY0GQAC1CwAhjgaAAAAAAZAGAQCzCwAhkQYBALMLACEQIQAApgwAICIAAKUMACArAACnDAAgLQAAqAwAIDAAAKkMACDGBQEAswsAIcwFQAC1CwAhzQVAALULACGEBhAAwgsAIYYGAQC0CwAhiwYBALMLACGMBgIA_QsAIY0GQAC1CwAhjgaAAAAAAZAGAQCzCwAhkQYBALMLACEQIQAAxgwAICIAAMUMACArAADHDAAgLQAAyAwAIDAAAMkMACDGBQEAAAABzAVAAAAAAc0FQAAAAAGEBhAAAAABhgYBAAAAAYsGAQAAAAGMBgIAAAABjQZAAAAAAY4GgAAAAAGQBgEAAAABkQYBAAAAAQYJAADkDgAglgYBAAAAAZcGAQAAAAGYBgEAAAABmQYBAAAAAZoGAQAAAAECAAAAugEAIE8AAPsOACADAAAAJwAgTwAA-w4AIFAAAP8OACAIAAAAJwAgCQAA4w4AIEoAAP8OACCWBgEAswsAIZcGAQCzCwAhmAYBALMLACGZBgEAtAsAIZoGAQCzCwAhBgkAAOMOACCWBgEAswsAIZcGAQCzCwAhmAYBALMLACGZBgEAtAsAIZoGAQCzCwAhCAkAAOkOACCWBgEAAAABmAYBAAAAAZoGAQAAAAGbBgEAAAABnAYBAAAAAZ0GAQAAAAGeBgEAAAABAgAAALcBACBPAACADwAgAwAAACUAIE8AAIAPACBQAACEDwAgCgAAACUAIAkAAOgOACBKAACEDwAglgYBALMLACGYBgEAtAsAIZoGAQCzCwAhmwYBALMLACGcBgEAswsAIZ0GAQCzCwAhngYBALMLACEICQAA6A4AIJYGAQCzCwAhmAYBALQLACGaBgEAswsAIZsGAQCzCwAhnAYBALMLACGdBgEAswsAIZ4GAQCzCwAhA08AAIAPACDxBgAAgQ8AIPcGAAC3AQAgA08AAPsOACDxBgAA_A4AIPcGAAC6AQAgBE8AAPIOADDxBgAA8w4AMPMGAAD1DgAg9wYAAIEOADAECQAAwxIAIAoAALkTACCYBgAArwsAIPoGAAC7EwAgBAkAAMMSACAKAAC5EwAgmQYAAK8LACD6BgAAuhMAIAAB2gUBAAAAAQAAAAAAAdoFAQAAAAEAAAAFTwAAlhUAIFAAAJkVACDxBgAAlxUAIPIGAACYFQAg9wYAALIBACADTwAAlhUAIPEGAACXFQAg9wYAALIBACAAAAAFTwAAkRUAIFAAAJQVACDxBgAAkhUAIPIGAACTFQAg9wYAABMAIANPAACRFQAg8QYAAJIVACD3BgAAEwAgAAAABU8AAIwVACBQAACPFQAg8QYAAI0VACDyBgAAjhUAIPcGAADFBwAgA08AAIwVACDxBgAAjRUAIPcGAADFBwAgAAAABU8AAIQVACBQAACKFQAg8QYAAIUVACDyBgAAiRUAIPcGAAD7AwAgBU8AAIIVACBQAACHFQAg8QYAAIMVACDyBgAAhhUAIPcGAADNBQAgA08AAIQVACDxBgAAhRUAIPcGAAD7AwAgA08AAIIVACDxBgAAgxUAIPcGAADNBQAgAAAABU8AAPoUACBQAACAFQAg8QYAAPsUACDyBgAA_xQAIPcGAAD7AwAgBU8AAPgUACBQAAD9FAAg8QYAAPkUACDyBgAA_BQAIPcGAADNBQAgA08AAPoUACDxBgAA-xQAIPcGAAD7AwAgA08AAPgUACDxBgAA-RQAIPcGAADNBQAgAAAAAfQGAAAAswYCAfQGAAAAtAYCC08AANkPADBQAADeDwAw8QYAANoPADDyBgAA2w8AMPMGAADcDwAg9AYAAN0PADD1BgAA3Q8AMPYGAADdDwAw9wYAAN0PADD4BgAA3w8AMPkGAADgDwAwC08AANAPADBQAADUDwAw8QYAANEPADDyBgAA0g8AMPMGAADTDwAg9AYAAP8MADD1BgAA_wwAMPYGAAD_DAAw9wYAAP8MADD4BgAA1Q8AMPkGAACCDQAwC08AAMMPADBQAADIDwAw8QYAAMQPADDyBgAAxQ8AMPMGAADGDwAg9AYAAMcPADD1BgAAxw8AMPYGAADHDwAw9wYAAMcPADD4BgAAyQ8AMPkGAADKDwAwB08AAL4PACBQAADBDwAg8QYAAL8PACDyBgAAwA8AIPUGAAA3ACD2BgAANwAg9wYAAD4AIAdPAAC5DwAgUAAAvA8AIPEGAAC6DwAg8gYAALsPACD1BgAAQAAg9gYAAEAAIPcGAABCACAGEAAApg8AIMcFAQAAAAHMBUAAAAABzQVAAAAAAa8GAQAAAAGwBgEAAAABAgAAAEIAIE8AALkPACADAAAAQAAgTwAAuQ8AIFAAAL0PACAIAAAAQAAgEAAApA8AIEoAAL0PACDHBQEAswsAIcwFQAC1CwAhzQVAALULACGvBgEAswsAIbAGAQCzCwAhBhAAAKQPACDHBQEAswsAIcwFQAC1CwAhzQVAALULACGvBgEAswsAIbAGAQCzCwAhCBAAAK0PACDMBUAAAAABzQVAAAAAAZsGAQAAAAGcBgEAAAABngYBAAAAAbAGAQAAAAGxBgEAAAABAgAAAD4AIE8AAL4PACADAAAANwAgTwAAvg8AIFAAAMIPACAKAAAANwAgEAAAqw8AIEoAAMIPACDMBUAAtQsAIc0FQAC1CwAhmwYBALMLACGcBgEAswsAIZ4GAQCzCwAhsAYBALMLACGxBgEAswsAIQgQAACrDwAgzAVAALULACHNBUAAtQsAIZsGAQCzCwAhnAYBALMLACGeBgEAswsAIbAGAQCzCwAhsQYBALMLACEQPgEAAAABQAEAAAABzAVAAAAAAc0FQAAAAAGkBgEAAAABtwYBAAAAAbwGAQAAAAG-BgEAAAABvwYBAAAAAcEGAAAAwQYCwgYBAAAAAcMGAQAAAAHEBgEAAAABxQYBAAAAAcYGAQAAAAHHBgEAAAABAgAAADUAIE8AAM8PACADAAAANQAgTwAAzw8AIFAAAM4PACABSgAA9xQAMBUOAACACwAgPgEAkQkAIUABAJEJACHDBQAAhwsAMMQFAAAzABDFBQAAhwsAMMwFQACTCQAhzQVAAJMJACGkBgEAkQkAIa4GAQCRCQAhtwYBAJEJACG8BgEAkQkAIb4GAQAAAAG_BgEAkQkAIcEGAACIC8EGIsIGAQCRCQAhwwYBAJEJACHEBgEAkQkAIcUGAQCSCQAhxgYBAJIJACHHBgEAkgkAIQIAAAA1ACBKAADODwAgAgAAAMsPACBKAADMDwAgFD4BAJEJACFAAQCRCQAhwwUAAMoPADDEBQAAyw8AEMUFAADKDwAwzAVAAJMJACHNBUAAkwkAIaQGAQCRCQAhrgYBAJEJACG3BgEAkQkAIbwGAQCRCQAhvgYBAJEJACG_BgEAkQkAIcEGAACIC8EGIsIGAQCRCQAhwwYBAJEJACHEBgEAkQkAIcUGAQCSCQAhxgYBAJIJACHHBgEAkgkAIRQ-AQCRCQAhQAEAkQkAIcMFAADKDwAwxAUAAMsPABDFBQAAyg8AMMwFQACTCQAhzQVAAJMJACGkBgEAkQkAIa4GAQCRCQAhtwYBAJEJACG8BgEAkQkAIb4GAQCRCQAhvwYBAJEJACHBBgAAiAvBBiLCBgEAkQkAIcMGAQCRCQAhxAYBAJEJACHFBgEAkgkAIcYGAQCSCQAhxwYBAJIJACEQPgEAswsAIUABALMLACHMBUAAtQsAIc0FQAC1CwAhpAYBALMLACG3BgEAswsAIbwGAQCzCwAhvgYBALMLACG_BgEAswsAIcEGAADND8EGIsIGAQCzCwAhwwYBALMLACHEBgEAswsAIcUGAQC0CwAhxgYBALQLACHHBgEAtAsAIQH0BgAAAMEGAhA-AQCzCwAhQAEAswsAIcwFQAC1CwAhzQVAALULACGkBgEAswsAIbcGAQCzCwAhvAYBALMLACG-BgEAswsAIb8GAQCzCwAhwQYAAM0PwQYiwgYBALMLACHDBgEAswsAIcQGAQCzCwAhxQYBALQLACHGBgEAtAsAIccGAQC0CwAhED4BAAAAAUABAAAAAcwFQAAAAAHNBUAAAAABpAYBAAAAAbcGAQAAAAG8BgEAAAABvgYBAAAAAb8GAQAAAAHBBgAAAMEGAsIGAQAAAAHDBgEAAAABxAYBAAAAAcUGAQAAAAHGBgEAAAABxwYBAAAAAQ8YAADNDgAgNQAA0A4AIDYAAKAPACA4AADODgAgOQAAzw4AIDoAANEOACA7AADSDgAgxgUBAAAAAccFAQAAAAHMBUAAAAABzQVAAAAAAfcFAQAAAAGTBgEAAAABmAYBAAAAAa0GAQAAAAECAAAAEwAgTwAA2A8AIAMAAAATACBPAADYDwAgUAAA1w8AIAFKAAD2FAAwAgAAABMAIEoAANcPACACAAAAgw0AIEoAANYPACAIxgUBALMLACHHBQEAswsAIcwFQAC1CwAhzQVAALULACH3BQEAswsAIZMGAQCzCwAhmAYBALMLACGtBgEAswsAIQ8YAACHDQAgNQAAig0AIDYAAJ8PACA4AACIDQAgOQAAiQ0AIDoAAIsNACA7AACMDQAgxgUBALMLACHHBQEAswsAIcwFQAC1CwAhzQVAALULACH3BQEAswsAIZMGAQCzCwAhmAYBALMLACGtBgEAswsAIQ8YAADNDgAgNQAA0A4AIDYAAKAPACA4AADODgAgOQAAzw4AIDoAANEOACA7AADSDgAgxgUBAAAAAccFAQAAAAHMBUAAAAABzQVAAAAAAfcFAQAAAAGTBgEAAAABmAYBAAAAAa0GAQAAAAEKDQAAsBAAIBEAAKwQACAhAACtEAAgIwAArhAAICkAAK8QACDGBQEAAAABygUBAAAAAcwFQAAAAAHNBUAAAAABtQYAAAC1BgICAAAAMAAgTwAAqxAAIAMAAAAwACBPAACrEAAgUAAA5A8AIAFKAAD1FAAwDw0AAM8JACAOAACACwAgEQAAhgsAICEAAIsLACAjAACMCwAgKQAA9AoAIMMFAACJCwAwxAUAAC4AEMUFAACJCwAwxgUBAAAAAcoFAQAAAAHMBUAAkwkAIc0FQACTCQAhrgYBAJEJACG1BgAAigu1BiICAAAAMAAgSgAA5A8AIAIAAADhDwAgSgAA4g8AIAnDBQAA4A8AMMQFAADhDwAQxQUAAOAPADDGBQEAkQkAIcoFAQCRCQAhzAVAAJMJACHNBUAAkwkAIa4GAQCRCQAhtQYAAIoLtQYiCcMFAADgDwAwxAUAAOEPABDFBQAA4A8AMMYFAQCRCQAhygUBAJEJACHMBUAAkwkAIc0FQACTCQAhrgYBAJEJACG1BgAAigu1BiIFxgUBALMLACHKBQEAswsAIcwFQAC1CwAhzQVAALULACG1BgAA4w-1BiIB9AYAAAC1BgIKDQAA6Q8AIBEAAOUPACAhAADmDwAgIwAA5w8AICkAAOgPACDGBQEAswsAIcoFAQCzCwAhzAVAALULACHNBUAAtQsAIbUGAADjD7UGIgVPAADYFAAgUAAA8xQAIPEGAADZFAAg8gYAAPIUACD3BgAAgwIAIAdPAACmEAAgUAAAqRAAIPEGAACnEAAg8gYAAKgQACD1BgAADQAg9gYAAA0AIPcGAAAPACAHTwAA-g8AIFAAAP0PACDxBgAA-w8AIPIGAAD8DwAg9QYAAHkAIPYGAAB5ACD3BgAAkgQAIAdPAADzDwAgUAAA9g8AIPEGAAD0DwAg8gYAAPUPACD1BgAAVQAg9gYAAFUAIPcGAABXACALTwAA6g8AMFAAAO4PADDxBgAA6w8AMPIGAADsDwAw8wYAAO0PACD0BgAAgQ4AMPUGAACBDgAw9gYAAIEOADD3BgAAgQ4AMPgGAADvDwAw-QYAAIQOADAQCgAAxAwAICEAAMYMACArAADHDAAgLQAAyAwAIDAAAMkMACDGBQEAAAABzAVAAAAAAc0FQAAAAAGEBhAAAAABhgYBAAAAAYsGAQAAAAGMBgIAAAABjQZAAAAAAY4GgAAAAAGPBgEAAAABkQYBAAAAAQIAAAArACBPAADyDwAgAwAAACsAIE8AAPIPACBQAADxDwAgAUoAAPEUADACAAAAKwAgSgAA8Q8AIAIAAACFDgAgSgAA8A8AIAvGBQEAswsAIcwFQAC1CwAhzQVAALULACGEBhAAwgsAIYYGAQC0CwAhiwYBALMLACGMBgIA_QsAIY0GQAC1CwAhjgaAAAAAAY8GAQC0CwAhkQYBALMLACEQCgAApAwAICEAAKYMACArAACnDAAgLQAAqAwAIDAAAKkMACDGBQEAswsAIcwFQAC1CwAhzQVAALULACGEBhAAwgsAIYYGAQC0CwAhiwYBALMLACGMBgIA_QsAIY0GQAC1CwAhjgaAAAAAAY8GAQC0CwAhkQYBALMLACEQCgAAxAwAICEAAMYMACArAADHDAAgLQAAyAwAIDAAAMkMACDGBQEAAAABzAVAAAAAAc0FQAAAAAGEBhAAAAABhgYBAAAAAYsGAQAAAAGMBgIAAAABjQZAAAAAAY4GgAAAAAGPBgEAAAABkQYBAAAAAQcYAAD5DwAgGwAAuQ4AIMYFAQAAAAHMBUAAAAABzQVAAAAAAdMGAQAAAAHUBgEAAAABAgAAAFcAIE8AAPMPACADAAAAVQAgTwAA8w8AIFAAAPcPACAJAAAAVQAgGAAA-A8AIBsAALYOACBKAAD3DwAgxgUBALMLACHMBUAAtQsAIc0FQAC1CwAh0wYBALQLACHUBgEAtAsAIQcYAAD4DwAgGwAAtg4AIMYFAQCzCwAhzAVAALULACHNBUAAtQsAIdMGAQC0CwAh1AYBALQLACEHTwAA7BQAIFAAAO8UACDxBgAA7RQAIPIGAADuFAAg9QYAAEwAIPYGAABMACD3BgAA7QIAIANPAADsFAAg8QYAAO0UACD3BgAA7QIAIAQkAACjEAAgJgAApBAAICgAAKUQACDGBQEAAAABAgAAAJIEACBPAAD6DwAgAwAAAHkAIE8AAPoPACBQAAD-DwAgBgAAAHkAICQAAP8PACAmAACAEAAgKAAAgRAAIEoAAP4PACDGBQEAswsAIQQkAAD_DwAgJgAAgBAAICgAAIEQACDGBQEAswsAIQtPAACYEAAwUAAAnBAAMPEGAACZEAAw8gYAAJoQADDzBgAAmxAAIPQGAACNDgAw9QYAAI0OADD2BgAAjQ4AMPcGAACNDgAw-AYAAJ0QADD5BgAAkA4AMAtPAACNEAAwUAAAkRAAMPEGAACOEAAw8gYAAI8QADDzBgAAkBAAIPQGAADVDQAw9QYAANUNADD2BgAA1Q0AMPcGAADVDQAw-AYAAJIQADD5BgAA2A0AMAtPAACCEAAwUAAAhhAAMPEGAACDEAAw8gYAAIQQADDzBgAAhRAAIPQGAAC4DQAw9QYAALgNADD2BgAAuA0AMPcGAAC4DQAw-AYAAIcQADD5BgAAuw0AMAQnAACMEAAgxgUBAAAAAbUGAAAAywYCywYBAAAAAQIAAACFAQAgTwAAixAAIAMAAACFAQAgTwAAixAAIFAAAIkQACABSgAA6xQAMAIAAACFAQAgSgAAiRAAIAIAAAC8DQAgSgAAiBAAIAPGBQEAswsAIbUGAAC-DcsGIssGAQCzCwAhBCcAAIoQACDGBQEAswsAIbUGAAC-DcsGIssGAQCzCwAhBU8AAOYUACBQAADpFAAg8QYAAOcUACDyBgAA6BQAIPcGAAATACAEJwAAjBAAIMYFAQAAAAG1BgAAAMsGAssGAQAAAAEDTwAA5hQAIPEGAADnFAAg9wYAABMAIAQlAACXEAAgxgUBAAAAAcsFAQAAAAG1BgAAAM4GAgIAAACBAQAgTwAAlhAAIAMAAACBAQAgTwAAlhAAIFAAAJQQACABSgAA5RQAMAIAAACBAQAgSgAAlBAAIAIAAADZDQAgSgAAkxAAIAPGBQEAswsAIcsFAQCzCwAhtQYAANsNzgYiBCUAAJUQACDGBQEAswsAIcsFAQCzCwAhtQYAANsNzgYiBU8AAOAUACBQAADjFAAg8QYAAOEUACDyBgAA4hQAIPcGAACyAQAgBCUAAJcQACDGBQEAAAABywUBAAAAAbUGAAAAzgYCA08AAOAUACDxBgAA4RQAIPcGAACyAQAgBCEAAKIQACDGBQEAAAABkQYBAAAAAbUGAAAAzwYCAgAAAH0AIE8AAKEQACADAAAAfQAgTwAAoRAAIFAAAJ8QACABSgAA3xQAMAIAAAB9ACBKAACfEAAgAgAAAJEOACBKAACeEAAgA8YFAQCzCwAhkQYBALMLACG1BgAAkw7PBiIEIQAAoBAAIMYFAQCzCwAhkQYBALMLACG1BgAAkw7PBiIFTwAA2hQAIFAAAN0UACDxBgAA2xQAIPIGAADcFAAg9wYAAA8AIAQhAACiEAAgxgUBAAAAAZEGAQAAAAG1BgAAAM8GAgNPAADaFAAg8QYAANsUACD3BgAADwAgBE8AAJgQADDxBgAAmRAAMPMGAACbEAAg9wYAAI0OADAETwAAjRAAMPEGAACOEAAw8wYAAJAQACD3BgAA1Q0AMARPAACCEAAw8QYAAIMQADDzBgAAhRAAIPcGAAC4DQAwEA0AAJ0OACAlAACWDwAgQAAAmQ4AIEEAAJoOACBCAACcDgAgxgUBAAAAAccFAQAAAAHLBQEAAAABzAVAAAAAAc0FQAAAAAHwBQAAAKcGAqQGAQAAAAGlBgEAAAABqAYAAACoBgKpBgEAAAABqgYBAAAAAQIAAAAPACBPAACmEAAgAwAAAA0AIE8AAKYQACBQAACqEAAgEgAAAA0AIA0AAPwNACAlAACVDwAgQAAA-A0AIEEAAPkNACBCAAD7DQAgSgAAqhAAIMYFAQCzCwAhxwUBALMLACHLBQEAswsAIcwFQAC1CwAhzQVAALULACHwBQAA9Q2nBiKkBgEAtAsAIaUGAQC0CwAhqAYAAPYNqAYiqQYBALQLACGqBgEAtAsAIRANAAD8DQAgJQAAlQ8AIEAAAPgNACBBAAD5DQAgQgAA-w0AIMYFAQCzCwAhxwUBALMLACHLBQEAswsAIcwFQAC1CwAhzQVAALULACHwBQAA9Q2nBiKkBgEAtAsAIaUGAQC0CwAhqAYAAPYNqAYiqQYBALQLACGqBgEAtAsAIQoNAACwEAAgEQAArBAAICEAAK0QACAjAACuEAAgKQAArxAAIMYFAQAAAAHKBQEAAAABzAVAAAAAAc0FQAAAAAG1BgAAALUGAgNPAADYFAAg8QYAANkUACD3BgAAgwIAIANPAACmEAAg8QYAAKcQACD3BgAADwAgA08AAPoPACDxBgAA-w8AIPcGAACSBAAgA08AAPMPACDxBgAA9A8AIPcGAABXACAETwAA6g8AMPEGAADrDwAw8wYAAO0PACD3BgAAgQ4AMARPAADZDwAw8QYAANoPADDzBgAA3A8AIPcGAADdDwAwBE8AANAPADDxBgAA0Q8AMPMGAADTDwAg9wYAAP8MADAETwAAww8AMPEGAADEDwAw8wYAAMYPACD3BgAAxw8AMANPAAC-DwAg8QYAAL8PACD3BgAAPgAgA08AALkPACDxBgAAug8AIPcGAABCACAAAAMOAADaEwAgEAAAyhMAIPoGAADcEwAgAw4AANoTACAQAADKEwAg-gYAANsTACAB2gUBAAAAAQAAAAVPAADTFAAgUAAA1hQAIPEGAADUFAAg8gYAANUUACD3BgAAzQUAIANPAADTFAAg8QYAANQUACD3BgAAzQUAIAAAAAH0BgAAALoGAgH0BgAAALwGAgHaBQEAAAABAAAABU8AAM4UACBQAADRFAAg8QYAAM8UACDyBgAA0BQAIPcGAADNBQAgA08AAM4UACDxBgAAzxQAIPcGAADNBQAgAAAAAfQGAAAAyQYCC08AANoQADBQAADfEAAw8QYAANsQADDyBgAA3BAAMPMGAADdEAAg9AYAAN4QADD1BgAA3hAAMPYGAADeEAAw9wYAAN4QADD4BgAA4BAAMPkGAADhEAAwC08AANEQADBQAADVEAAw8QYAANIQADDyBgAA0xAAMPMGAADUEAAg9AYAAO8NADD1BgAA7w0AMPYGAADvDQAw9wYAAO8NADD4BgAA1hAAMPkGAADyDQAwEA0AAJ0OACARAACbDgAgJQAAlg8AIEAAAJkOACBCAACcDgAgxgUBAAAAAccFAQAAAAHKBQEAAAABywUBAAAAAcwFQAAAAAHNBUAAAAAB8AUAAACnBgKkBgEAAAABpQYBAAAAAagGAAAAqAYCqQYBAAAAAQIAAAAPACBPAADZEAAgAwAAAA8AIE8AANkQACBQAADYEAAgAUoAAM0UADACAAAADwAgSgAA2BAAIAIAAADzDQAgSgAA1xAAIAvGBQEAswsAIccFAQCzCwAhygUBALMLACHLBQEAswsAIcwFQAC1CwAhzQVAALULACHwBQAA9Q2nBiKkBgEAtAsAIaUGAQC0CwAhqAYAAPYNqAYiqQYBALQLACEQDQAA_A0AIBEAAPoNACAlAACVDwAgQAAA-A0AIEIAAPsNACDGBQEAswsAIccFAQCzCwAhygUBALMLACHLBQEAswsAIcwFQAC1CwAhzQVAALULACHwBQAA9Q2nBiKkBgEAtAsAIaUGAQC0CwAhqAYAAPYNqAYiqQYBALQLACEQDQAAnQ4AIBEAAJsOACAlAACWDwAgQAAAmQ4AIEIAAJwOACDGBQEAAAABxwUBAAAAAcoFAQAAAAHLBQEAAAABzAVAAAAAAc0FQAAAAAHwBQAAAKcGAqQGAQAAAAGlBgEAAAABqAYAAACoBgKpBgEAAAABBhEAAOgQACDGBQEAAAABygUBAAAAAcwFQAAAAAHNBUAAAAABtQYAAADKBgICAAAACwAgTwAA5xAAIAMAAAALACBPAADnEAAgUAAA5RAAIAFKAADMFAAwCxEAAIYLACBBAACsCwAgwwUAAKoLADDEBQAACAAQxQUAAKoLADDGBQEAAAABygUBAAAAAcwFQACTCQAhzQVAAJMJACGqBgEAkQkAIbUGAACrC8oGIgIAAAALACBKAADlEAAgAgAAAOIQACBKAADjEAAgCcMFAADhEAAwxAUAAOIQABDFBQAA4RAAMMYFAQCRCQAhygUBAJEJACHMBUAAkwkAIc0FQACTCQAhqgYBAJEJACG1BgAAqwvKBiIJwwUAAOEQADDEBQAA4hAAEMUFAADhEAAwxgUBAJEJACHKBQEAkQkAIcwFQACTCQAhzQVAAJMJACGqBgEAkQkAIbUGAACrC8oGIgXGBQEAswsAIcoFAQCzCwAhzAVAALULACHNBUAAtQsAIbUGAADkEMoGIgH0BgAAAMoGAgYRAADmEAAgxgUBALMLACHKBQEAswsAIcwFQAC1CwAhzQVAALULACG1BgAA5BDKBiIFTwAAxxQAIFAAAMoUACDxBgAAyBQAIPIGAADJFAAg9wYAAIMCACAGEQAA6BAAIMYFAQAAAAHKBQEAAAABzAVAAAAAAc0FQAAAAAG1BgAAAMoGAgNPAADHFAAg8QYAAMgUACD3BgAAgwIAIARPAADaEAAw8QYAANsQADDzBgAA3RAAIPcGAADeEAAwBE8AANEQADDxBgAA0hAAMPMGAADUEAAg9wYAAO8NADAAAAHaBQEAAAABAAAABU8AAMIUACBQAADFFAAg8QYAAMMUACDyBgAAxBQAIPcGAAD4BAAgA08AAMIUACDxBgAAwxQAIPcGAAD4BAAgAAAAAAAAAAAAAAAABU8AAL0UACBQAADAFAAg8QYAAL4UACDyBgAAvxQAIPcGAAAwACADTwAAvRQAIPEGAAC-FAAg9wYAADAAIAcNAACKDwAgDgAA2hMAIBEAAN0TACAhAADIEwAgIwAAxBMAICkAAM8TACD6BgAA4BMAIAAAAAHaBQEAAAABAAAAAfQGAAAA0AYCC08AAIUSADBQAACKEgAw8QYAAIYSADDyBgAAhxIAMPMGAACIEgAg9AYAAIkSADD1BgAAiRIAMPYGAACJEgAw9wYAAIkSADD4BgAAixIAMPkGAACMEgAwC08AAPkRADBQAAD-EQAw8QYAAPoRADDyBgAA-xEAMPMGAAD8EQAg9AYAAP0RADD1BgAA_REAMPYGAAD9EQAw9wYAAP0RADD4BgAA_xEAMPkGAACAEgAwC08AAO0RADBQAADyEQAw8QYAAO4RADDyBgAA7xEAMPMGAADwEQAg9AYAAPERADD1BgAA8REAMPYGAADxEQAw9wYAAPERADD4BgAA8xEAMPkGAAD0EQAwC08AAMoRADBQAADPEQAw8QYAAMsRADDyBgAAzBEAMPMGAADNEQAg9AYAAM4RADD1BgAAzhEAMPYGAADOEQAw9wYAAM4RADD4BgAA0BEAMPkGAADREQAwC08AAKkRADBQAACuEQAw8QYAAKoRADDyBgAAqxEAMPMGAACsEQAg9AYAAK0RADD1BgAArREAMPYGAACtEQAw9wYAAK0RADD4BgAArxEAMPkGAACwEQAwC08AAJARADBQAACVEQAw8QYAAJERADDyBgAAkhEAMPMGAACTEQAg9AYAAJQRADD1BgAAlBEAMPYGAACUEQAw9wYAAJQRADD4BgAAlhEAMPkGAACXEQAwBxYAAKgRACDGBQEAAAABzAVAAAAAAc0FQAAAAAHWBkAAAAAB1wYBAAAAAdgGAgAAAAECAAAAbAAgTwAApxEAIAMAAABsACBPAACnEQAgUAAAmhEAIAFKAAC8FAAwDBAAAO8KACAWAAC2CgAgwwUAAO4KADDEBQAAagAQxQUAAO4KADDGBQEAAAABzAVAAJMJACHNBUAAkwkAIbAGAQCRCQAh1gZAAJMJACHXBgEAAAAB2AYCAKoJACECAAAAbAAgSgAAmhEAIAIAAACYEQAgSgAAmREAIArDBQAAlxEAMMQFAACYEQAQxQUAAJcRADDGBQEAkQkAIcwFQACTCQAhzQVAAJMJACGwBgEAkQkAIdYGQACTCQAh1wYBAJEJACHYBgIAqgkAIQrDBQAAlxEAMMQFAACYEQAQxQUAAJcRADDGBQEAkQkAIcwFQACTCQAhzQVAAJMJACGwBgEAkQkAIdYGQACTCQAh1wYBAJEJACHYBgIAqgkAIQbGBQEAswsAIcwFQAC1CwAhzQVAALULACHWBkAAtQsAIdcGAQCzCwAh2AYCAP0LACEHFgAAmxEAIMYFAQCzCwAhzAVAALULACHNBUAAtQsAIdYGQAC1CwAh1wYBALMLACHYBgIA_QsAIQtPAACcEQAwUAAAoBEAMPEGAACdEQAw8gYAAJ4RADDzBgAAnxEAIPQGAAC-DgAw9QYAAL4OADD2BgAAvg4AMPcGAAC-DgAw-AYAAKERADD5BgAAwQ4AMAYXAACmEQAgxgUBAAAAAcwFQAAAAAHNBUAAAAAB2QZAAAAAAdoGAQAAAAECAAAAUAAgTwAApREAIAMAAABQACBPAAClEQAgUAAAoxEAIAFKAAC7FAAwAgAAAFAAIEoAAKMRACACAAAAwg4AIEoAAKIRACAFxgUBALMLACHMBUAAtQsAIc0FQAC1CwAh2QZAALULACHaBgEAtAsAIQYXAACkEQAgxgUBALMLACHMBUAAtQsAIc0FQAC1CwAh2QZAALULACHaBgEAtAsAIQdPAAC2FAAgUAAAuRQAIPEGAAC3FAAg8gYAALgUACD1BgAATAAg9gYAAEwAIPcGAADtAgAgBhcAAKYRACDGBQEAAAABzAVAAAAAAc0FQAAAAAHZBkAAAAAB2gYBAAAAAQNPAAC2FAAg8QYAALcUACD3BgAA7QIAIAcWAACoEQAgxgUBAAAAAcwFQAAAAAHNBUAAAAAB1gZAAAAAAdcGAQAAAAHYBgIAAAABBE8AAJwRADDxBgAAnREAMPMGAACfEQAg9wYAAL4OADAHGQAAyREAIMYFAQAAAAHMBUAAAAABzQVAAAAAAdYGQAAAAAHXBgEAAAAB2AYCAAAAAQIAAABoACBPAADIEQAgAwAAAGgAIE8AAMgRACBQAACzEQAgAUoAALUUADAMEAAA7woAIBkAAPEKACDDBQAA8AoAMMQFAABdABDFBQAA8AoAMMYFAQAAAAHMBUAAkwkAIc0FQACTCQAhsAYBAJEJACHWBkAAkwkAIdcGAQAAAAHYBgIAqgkAIQIAAABoACBKAACzEQAgAgAAALERACBKAACyEQAgCsMFAACwEQAwxAUAALERABDFBQAAsBEAMMYFAQCRCQAhzAVAAJMJACHNBUAAkwkAIbAGAQCRCQAh1gZAAJMJACHXBgEAkQkAIdgGAgCqCQAhCsMFAACwEQAwxAUAALERABDFBQAAsBEAMMYFAQCRCQAhzAVAAJMJACHNBUAAkwkAIbAGAQCRCQAh1gZAAJMJACHXBgEAkQkAIdgGAgCqCQAhBsYFAQCzCwAhzAVAALULACHNBUAAtQsAIdYGQAC1CwAh1wYBALMLACHYBgIA_QsAIQcZAAC0EQAgxgUBALMLACHMBUAAtQsAIc0FQAC1CwAh1gZAALULACHXBgEAswsAIdgGAgD9CwAhC08AALURADBQAAC6EQAw8QYAALYRADDyBgAAtxEAMPMGAAC4EQAg9AYAALkRADD1BgAAuREAMPYGAAC5EQAw9wYAALkRADD4BgAAuxEAMPkGAAC8EQAwBBoAAMcRACDGBQEAAAABzAVAAAAAAc0FQAAAAAECAAAAYAAgTwAAxhEAIAMAAABgACBPAADGEQAgUAAAvxEAIAFKAAC0FAAwCRQAAPMKACAaAAD0CgAgwwUAAPIKADDEBQAAWwAQxQUAAPIKADDGBQEAAAABzAVAAJMJACHNBUAAkwkAIdUGAQCSCQAhAgAAAGAAIEoAAL8RACACAAAAvREAIEoAAL4RACAHwwUAALwRADDEBQAAvREAEMUFAAC8EQAwxgUBAJEJACHMBUAAkwkAIc0FQACTCQAh1QYBAJIJACEHwwUAALwRADDEBQAAvREAEMUFAAC8EQAwxgUBAJEJACHMBUAAkwkAIc0FQACTCQAh1QYBAJIJACEDxgUBALMLACHMBUAAtQsAIc0FQAC1CwAhBBoAAMARACDGBQEAswsAIcwFQAC1CwAhzQVAALULACEHTwAAwREAIFAAAMQRACDxBgAAwhEAIPIGAADDEQAg9QYAAFUAIPYGAABVACD3BgAAVwAgBxEAALgOACAYAAD5DwAgxgUBAAAAAcoFAQAAAAHMBUAAAAABzQVAAAAAAdMGAQAAAAECAAAAVwAgTwAAwREAIAMAAABVACBPAADBEQAgUAAAxREAIAkAAABVACARAAC1DgAgGAAA-A8AIEoAAMURACDGBQEAswsAIcoFAQC0CwAhzAVAALULACHNBUAAtQsAIdMGAQC0CwAhBxEAALUOACAYAAD4DwAgxgUBALMLACHKBQEAtAsAIcwFQAC1CwAhzQVAALULACHTBgEAtAsAIQQaAADHEQAgxgUBAAAAAcwFQAAAAAHNBUAAAAABA08AAMERACDxBgAAwhEAIPcGAABXACAHGQAAyREAIMYFAQAAAAHMBUAAAAABzQVAAAAAAdYGQAAAAAHXBgEAAAAB2AYCAAAAAQRPAAC1EQAw8QYAALYRADDzBgAAuBEAIPcGAAC5EQAwBx0AAOwRACDGBQEAAAABzAVAAAAAAc0FQAAAAAHWBkAAAAAB1wYBAAAAAdgGAgAAAAECAAAARgAgTwAA6xEAIAMAAABGACBPAADrEQAgUAAA1BEAIAFKAACzFAAwDBAAAO8KACAdAAD9CgAgwwUAAPwKADDEBQAARAAQxQUAAPwKADDGBQEAAAABzAVAAJMJACHNBUAAkwkAIbAGAQCRCQAh1gZAAJMJACHXBgEAAAAB2AYCAKoJACECAAAARgAgSgAA1BEAIAIAAADSEQAgSgAA0xEAIArDBQAA0REAMMQFAADSEQAQxQUAANERADDGBQEAkQkAIcwFQACTCQAhzQVAAJMJACGwBgEAkQkAIdYGQACTCQAh1wYBAJEJACHYBgIAqgkAIQrDBQAA0REAMMQFAADSEQAQxQUAANERADDGBQEAkQkAIcwFQACTCQAhzQVAAJMJACGwBgEAkQkAIdYGQACTCQAh1wYBAJEJACHYBgIAqgkAIQbGBQEAswsAIcwFQAC1CwAhzQVAALULACHWBkAAtQsAIdcGAQCzCwAh2AYCAP0LACEHHQAA1REAIMYFAQCzCwAhzAVAALULACHNBUAAtQsAIdYGQAC1CwAh1wYBALMLACHYBgIA_QsAIQtPAADWEQAwUAAA2xEAMPEGAADXEQAw8gYAANgRADDzBgAA2REAIPQGAADaEQAw9QYAANoRADD2BgAA2hEAMPcGAADaEQAw-AYAANwRADD5BgAA3REAMAUXAADqEQAgxgUBAAAAAcwFQAAAAAHNBUAAAAAB3QYCAAAAAQIAAABKACBPAADpEQAgAwAAAEoAIE8AAOkRACBQAADgEQAgAUoAALIUADAKFAAA-woAIBcAAPYKACDDBQAA-goAMMQFAABIABDFBQAA-goAMMYFAQAAAAHMBUAAkwkAIc0FQACTCQAh1QYBAJEJACHdBgIAqgkAIQIAAABKACBKAADgEQAgAgAAAN4RACBKAADfEQAgCMMFAADdEQAwxAUAAN4RABDFBQAA3REAMMYFAQCRCQAhzAVAAJMJACHNBUAAkwkAIdUGAQCRCQAh3QYCAKoJACEIwwUAAN0RADDEBQAA3hEAEMUFAADdEQAwxgUBAJEJACHMBUAAkwkAIc0FQACTCQAh1QYBAJEJACHdBgIAqgkAIQTGBQEAswsAIcwFQAC1CwAhzQVAALULACHdBgIA_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-wMAIANPAACRFAAg8QYAAJIUACD3BgAA-wMAIAAAAAMUAADWEwAgFwAA0RMAIPoGAADXEwAgCQ4AANoTACAYAADREwAgNQAA6BMAIDYAAOkTACA4AADrEwAgOQAAhBEAIDoAAOwTACA7AADtEwAg-gYAAO4TACAAAAHaBQEAAAABAAAAAAAFTwAAjBQAIFAAAI8UACDxBgAAjRQAIPIGAACOFAAg9wYAAEYAIANPAACMFAAg8QYAAI0UACD3BgAARgAgAAAAAAAFTwAAhxQAIFAAAIoUACDxBgAAiBQAIPIGAACJFAAg9wYAAPsDACADTwAAhxQAIPEGAACIFAAg9wYAAPsDACAAAAAFTwAAgRQAIFAAAIUUACDxBgAAghQAIPIGAACEFAAg9wYAAJoCACALTwAA2hIAMFAAAN4SADDxBgAA2xIAMPIGAADcEgAw8wYAAN0SACD0BgAA7w0AMPUGAADvDQAw9gYAAO8NADD3BgAA7w0AMPgGAADfEgAw-QYAAPINADAQDQAAnQ4AIBEAAJsOACAlAACWDwAgQQAAmg4AIEIAAJwOACDGBQEAAAABxwUBAAAAAcoFAQAAAAHLBQEAAAABzAVAAAAAAc0FQAAAAAHwBQAAAKcGAqQGAQAAAAGlBgEAAAABqAYAAACoBgKqBgEAAAABAgAAAA8AIE8AAOISACADAAAADwAgTwAA4hIAIFAAAOESACABSgAAgxQAMAIAAAAPACBKAADhEgAgAgAAAPMNACBKAADgEgAgC8YFAQCzCwAhxwUBALMLACHKBQEAswsAIcsFAQCzCwAhzAVAALULACHNBUAAtQsAIfAFAAD1DacGIqQGAQC0CwAhpQYBALQLACGoBgAA9g2oBiKqBgEAtAsAIRANAAD8DQAgEQAA-g0AICUAAJUPACBBAAD5DQAgQgAA-w0AIMYFAQCzCwAhxwUBALMLACHKBQEAswsAIcsFAQCzCwAhzAVAALULACHNBUAAtQsAIfAFAAD1DacGIqQGAQC0CwAhpQYBALQLACGoBgAA9g2oBiKqBgEAtAsAIRANAACdDgAgEQAAmw4AICUAAJYPACBBAACaDgAgQgAAnA4AIMYFAQAAAAHHBQEAAAABygUBAAAAAcsFAQAAAAHMBUAAAAABzQVAAAAAAfAFAAAApwYCpAYBAAAAAaUGAQAAAAGoBgAAAKgGAqoGAQAAAAEDTwAAgRQAIPEGAACCFAAg9wYAAJoCACAETwAA2hIAMPEGAADbEgAw8wYAAN0SACD3BgAA7w0AMAAAAAtPAADpEgAwUAAA7hIAMPEGAADqEgAw8gYAAOsSADDzBgAA7BIAIPQGAADtEgAw9QYAAO0SADD2BgAA7RIAMPcGAADtEgAw-AYAAO8SADD5BgAA8BIAMAY_AADkEgAgxgUBAAAAAccFAQAAAAHMBUAAAAABzQVAAAAAAcIGAQAAAAECAAAAygEAIE8AAPQSACADAAAAygEAIE8AAPQSACBQAADzEgAgAUoAAIAUADALPgAA0QoAID8AAIYKACDDBQAA0AoAMMQFAADHAQAQxQUAANAKADDGBQEAAAABxwUBAJEJACHMBUAAkwkAIc0FQACTCQAhwgYBAJIJACHeBgEAkQkAIQIAAADKAQAgSgAA8xIAIAIAAADxEgAgSgAA8hIAIAnDBQAA8BIAMMQFAADxEgAQxQUAAPASADDGBQEAkQkAIccFAQCRCQAhzAVAAJMJACHNBUAAkwkAIcIGAQCSCQAh3gYBAJEJACEJwwUAAPASADDEBQAA8RIAEMUFAADwEgAwxgUBAJEJACHHBQEAkQkAIcwFQACTCQAhzQVAAJMJACHCBgEAkgkAId4GAQCRCQAhBcYFAQCzCwAhxwUBALMLACHMBUAAtQsAIc0FQAC1CwAhwgYBALQLACEGPwAA2RIAIMYFAQCzCwAhxwUBALMLACHMBUAAtQsAIc0FQAC1CwAhwgYBALQLACEGPwAA5BIAIMYFAQAAAAHHBQEAAAABzAVAAAAAAc0FQAAAAAHCBgEAAAABBE8AAOkSADDxBgAA6hIAMPMGAADsEgAg9wYAAO0SADAAAdoFAQAAAAEAAAAB9AYAAADiBgIB9AYAAADjBgIHTwAAkBMAIFAAAJMTACDxBgAAkRMAIPIGAACSEwAg9QYAAAMAIPYGAAADACD3BgAAAQAgB08AAIsTACBQAACOEwAg8QYAAIwTACDyBgAAjRMAIPUGAAAIACD2BgAACAAg9wYAAAsAIAdPAACGEwAgUAAAiRMAIPEGAACHEwAg8gYAAIgTACD1BgAAOQAg9gYAADkAIPcGAAA7ACAHTwAAgRMAIFAAAIQTACDxBgAAghMAIPIGAACDEwAg9QYAAC4AIPYGAAAuACD3BgAAMAAgCg0AALAQACAOAAC_EAAgIQAArRAAICMAAK4QACApAACvEAAgxgUBAAAAAcwFQAAAAAHNBUAAAAABrgYBAAAAAbUGAAAAtQYCAgAAADAAIE8AAIETACADAAAALgAgTwAAgRMAIFAAAIUTACAMAAAALgAgDQAA6Q8AIA4AAL4QACAhAADmDwAgIwAA5w8AICkAAOgPACBKAACFEwAgxgUBALMLACHMBUAAtQsAIc0FQAC1CwAhrgYBALMLACG1BgAA4w-1BiIKDQAA6Q8AIA4AAL4QACAhAADmDwAgIwAA5w8AICkAAOgPACDGBQEAswsAIcwFQAC1CwAhzQVAALULACGuBgEAswsAIbUGAADjD7UGIgYQAAClEgAgxgUBAAAAAcwFQAAAAAHNBUAAAAABsAYBAAAAAbUGAAAA0wYCAgAAADsAIE8AAIYTACADAAAAOQAgTwAAhhMAIFAAAIoTACAIAAAAOQAgEAAApBIAIEoAAIoTACDGBQEAswsAIcwFQAC1CwAhzQVAALULACGwBgEAswsAIbUGAACPEtMGIgYQAACkEgAgxgUBALMLACHMBUAAtQsAIc0FQAC1CwAhsAYBALMLACG1BgAAjxLTBiIGQQAA8hAAIMYFAQAAAAHMBUAAAAABzQVAAAAAAaoGAQAAAAG1BgAAAMoGAgIAAAALACBPAACLEwAgAwAAAAgAIE8AAIsTACBQAACPEwAgCAAAAAgAIEEAAPEQACBKAACPEwAgxgUBALMLACHMBUAAtQsAIc0FQAC1CwAhqgYBALMLACG1BgAA5BDKBiIGQQAA8RAAIMYFAQCzCwAhzAVAALULACHNBUAAtQsAIaoGAQCzCwAhtQYAAOQQygYiBQUAAJYTACDGBQEAAAABzAVAAAAAAc0FQAAAAAHjBgEAAAABAgAAAAEAIE8AAJATACADAAAAAwAgTwAAkBMAIFAAAJQTACAHAAAAAwAgBQAAlRMAIEoAAJQTACDGBQEAswsAIcwFQAC1CwAhzQVAALULACHjBgEAswsAIQUFAACVEwAgxgUBALMLACHMBUAAtQsAIc0FQAC1CwAh4wYBALMLACEFTwAA-xMAIFAAAP4TACDxBgAA_BMAIPIGAAD9EwAg9wYAAOwBACADTwAA-xMAIPEGAAD8EwAg9wYAAOwBACADTwAAkBMAIPEGAACREwAg9wYAAAEAIANPAACLEwAg8QYAAIwTACD3BgAACwAgA08AAIYTACDxBgAAhxMAIPcGAAA7ACADTwAAgRMAIPEGAACCEwAg9wYAADAAIAMFAADzEwAgEQAA3RMAIPoGAAD0EwAgAxEAAN0TACBBAADwEwAg-gYAAPITACADEAAAyhMAIBEAAN0TACD6BgAA3hMAIAHaBQEAAAABAAAAC08AAKMTADBQAACoEwAw8QYAAKQTADDyBgAApRMAMPMGAACmEwAg9AYAAKcTADD1BgAApxMAMPYGAACnEwAw9wYAAKcTADD4BgAAqRMAMPkGAACqEwAwBREAALATACDGBQEAAAABygUBAAAAAcwFQAAAAAHNBUAAAAABAgAAAAEAIE8AAK8TACADAAAAAQAgTwAArxMAIFAAAK0TACABSgAA-hMAMAoFAACuCwAgEQAAhgsAIMMFAACtCwAwxAUAAAMAEMUFAACtCwAwxgUBAAAAAcoFAQAAAAHMBUAAkwkAIc0FQACTCQAh4wYBAJEJACECAAAAAQAgSgAArRMAIAIAAACrEwAgSgAArBMAIAjDBQAAqhMAMMQFAACrEwAQxQUAAKoTADDGBQEAkQkAIcoFAQCRCQAhzAVAAJMJACHNBUAAkwkAIeMGAQCRCQAhCMMFAACqEwAwxAUAAKsTABDFBQAAqhMAMMYFAQCRCQAhygUBAJEJACHMBUAAkwkAIc0FQACTCQAh4wYBAJEJACEExgUBALMLACHKBQEAswsAIcwFQAC1CwAhzQVAALULACEFEQAArhMAIMYFAQCzCwAhygUBALMLACHMBUAAtQsAIc0FQAC1CwAhBU8AAPUTACBQAAD4EwAg8QYAAPYTACDyBgAA9xMAIPcGAACDAgAgBREAALATACDGBQEAAAABygUBAAAAAcwFQAAAAAHNBUAAAAABA08AAPUTACDxBgAA9hMAIPcGAACDAgAgBE8AAKMTADDxBgAApBMAMPMGAACmEwAg9wYAAKcTADAAAdoFAQAAAAEAAAACDwAA9hIAIPoGAAD3EgAgAdoFAQAAAAEGCwAAiA8AIAwAAIkPACANAACKDwAgzgUAAK8LACCfBgAArwsAIPoGAACLDwAgAdoFAQAAAAEB2gUBAAAAAQHaBQEAAAABBTIAANkLACDIBQAArwsAIMkFAACvCwAgzgUAAK8LACD6BgAA2gsAIAAB2gUBAAAAAQQuAADnCwAgyAUAAK8LACDnBQAArwsAIPoGAADoCwAgAdoFAQAAAAEEKgAAlQwAICwAAJYMACD_BQAArwsAIPoGAACXDAAgAdoFAQAAAAEFIgAAgREAICQAAIIRACAmAACDEQAgKAAAhBEAIPoGAACFEQAgAdoFAQAAAAEGCQAAwxIAIDcAANYOACA8AADsEAAgPQAAgxEAIKwGAACvCwAg-gYAALwTACAB2gUBAAAAAQsNAACKDwAgEQAAgREAICUAAMYTACBAAADvEwAgQQAA8BMAIEIAAIIRACCkBgAArwsAIKUGAACvCwAgqQYAAK8LACCqBgAArwsAIPoGAADxEwAgAdoFAQAAAAEIAwAAmhIAIBIAAJsSACATAACcEgAgHgAAnRIAIB8AAJ4SACAgAACfEgAg0QYAAK8LACD6BgAAoBIAIAHaBQEAAAABAAHaBQEAAAABAxAAAMoTACAZAADMEwAg-gYAAM0TACAHEQAAgREAIBgAANETACAbAADSEwAgygUAAK8LACDTBgAArwsAINQGAACvCwAg-gYAANMTACAB2gUBAAAAAQUJAADDEgAgFQAAwhIAIBYAAMQSACAcAADFEgAg-gYAAMYSACAEFAAAzhMAIBoAAM8TACDVBgAArwsAIPoGAADQEwAgAdoFAQAAAAEDEAAAyhMAIBYAAMQSACD6BgAAyxMAIAHaBQEAAAABAxAAAMoTACAdAADYEwAg-gYAANkTACAB2gUBAAAAAQAB2gUBAAAAAQYDAAC2EAAgBwAA1Q4AIAsAALgQACAMAAC5EAAgDwAAtxAAIPoGAAC6EAAgAdoFAQAAAAEB2gUBAAAAAQUGAACbEwAgIgAAgREAIEMAAJwTACBEAACdEwAg-gYAAJ4TACAB2gUBAAAAAQHaBQEAAAABAdoFAQAAAAEAAdoFAQAAAAEMCAAA5hMAIAkAAMMSACAzAAC-EwAgyAUAAK8LACDJBQAArwsAIM4FAACvCwAg3wUAAK8LACDgBQAArwsAIOEFAACvCwAg4gUAAK8LACCWBgAArwsAIPoGAADnEwAgCAgAAL0TACAzAAC-EwAgyAUAAK8LACDOBQAArwsAIN8FAACvCwAg4AUAAK8LACDhBQAArwsAIPoGAAC_EwAgAdoFAQAAAAEJJQAAxhMAIDUAAOgTACA2AADpEwAgyAUAAK8LACDJBQAArwsAIMsFAACvCwAgzgUAAK8LACCTBgAArwsAIPoGAADqEwAgAdoFAQAAAAEABAcAANUOACA3AADWDgAgiwYAAK8LACD6BgAA1w4AIAHaBQEAAAABAAAAAdoFAQAAAAEEPgAAtxMAID8AAOwQACDCBgAArwsAIPoGAAC4EwAgAwMAAOsQACA8AADsEAAg-gYAAO0QACAB2gUBAAAAAQHaBQEAAAABAwMAALITACCxBgAArwsAIPoGAACzEwAgAdoFAQAAAAEIIgAAmhMAIEMAAJgTACBEAACZEwAgxgUBAAAAAfAFAAAA4gYCoQYAAADjBgLfBgEAAAAB4AYBAAAAAQIAAACDAgAgTwAA9RMAIAMAAACGAgAgTwAA9RMAIFAAAPkTACAKAAAAhgIAICIAAIATACBDAAD-EgAgRAAA_xIAIEoAAPkTACDGBQEAswsAIfAFAAD7EuIGIqEGAAD8EuMGIt8GAQCzCwAh4AYBALMLACEIIgAAgBMAIEMAAP4SACBEAAD_EgAgxgUBALMLACHwBQAA-xLiBiKhBgAA_BLjBiLfBgEAswsAIeAGAQCzCwAhBMYFAQAAAAHKBQEAAAABzAVAAAAAAc0FQAAAAAEHxgUBAAAAAcwFQAAAAAHNBUAAAAABmwYBAAAAAZwGAQAAAAGeBgEAAAABsQYBAAAAAQIAAADsAQAgTwAA-xMAIAMAAADvAQAgTwAA-xMAIFAAAP8TACAJAAAA7wEAIEoAAP8TACDGBQEAswsAIcwFQAC1CwAhzQVAALULACGbBgEAswsAIZwGAQCzCwAhngYBALMLACGxBgEAtAsAIQfGBQEAswsAIcwFQAC1CwAhzQVAALULACGbBgEAswsAIZwGAQCzCwAhngYBALMLACGxBgEAtAsAIQXGBQEAAAABxwUBAAAAAcwFQAAAAAHNBUAAAAABwgYBAAAAAQTGBQEAAAABxwUBAAAAAcwFQAAAAAHNBUAAAAABAgAAAJoCACBPAACBFAAgC8YFAQAAAAHHBQEAAAABygUBAAAAAcsFAQAAAAHMBUAAAAABzQVAAAAAAfAFAAAApwYCpAYBAAAAAaUGAQAAAAGoBgAAAKgGAqoGAQAAAAEDAAAAnQIAIE8AAIEUACBQAACGFAAgBgAAAJ0CACBKAACGFAAgxgUBALMLACHHBQEAswsAIcwFQAC1CwAhzQVAALULACEExgUBALMLACHHBQEAswsAIcwFQAC1CwAhzQVAALULACENAwAAlBIAIBIAAJUSACATAACWEgAgHwAAmBIAICAAAJkSACDGBQEAAAABxwUBAAAAAcwFQAAAAAHNBUAAAAAB8AUAAADJBgKLBgEAAAAB0AYAAADQBgLRBgEAAAABAgAAAPsDACBPAACHFAAgAwAAAP4DACBPAACHFAAgUAAAixQAIA8AAAD-AwAgAwAAihEAIBIAAIsRACATAACMEQAgHwAAjhEAICAAAI8RACBKAACLFAAgxgUBALMLACHHBQEAswsAIcwFQAC1CwAhzQVAALULACHwBQAAzhDJBiKLBgEAswsAIdAGAACJEdAGItEGAQC0CwAhDQMAAIoRACASAACLEQAgEwAAjBEAIB8AAI4RACAgAACPEQAgxgUBALMLACHHBQEAswsAIcwFQAC1CwAhzQVAALULACHwBQAAzhDJBiKLBgEAswsAIdAGAACJEdAGItEGAQC0CwAhCBAAANQSACDGBQEAAAABzAVAAAAAAc0FQAAAAAGwBgEAAAAB1gZAAAAAAdcGAQAAAAHYBgIAAAABAgAAAEYAIE8AAIwUACADAAAARAAgTwAAjBQAIFAAAJAUACAKAAAARAAgEAAA0xIAIEoAAJAUACDGBQEAswsAIcwFQAC1CwAhzQVAALULACGwBgEAswsAIdYGQAC1CwAh1wYBALMLACHYBgIA_QsAIQgQAADTEgAgxgUBALMLACHMBUAAtQsAIc0FQAC1CwAhsAYBALMLACHWBkAAtQsAIdcGAQCzCwAh2AYCAP0LACENAwAAlBIAIBIAAJUSACATAACWEgAgHgAAlxIAIB8AAJgSACDGBQEAAAABxwUBAAAAAcwFQAAAAAHNBUAAAAAB8AUAAADJBgKLBgEAAAAB0AYAAADQBgLRBgEAAAABAgAAAPsDACBPAACRFAAgAwAAAP4DACBPAACRFAAgUAAAlRQAIA8AAAD-AwAgAwAAihEAIBIAAIsRACATAACMEQAgHgAAjREAIB8AAI4RACBKAACVFAAgxgUBALMLACHHBQEAswsAIcwFQAC1CwAhzQVAALULACHwBQAAzhDJBiKLBgEAswsAIdAGAACJEdAGItEGAQC0CwAhDQMAAIoRACASAACLEQAgEwAAjBEAIB4AAI0RACAfAACOEQAgxgUBALMLACHHBQEAswsAIcwFQAC1CwAhzQVAALULACHwBQAAzhDJBiKLBgEAswsAIdAGAACJEdAGItEGAQC0CwAhDQMAAJQSACASAACVEgAgEwAAlhIAIB4AAJcSACAgAACZEgAgxgUBAAAAAccFAQAAAAHMBUAAAAABzQVAAAAAAfAFAAAAyQYCiwYBAAAAAdAGAAAA0AYC0QYBAAAAAQIAAAD7AwAgTwAAlhQAIAMAAAD-AwAgTwAAlhQAIFAAAJoUACAPAAAA_gMAIAMAAIoRACASAACLEQAgEwAAjBEAIB4AAI0RACAgAACPEQAgSgAAmhQAIMYFAQCzCwAhxwUBALMLACHMBUAAtQsAIc0FQAC1CwAh8AUAAM4QyQYiiwYBALMLACHQBgAAiRHQBiLRBgEAtAsAIQ0DAACKEQAgEgAAixEAIBMAAIwRACAeAACNEQAgIAAAjxEAIMYFAQCzCwAhxwUBALMLACHMBUAAtQsAIc0FQAC1CwAh8AUAAM4QyQYiiwYBALMLACHQBgAAiRHQBiLRBgEAtAsAIQgQAAC0EgAgxgUBAAAAAcwFQAAAAAHNBUAAAAABsAYBAAAAAdYGQAAAAAHXBgEAAAAB2AYCAAAAAQIAAABoACBPAACbFAAgAwAAAF0AIE8AAJsUACBQAACfFAAgCgAAAF0AIBAAALMSACBKAACfFAAgxgUBALMLACHMBUAAtQsAIc0FQAC1CwAhsAYBALMLACHWBkAAtQsAIdcGAQCzCwAh2AYCAP0LACEIEAAAsxIAIMYFAQCzCwAhzAVAALULACHNBUAAtQsAIbAGAQCzCwAh1gZAALULACHXBgEAswsAIdgGAgD9CwAhDRIAAJUSACATAACWEgAgHgAAlxIAIB8AAJgSACAgAACZEgAgxgUBAAAAAccFAQAAAAHMBUAAAAABzQVAAAAAAfAFAAAAyQYCiwYBAAAAAdAGAAAA0AYC0QYBAAAAAQIAAAD7AwAgTwAAoBQAIAMAAAD-AwAgTwAAoBQAIFAAAKQUACAPAAAA_gMAIBIAAIsRACATAACMEQAgHgAAjREAIB8AAI4RACAgAACPEQAgSgAApBQAIMYFAQCzCwAhxwUBALMLACHMBUAAtQsAIc0FQAC1CwAh8AUAAM4QyQYiiwYBALMLACHQBgAAiRHQBiLRBgEAtAsAIQ0SAACLEQAgEwAAjBEAIB4AAI0RACAfAACOEQAgIAAAjxEAIMYFAQCzCwAhxwUBALMLACHMBUAAtQsAIc0FQAC1CwAh8AUAAM4QyQYiiwYBALMLACHQBgAAiRHQBiLRBgEAtAsAIQgGAACXEwAgIgAAmhMAIEMAAJgTACDGBQEAAAAB8AUAAADiBgKhBgAAAOMGAt8GAQAAAAHgBgEAAAABAgAAAIMCACBPAAClFAAgAwAAAIYCACBPAAClFAAgUAAAqRQAIAoAAACGAgAgBgAA_RIAICIAAIATACBDAAD-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_xIAIEoAAMsUACDGBQEAswsAIfAFAAD7EuIGIqEGAAD8EuMGIt8GAQCzCwAh4AYBALMLACEIBgAA_RIAICIAAIATACBEAAD_EgAgxgUBALMLACHwBQAA-xLiBiKhBgAA_BLjBiLfBgEAswsAIeAGAQCzCwAhBcYFAQAAAAHKBQEAAAABzAVAAAAAAc0FQAAAAAG1BgAAAMoGAgvGBQEAAAABxwUBAAAAAcoFAQAAAAHLBQEAAAABzAVAAAAAAc0FQAAAAAHwBQAAAKcGAqQGAQAAAAGlBgEAAAABqAYAAACoBgKpBgEAAAABCQMAALEQACAHAACyEAAgCwAAtBAAIAwAALUQACDGBQEAAAABzAVAAAAAAc0FQAAAAAHwBQAAALQGAqEGAAAAswYCAgAAAM0FACBPAADOFAAgAwAAANAFACBPAADOFAAgUAAA0hQAIAsAAADQBQAgAwAAtA8AIAcAALUPACALAAC3DwAgDAAAuA8AIEoAANIUACDGBQEAswsAIcwFQAC1CwAhzQVAALULACHwBQAAsw-0BiKhBgAAsg-zBiIJAwAAtA8AIAcAALUPACALAAC3DwAgDAAAuA8AIMYFAQCzCwAhzAVAALULACHNBUAAtQsAIfAFAACzD7QGIqEGAACyD7MGIgkHAACyEAAgCwAAtBAAIAwAALUQACAPAACzEAAgxgUBAAAAAcwFQAAAAAHNBUAAAAAB8AUAAAC0BgKhBgAAALMGAgIAAADNBQAgTwAA0xQAIAMAAADQBQAgTwAA0xQAIFAAANcUACALAAAA0AUAIAcAALUPACALAAC3DwAgDAAAuA8AIA8AALYPACBKAADXFAAgxgUBALMLACHMBUAAtQsAIc0FQAC1CwAh8AUAALMPtAYioQYAALIPswYiCQcAALUPACALAAC3DwAgDAAAuA8AIA8AALYPACDGBQEAswsAIcwFQAC1CwAhzQVAALULACHwBQAAsw-0BiKhBgAAsg-zBiIIBgAAlxMAIEMAAJgTACBEAACZEwAgxgUBAAAAAfAFAAAA4gYCoQYAAADjBgLfBgEAAAAB4AYBAAAAAQIAAACDAgAgTwAA2BQAIBENAACdDgAgEQAAmw4AICUAAJYPACBAAACZDgAgQQAAmg4AIMYFAQAAAAHHBQEAAAABygUBAAAAAcsFAQAAAAHMBUAAAAABzQVAAAAAAfAFAAAApwYCpAYBAAAAAaUGAQAAAAGoBgAAAKgGAqkGAQAAAAGqBgEAAAABAgAAAA8AIE8AANoUACADAAAADQAgTwAA2hQAIFAAAN4UACATAAAADQAgDQAA_A0AIBEAAPoNACAlAACVDwAgQAAA-A0AIEEAAPkNACBKAADeFAAgxgUBALMLACHHBQEAswsAIcoFAQCzCwAhywUBALMLACHMBUAAtQsAIc0FQAC1CwAh8AUAAPUNpwYipAYBALQLACGlBgEAtAsAIagGAAD2DagGIqkGAQC0CwAhqgYBALQLACERDQAA_A0AIBEAAPoNACAlAACVDwAgQAAA-A0AIEEAAPkNACDGBQEAswsAIccFAQCzCwAhygUBALMLACHLBQEAswsAIcwFQAC1CwAhzQVAALULACHwBQAA9Q2nBiKkBgEAtAsAIaUGAQC0CwAhqAYAAPYNqAYiqQYBALQLACGqBgEAtAsAIQPGBQEAAAABkQYBAAAAAbUGAAAAzwYCCgkAAJsPACA3AACgDgAgPAAAnw4AIMYFAQAAAAHHBQEAAAABzAVAAAAAAc0FQAAAAAGWBgEAAAABqwYBAAAAAawGAQAAAAECAAAAsgEAIE8AAOAUACADAAAAqwEAIE8AAOAUACBQAADkFAAgDAAAAKsBACAJAACaDwAgNwAAzw0AIDwAAM4NACBKAADkFAAgxgUBALMLACHHBQEAswsAIcwFQAC1CwAhzQVAALULACGWBgEAswsAIasGAQCzCwAhrAYBALQLACEKCQAAmg8AIDcAAM8NACA8AADODQAgxgUBALMLACHHBQEAswsAIcwFQAC1CwAhzQVAALULACGWBgEAswsAIasGAQCzCwAhrAYBALQLACEDxgUBAAAAAcsFAQAAAAG1BgAAAM4GAhAOAADMDgAgGAAAzQ4AIDUAANAOACA2AACgDwAgOAAAzg4AIDoAANEOACA7AADSDgAgxgUBAAAAAccFAQAAAAHMBUAAAAABzQVAAAAAAfcFAQAAAAGTBgEAAAABmAYBAAAAAa0GAQAAAAGuBgEAAAABAgAAABMAIE8AAOYUACADAAAAEQAgTwAA5hQAIFAAAOoUACASAAAAEQAgDgAAhg0AIBgAAIcNACA1AACKDQAgNgAAnw8AIDgAAIgNACA6AACLDQAgOwAAjA0AIEoAAOoUACDGBQEAswsAIccFAQCzCwAhzAVAALULACHNBUAAtQsAIfcFAQCzCwAhkwYBALMLACGYBgEAswsAIa0GAQCzCwAhrgYBALMLACEQDgAAhg0AIBgAAIcNACA1AACKDQAgNgAAnw8AIDgAAIgNACA6AACLDQAgOwAAjA0AIMYFAQCzCwAhxwUBALMLACHMBUAAtQsAIc0FQAC1CwAh9wUBALMLACGTBgEAswsAIZgGAQCzCwAhrQYBALMLACGuBgEAswsAIQPGBQEAAAABtQYAAADLBgLLBgEAAAABCgkAAOgRACAVAADIDgAgFgAAyQ4AIMYFAQAAAAHMBUAAAAABzQVAAAAAAZYGAQAAAAHZBkAAAAAB2wZAAAAAAdwGAQAAAAECAAAA7QIAIE8AAOwUACADAAAATAAgTwAA7BQAIFAAAPAUACAMAAAATAAgCQAA5xEAIBUAAKcOACAWAACoDgAgSgAA8BQAIMYFAQCzCwAhzAVAALULACHNBUAAtQsAIZYGAQCzCwAh2QZAALULACHbBkAAtQsAIdwGAQCzCwAhCgkAAOcRACAVAACnDgAgFgAAqA4AIMYFAQCzCwAhzAVAALULACHNBUAAtQsAIZYGAQCzCwAh2QZAALULACHbBkAAtQsAIdwGAQCzCwAhC8YFAQAAAAHMBUAAAAABzQVAAAAAAYQGEAAAAAGGBgEAAAABiwYBAAAAAYwGAgAAAAGNBkAAAAABjgaAAAAAAY8GAQAAAAGRBgEAAAABAwAAAIYCACBPAADYFAAgUAAA9BQAIAoAAACGAgAgBgAA_RIAIEMAAP4SACBEAAD_EgAgSgAA9BQAIMYFAQCzCwAh8AUAAPsS4gYioQYAAPwS4wYi3wYBALMLACHgBgEAswsAIQgGAAD9EgAgQwAA_hIAIEQAAP8SACDGBQEAswsAIfAFAAD7EuIGIqEGAAD8EuMGIt8GAQCzCwAh4AYBALMLACEFxgUBAAAAAcoFAQAAAAHMBUAAAAABzQVAAAAAAbUGAAAAtQYCCMYFAQAAAAHHBQEAAAABzAVAAAAAAc0FQAAAAAH3BQEAAAABkwYBAAAAAZgGAQAAAAGtBgEAAAABED4BAAAAAUABAAAAAcwFQAAAAAHNBUAAAAABpAYBAAAAAbcGAQAAAAG8BgEAAAABvgYBAAAAAb8GAQAAAAHBBgAAAMEGAsIGAQAAAAHDBgEAAAABxAYBAAAAAcUGAQAAAAHGBgEAAAABxwYBAAAAAQkDAACxEAAgBwAAshAAIAwAALUQACAPAACzEAAgxgUBAAAAAcwFQAAAAAHNBUAAAAAB8AUAAAC0BgKhBgAAALMGAgIAAADNBQAgTwAA-BQAIA0DAACUEgAgEwAAlhIAIB4AAJcSACAfAACYEgAgIAAAmRIAIMYFAQAAAAHHBQEAAAABzAVAAAAAAc0FQAAAAAHwBQAAAMkGAosGAQAAAAHQBgAAANAGAtEGAQAAAAECAAAA-wMAIE8AAPoUACADAAAA0AUAIE8AAPgUACBQAAD-FAAgCwAAANAFACADAAC0DwAgBwAAtQ8AIAwAALgPACAPAAC2DwAgSgAA_hQAIMYFAQCzCwAhzAVAALULACHNBUAAtQsAIfAFAACzD7QGIqEGAACyD7MGIgkDAAC0DwAgBwAAtQ8AIAwAALgPACAPAAC2DwAgxgUBALMLACHMBUAAtQsAIc0FQAC1CwAh8AUAALMPtAYioQYAALIPswYiAwAAAP4DACBPAAD6FAAgUAAAgRUAIA8AAAD-AwAgAwAAihEAIBMAAIwRACAeAACNEQAgHwAAjhEAICAAAI8RACBKAACBFQAgxgUBALMLACHHBQEAswsAIcwFQAC1CwAhzQVAALULACHwBQAAzhDJBiKLBgEAswsAIdAGAACJEdAGItEGAQC0CwAhDQMAAIoRACATAACMEQAgHgAAjREAIB8AAI4RACAgAACPEQAgxgUBALMLACHHBQEAswsAIcwFQAC1CwAhzQVAALULACHwBQAAzhDJBiKLBgEAswsAIdAGAACJEdAGItEGAQC0CwAhCQMAALEQACAHAACyEAAgCwAAtBAAIA8AALMQACDGBQEAAAABzAVAAAAAAc0FQAAAAAHwBQAAALQGAqEGAAAAswYCAgAAAM0FACBPAACCFQAgDQMAAJQSACASAACVEgAgHgAAlxIAIB8AAJgSACAgAACZEgAgxgUBAAAAAccFAQAAAAHMBUAAAAABzQVAAAAAAfAFAAAAyQYCiwYBAAAAAdAGAAAA0AYC0QYBAAAAAQIAAAD7AwAgTwAAhBUAIAMAAADQBQAgTwAAghUAIFAAAIgVACALAAAA0AUAIAMAALQPACAHAAC1DwAgCwAAtw8AIA8AALYPACBKAACIFQAgxgUBALMLACHMBUAAtQsAIc0FQAC1CwAh8AUAALMPtAYioQYAALIPswYiCQMAALQPACAHAAC1DwAgCwAAtw8AIA8AALYPACDGBQEAswsAIcwFQAC1CwAhzQVAALULACHwBQAAsw-0BiKhBgAAsg-zBiIDAAAA_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_QsAIQXGBQEAAAABzAVAAAAAAc0FQAAAAAHVBgEAAAAB2QZAAAAAAQUUAACtEgAgxgUBAAAAAcwFQAAAAAHNBUAAAAAB1QYBAAAAAQIAAABgACBPAACwFQAgCw0AALAQACAOAAC_EAAgEQAArBAAICEAAK0QACAjAACuEAAgxgUBAAAAAcoFAQAAAAHMBUAAAAABzQVAAAAAAa4GAQAAAAG1BgAAALUGAgIAAAAwACBPAACyFQAgAwAAAFsAIE8AALAVACBQAAC2FQAgBwAAAFsAIBQAAKwSACBKAAC2FQAgxgUBALMLACHMBUAAtQsAIc0FQAC1CwAh1QYBALQLACEFFAAArBIAIMYFAQCzCwAhzAVAALULACHNBUAAtQsAIdUGAQC0CwAhAwAAAC4AIE8AALIVACBQAAC5FQAgDQAAAC4AIA0AAOkPACAOAAC-EAAgEQAA5Q8AICEAAOYPACAjAADnDwAgSgAAuRUAIMYFAQCzCwAhygUBALMLACHMBUAAtQsAIc0FQAC1CwAhrgYBALMLACG1BgAA4w-1BiILDQAA6Q8AIA4AAL4QACARAADlDwAgIQAA5g8AICMAAOcPACDGBQEAswsAIcoFAQCzCwAhzAVAALULACHNBUAAtQsAIa4GAQCzCwAhtQYAAOMPtQYiBcYFAQAAAAHKBQEAAAABzAVAAAAAAc0FQAAAAAHUBgEAAAABAwAAAEgAIE8AAKgVACBQAAC9FQAgCAAAAEgAIBQAAMwSACBKAAC9FQAgxgUBALMLACHMBUAAtQsAIc0FQAC1CwAh1QYBALMLACHdBgIA_QsAIQYUAADMEgAgxgUBALMLACHMBUAAtQsAIc0FQAC1CwAh1QYBALMLACHdBgIA_QsAIQsNAACwEAAgDgAAvxAAIBEAAKwQACAjAACuEAAgKQAArxAAIMYFAQAAAAHKBQEAAAABzAVAAAAAAc0FQAAAAAGuBgEAAAABtQYAAAC1BgICAAAAMAAgTwAAvhUAIAcDAADpEAAgxgUBAAAAAccFAQAAAAHMBUAAAAABzQVAAAAAAfAFAAAAyQYCiwYBAAAAAQIAAAD4BAAgTwAAwBUAIAc-AADjEgAgxgUBAAAAAccFAQAAAAHMBUAAAAABzQVAAAAAAcIGAQAAAAHeBgEAAAABAgAAAMoBACBPAADCFQAgBSIAAIARACAmAACkEAAgKAAApRAAIMYFAQAAAAGQBgEAAAABAgAAAJIEACBPAADEFQAgAwAAAHkAIE8AAMQVACBQAADIFQAgBwAAAHkAICIAAP8QACAmAACAEAAgKAAAgRAAIEoAAMgVACDGBQEAswsAIZAGAQCzCwAhBSIAAP8QACAmAACAEAAgKAAAgRAAIMYFAQCzCwAhkAYBALMLACEDxgUBAAAAAbUGAAAAzwYCzAYBAAAAAQvGBQEAAAABzAVAAAAAAc0FQAAAAAGEBhAAAAABhgYBAAAAAYsGAQAAAAGMBgIAAAABjQZAAAAAAY4GgAAAAAGPBgEAAAABkAYBAAAAAQMAAAAuACBPAAC-FQAgUAAAzRUAIA0AAAAuACANAADpDwAgDgAAvhAAIBEAAOUPACAjAADnDwAgKQAA6A8AIEoAAM0VACDGBQEAswsAIcoFAQCzCwAhzAVAALULACHNBUAAtQsAIa4GAQCzCwAhtQYAAOMPtQYiCw0AAOkPACAOAAC-EAAgEQAA5Q8AICMAAOcPACApAADoDwAgxgUBALMLACHKBQEAswsAIcwFQAC1CwAhzQVAALULACGuBgEAswsAIbUGAADjD7UGIgMAAADPAQAgTwAAwBUAIFAAANAVACAJAAAAzwEAIAMAAM8QACBKAADQFQAgxgUBALMLACHHBQEAswsAIcwFQAC1CwAhzQVAALULACHwBQAAzhDJBiKLBgEAswsAIQcDAADPEAAgxgUBALMLACHHBQEAswsAIcwFQAC1CwAhzQVAALULACHwBQAAzhDJBiKLBgEAswsAIQMAAADHAQAgTwAAwhUAIFAAANMVACAJAAAAxwEAID4AANgSACBKAADTFQAgxgUBALMLACHHBQEAswsAIcwFQAC1CwAhzQVAALULACHCBgEAtAsAId4GAQCzCwAhBz4AANgSACDGBQEAswsAIccFAQCzCwAhzAVAALULACHNBUAAtQsAIcIGAQC0CwAh3gYBALMLACELxgUBAAAAAccFAQAAAAHKBQEAAAABzAVAAAAAAc0FQAAAAAHwBQAAAKcGAqQGAQAAAAGlBgEAAAABqAYAAACoBgKpBgEAAAABqgYBAAAAAQYHAADTDgAgxgUBAAAAAccFAQAAAAHMBUAAAAABzQVAAAAAAYsGAQAAAAECAAAAxQcAIE8AANUVACADAAAAqQEAIE8AANUVACBQAADZFQAgCAAAAKkBACAHAADNDAAgSgAA2RUAIMYFAQCzCwAhxwUBALMLACHMBUAAtQsAIc0FQAC1CwAhiwYBALQLACEGBwAAzQwAIMYFAQCzCwAhxwUBALMLACHMBUAAtQsAIc0FQAC1CwAhiwYBALQLACEJxgUBAAAAAccFAQAAAAHIBQEAAAAByQUBAAAAAcwFQAAAAAHNBUAAAAABzgVAAAAAAZIGIAAAAAGTBgEAAAABBSIAAIARACAkAACjEAAgKAAApRAAIMYFAQAAAAGQBgEAAAABAgAAAJIEACBPAADbFQAgAwAAAHkAIE8AANsVACBQAADfFQAgBwAAAHkAICIAAP8QACAkAAD_DwAgKAAAgRAAIEoAAN8VACDGBQEAswsAIZAGAQCzCwAhBSIAAP8QACAkAAD_DwAgKAAAgRAAIMYFAQCzCwAhkAYBALMLACEDxgUBAAAAAbUGAAAAzgYCzAYBAAAAAQbGBQEAAAABxwUBAAAAAcwFQAAAAAHNBUAAAAABqwYBAAAAAawGAQAAAAEFIgAAgBEAICQAAKMQACAmAACkEAAgxgUBAAAAAZAGAQAAAAECAAAAkgQAIE8AAOIVACADAAAAeQAgTwAA4hUAIFAAAOYVACAHAAAAeQAgIgAA_xAAICQAAP8PACAmAACAEAAgSgAA5hUAIMYFAQCzCwAhkAYBALMLACEFIgAA_xAAICQAAP8PACAmAACAEAAgxgUBALMLACGQBgEAswsAIQPGBQEAAAABtQYAAADLBgLMBgEAAAABDCUAAPoMACA2AADqDQAgxgUBAAAAAccFAQAAAAHIBQEAAAAByQUBAAAAAcsFAQAAAAHMBUAAAAABzQVAAAAAAc4FQAAAAAGSBiAAAAABkwYBAAAAAQIAAAAXACBPAADoFQAgAwAAABUAIE8AAOgVACBQAADsFQAgDgAAABUAICUAANwMACA2AADoDQAgSgAA7BUAIMYFAQCzCwAhxwUBALMLACHIBQEAtAsAIckFAQC0CwAhywUBALQLACHMBUAAtQsAIc0FQAC1CwAhzgVAALYLACGSBiAA2QwAIZMGAQC0CwAhDCUAANwMACA2AADoDQAgxgUBALMLACHHBQEAswsAIcgFAQC0CwAhyQUBALQLACHLBQEAtAsAIcwFQAC1CwAhzQVAALULACHOBUAAtgsAIZIGIADZDAAhkwYBALQLACEPxgUBAAAAAccFAQAAAAHIBQEAAAAByQUBAAAAAcwFQAAAAAHNBUAAAAABzgVAAAAAAd4FAQAAAAHfBQEAAAAB4AUBAAAAAeEFAQAAAAHiBRAAAAABggYAAACCBgKSBiAAAAABlQYAAACVBgIIDAAAhg8AIA0AAIcPACDGBQEAAAABzAVAAAAAAc0FQAAAAAHOBUAAAAABnwYgAAAAAaEGAAAAoQYCAgAAAN8GACBPAADuFQAgAwAAACMAIE8AAO4VACBQAADyFQAgCgAAACMAIAwAAPAOACANAADxDgAgSgAA8hUAIMYFAQCzCwAhzAVAALULACHNBUAAtQsAIc4FQAC2CwAhnwYgAO0OACGhBgAA7g6hBiIIDAAA8A4AIA0AAPEOACDGBQEAswsAIcwFQAC1CwAhzQVAALULACHOBUAAtgsAIZ8GIADtDgAhoQYAAO4OoQYiB48GAQAAAAGYBgEAAAABmgYBAAAAAZsGAQAAAAGcBgEAAAABnQYBAAAAAZ4GAQAAAAEICwAAhQ8AIA0AAIcPACDGBQEAAAABzAVAAAAAAc0FQAAAAAHOBUAAAAABnwYgAAAAAaEGAAAAoQYCAgAAAN8GACBPAAD0FQAgAwAAACMAIE8AAPQVACBQAAD4FQAgCgAAACMAIAsAAO8OACANAADxDgAgSgAA-BUAIMYFAQCzCwAhzAVAALULACHNBUAAtQsAIc4FQAC2CwAhnwYgAO0OACGhBgAA7g6hBiIICwAA7w4AIA0AAPEOACDGBQEAswsAIcwFQAC1CwAhzQVAALULACHOBUAAtgsAIZ8GIADtDgAhoQYAAO4OoQYiBY8GAQAAAAGXBgEAAAABmAYBAAAAAZkGAQAAAAGaBgEAAAABAwAAANAFACBPAACmFQAgUAAA_BUAIAsAAADQBQAgAwAAtA8AIAsAALcPACAMAAC4DwAgDwAAtg8AIEoAAPwVACDGBQEAswsAIcwFQAC1CwAhzQVAALULACHwBQAAsw-0BiKhBgAAsg-zBiIJAwAAtA8AIAsAALcPACAMAAC4DwAgDwAAtg8AIMYFAQCzCwAhzAVAALULACHNBUAAtQsAIfAFAACzD7QGIqEGAACyD7MGIgjGBQEAAAABxwUBAAAAAcwFQAAAAAHNBUAAAAAB9wUBAAAAAZgGAQAAAAGtBgEAAAABrgYBAAAAAQoJAACbDwAgPAAAnw4AID0AAKEOACDGBQEAAAABxwUBAAAAAcwFQAAAAAHNBUAAAAABlgYBAAAAAasGAQAAAAGsBgEAAAABAgAAALIBACBPAAD-FQAgEA4AAMwOACAYAADNDgAgNgAAoA8AIDgAAM4OACA5AADPDgAgOgAA0Q4AIDsAANIOACDGBQEAAAABxwUBAAAAAcwFQAAAAAHNBUAAAAAB9wUBAAAAAZMGAQAAAAGYBgEAAAABrQYBAAAAAa4GAQAAAAECAAAAEwAgTwAAgBYAIAzGBQEAAAABzAVAAAAAAe4FAQAAAAGABhAAAAABggYAAACCBgKDBhAAAAABhAYQAAAAAYUGEAAAAAGGBgEAAAABhwaAAAAAAYgGgAAAAAGKBgEAAAABAwAAABEAIE8AAIAWACBQAACFFgAgEgAAABEAIA4AAIYNACAYAACHDQAgNgAAnw8AIDgAAIgNACA5AACJDQAgOgAAiw0AIDsAAIwNACBKAACFFgAgxgUBALMLACHHBQEAswsAIcwFQAC1CwAhzQVAALULACH3BQEAswsAIZMGAQCzCwAhmAYBALMLACGtBgEAswsAIa4GAQCzCwAhEA4AAIYNACAYAACHDQAgNgAAnw8AIDgAAIgNACA5AACJDQAgOgAAiw0AIDsAAIwNACDGBQEAswsAIccFAQCzCwAhzAVAALULACHNBUAAtQsAIfcFAQCzCwAhkwYBALMLACGYBgEAswsAIa0GAQCzCwAhrgYBALMLACEPxgUBAAAAAccFAQAAAAHIBQEAAAAByQUBAAAAAcwFQAAAAAHNBUAAAAABzgVAAAAAAd4FAQAAAAHfBQEAAAAB4AUBAAAAAeIFEAAAAAGCBgAAAIIGApIGIAAAAAGVBgAAAJUGApYGAQAAAAEDAAAAqwEAIE8AAP4VACBQAACJFgAgDAAAAKsBACAJAACaDwAgPAAAzg0AID0AANANACBKAACJFgAgxgUBALMLACHHBQEAswsAIcwFQAC1CwAhzQVAALULACGWBgEAswsAIasGAQCzCwAhrAYBALQLACEKCQAAmg8AIDwAAM4NACA9AADQDQAgxgUBALMLACHHBQEAswsAIcwFQAC1CwAhzQVAALULACGWBgEAswsAIasGAQCzCwAhrAYBALQLACEJxgUBAAAAAccFAQAAAAHIBQEAAAAByQUBAAAAAcsFAQAAAAHMBUAAAAABzQVAAAAAAc4FQAAAAAGSBiAAAAABEREAAJsOACAlAACWDwAgQAAAmQ4AIEEAAJoOACBCAACcDgAgxgUBAAAAAccFAQAAAAHKBQEAAAABywUBAAAAAcwFQAAAAAHNBUAAAAAB8AUAAACnBgKkBgEAAAABpQYBAAAAAagGAAAAqAYCqQYBAAAAAaoGAQAAAAECAAAADwAgTwAAixYAIAsOAAC_EAAgEQAArBAAICEAAK0QACAjAACuEAAgKQAArxAAIMYFAQAAAAHKBQEAAAABzAVAAAAAAc0FQAAAAAGuBgEAAAABtQYAAAC1BgICAAAAMAAgTwAAjRYAIAgLAACFDwAgDAAAhg8AIMYFAQAAAAHMBUAAAAABzQVAAAAAAc4FQAAAAAGfBiAAAAABoQYAAAChBgICAAAA3wYAIE8AAI8WACAMxgUBAAAAAcwFQAAAAAGABhAAAAABggYAAACCBgKDBhAAAAABhAYQAAAAAYUGEAAAAAGGBgEAAAABhwaAAAAAAYgGgAAAAAGJBgEAAAABigYBAAAAAQXGBQEAAAABzAVAAAAAAeoFEAAAAAHsBQAAAOwFAu0FQAAAAAEDAAAADQAgTwAAixYAIFAAAJUWACATAAAADQAgEQAA-g0AICUAAJUPACBAAAD4DQAgQQAA-Q0AIEIAAPsNACBKAACVFgAgxgUBALMLACHHBQEAswsAIcoFAQCzCwAhywUBALMLACHMBUAAtQsAIc0FQAC1CwAh8AUAAPUNpwYipAYBALQLACGlBgEAtAsAIagGAAD2DagGIqkGAQC0CwAhqgYBALQLACEREQAA-g0AICUAAJUPACBAAAD4DQAgQQAA-Q0AIEIAAPsNACDGBQEAswsAIccFAQCzCwAhygUBALMLACHLBQEAswsAIcwFQAC1CwAhzQVAALULACHwBQAA9Q2nBiKkBgEAtAsAIaUGAQC0CwAhqAYAAPYNqAYiqQYBALQLACGqBgEAtAsAIQMAAAAuACBPAACNFgAgUAAAmBYAIA0AAAAuACAOAAC-EAAgEQAA5Q8AICEAAOYPACAjAADnDwAgKQAA6A8AIEoAAJgWACDGBQEAswsAIcoFAQCzCwAhzAVAALULACHNBUAAtQsAIa4GAQCzCwAhtQYAAOMPtQYiCw4AAL4QACARAADlDwAgIQAA5g8AICMAAOcPACApAADoDwAgxgUBALMLACHKBQEAswsAIcwFQAC1CwAhzQVAALULACGuBgEAswsAIbUGAADjD7UGIgMAAAAjACBPAACPFgAgUAAAmxYAIAoAAAAjACALAADvDgAgDAAA8A4AIEoAAJsWACDGBQEAswsAIcwFQAC1CwAhzQVAALULACHOBUAAtgsAIZ8GIADtDgAhoQYAAO4OoQYiCAsAAO8OACAMAADwDgAgxgUBALMLACHMBUAAtQsAIc0FQAC1CwAhzgVAALYLACGfBiAA7Q4AIaEGAADuDqEGIg4IAADhCwAgxgUBAAAAAccFAQAAAAHIBQEAAAABygUBAAAAAcsFAQAAAAHMBUAAAAABzQVAAAAAAc4FQAAAAAHeBQEAAAAB3wUBAAAAAeAFAQAAAAHhBQEAAAAB4gUQAAAAAQIAAACjAQAgTwAAnBYAIAMAAACeAQAgTwAAnBYAIFAAAKAWACAQAAAAngEAIAgAAOALACBKAACgFgAgxgUBALMLACHHBQEAswsAIcgFAQC0CwAhygUBALMLACHLBQEAswsAIcwFQAC1CwAhzQVAALULACHOBUAAtgsAId4FAQCzCwAh3wUBALQLACHgBQEAtAsAIeEFAQC0CwAh4gUQAMILACEOCAAA4AsAIMYFAQCzCwAhxwUBALMLACHIBQEAtAsAIcoFAQCzCwAhywUBALMLACHMBUAAtQsAIc0FQAC1CwAhzgVAALYLACHeBQEAswsAId8FAQC0CwAh4AUBALQLACHhBQEAtAsAIeIFEADCCwAhEQoAAMQMACAhAADGDAAgIgAAxQwAIC0AAMgMACAwAADJDAAgxgUBAAAAAcwFQAAAAAHNBUAAAAABhAYQAAAAAYYGAQAAAAGLBgEAAAABjAYCAAAAAY0GQAAAAAGOBoAAAAABjwYBAAAAAZAGAQAAAAGRBgEAAAABAgAAACsAIE8AAKEWACAKxgUBAAAAAcwFQAAAAAHvBQIAAAAB8AUBAAAAAfEFAQAAAAHyBYAAAAAB8wWAAAAAAfQFAQAAAAH1BUAAAAAB9gVAAAAAAQMAAAApACBPAAChFgAgUAAAphYAIBMAAAApACAKAACkDAAgIQAApgwAICIAAKUMACAtAACoDAAgMAAAqQwAIEoAAKYWACDGBQEAswsAIcwFQAC1CwAhzQVAALULACGEBhAAwgsAIYYGAQC0CwAhiwYBALMLACGMBgIA_QsAIY0GQAC1CwAhjgaAAAAAAY8GAQC0CwAhkAYBALMLACGRBgEAswsAIREKAACkDAAgIQAApgwAICIAAKUMACAtAACoDAAgMAAAqQwAIMYFAQCzCwAhzAVAALULACHNBUAAtQsAIYQGEADCCwAhhgYBALQLACGLBgEAswsAIYwGAgD9CwAhjQZAALULACGOBoAAAAABjwYBALQLACGQBgEAswsAIZEGAQCzCwAhByoAAJMMACDGBQEAAAABzAVAAAAAAc0FQAAAAAHuBQEAAAAB_gUCAAAAAf8FQAAAAAECAAAAgwgAIE8AAKcWACADAAAAjQEAIE8AAKcWACBQAACrFgAgCQAAAI0BACAqAACFDAAgSgAAqxYAIMYFAQCzCwAhzAVAALULACHNBUAAtQsAIe4FAQCzCwAh_gUCAP0LACH_BUAAtgsAIQcqAACFDAAgxgUBALMLACHMBUAAtQsAIc0FQAC1CwAh7gUBALMLACH-BQIA_QsAIf8FQAC2CwAhEQoAAMQMACAhAADGDAAgIgAAxQwAICsAAMcMACAtAADIDAAgxgUBAAAAAcwFQAAAAAHNBUAAAAABhAYQAAAAAYYGAQAAAAGLBgEAAAABjAYCAAAAAY0GQAAAAAGOBoAAAAABjwYBAAAAAZAGAQAAAAGRBgEAAAABAgAAACsAIE8AAKwWACADAAAAKQAgTwAArBYAIFAAALAWACATAAAAKQAgCgAApAwAICEAAKYMACAiAAClDAAgKwAApwwAIC0AAKgMACBKAACwFgAgxgUBALMLACHMBUAAtQsAIc0FQAC1CwAhhAYQAMILACGGBgEAtAsAIYsGAQCzCwAhjAYCAP0LACGNBkAAtQsAIY4GgAAAAAGPBgEAtAsAIZAGAQCzCwAhkQYBALMLACERCgAApAwAICEAAKYMACAiAAClDAAgKwAApwwAIC0AAKgMACDGBQEAswsAIcwFQAC1CwAhzQVAALULACGEBhAAwgsAIYYGAQC0CwAhiwYBALMLACGMBgIA_QsAIY0GQAC1CwAhjgaAAAAAAY8GAQC0CwAhkAYBALMLACGRBgEAswsAIQcqAAD2CwAgxgUBAAAAAcwFQAAAAAHqBRAAAAAB7AUAAADsBQLtBUAAAAAB7gUBAAAAAQIAAACXAQAgTwAAsRYAIAMAAACVAQAgTwAAsRYAIFAAALUWACAJAAAAlQEAICoAAO8LACBKAAC1FgAgxgUBALMLACHMBUAAtQsAIeoFEADCCwAh7AUAAO4L7AUi7QVAALULACHuBQEAswsAIQcqAADvCwAgxgUBALMLACHMBUAAtQsAIeoFEADCCwAh7AUAAO4L7AUi7QVAALULACHuBQEAswsAIQnGBQEAAAABxwUBAAAAAcgFAQAAAAHJBQEAAAABygUBAAAAAcsFAQAAAAHMBUAAAAABzQVAAAAAAc4FQAAAAAECAAAA6wgAIE8AALYWACADAAAAoAEAIE8AALYWACBQAAC6FgAgCwAAAKABACBKAAC6FgAgxgUBALMLACHHBQEAswsAIcgFAQC0CwAhyQUBALQLACHKBQEAswsAIcsFAQCzCwAhzAVAALULACHNBUAAtQsAIc4FQAC2CwAhCcYFAQCzCwAhxwUBALMLACHIBQEAtAsAIckFAQC0CwAhygUBALMLACHLBQEAswsAIcwFQAC1CwAhzQVAALULACHOBUAAtgsAIRIIAACzDQAgCQAA9gwAIMYFAQAAAAHHBQEAAAAByAUBAAAAAckFAQAAAAHMBUAAAAABzQVAAAAAAc4FQAAAAAHeBQEAAAAB3wUBAAAAAeAFAQAAAAHhBQEAAAAB4gUQAAAAAYIGAAAAggYCkgYgAAAAAZUGAAAAlQYClgYBAAAAAQIAAAAbACBPAAC7FgAgEQoAAMQMACAhAADGDAAgIgAAxQwAICsAAMcMACAwAADJDAAgxgUBAAAAAcwFQAAAAAHNBUAAAAABhAYQAAAAAYYGAQAAAAGLBgEAAAABjAYCAAAAAY0GQAAAAAGOBoAAAAABjwYBAAAAAZAGAQAAAAGRBgEAAAABAgAAACsAIE8AAL0WACADAAAAGQAgTwAAuxYAIFAAAMEWACAUAAAAGQAgCAAAsQ0AIAkAAOoMACBKAADBFgAgxgUBALMLACHHBQEAswsAIcgFAQC0CwAhyQUBALQLACHMBUAAtQsAIc0FQAC1CwAhzgVAALYLACHeBQEAswsAId8FAQC0CwAh4AUBALQLACHhBQEAtAsAIeIFEADoDAAhggYAAM8LggYikgYgANkMACGVBgAA5wyVBiKWBgEAtAsAIRIIAACxDQAgCQAA6gwAIMYFAQCzCwAhxwUBALMLACHIBQEAtAsAIckFAQC0CwAhzAVAALULACHNBUAAtQsAIc4FQAC2CwAh3gUBALMLACHfBQEAtAsAIeAFAQC0CwAh4QUBALQLACHiBRAA6AwAIYIGAADPC4IGIpIGIADZDAAhlQYAAOcMlQYilgYBALQLACEDAAAAKQAgTwAAvRYAIFAAAMQWACATAAAAKQAgCgAApAwAICEAAKYMACAiAAClDAAgKwAApwwAIDAAAKkMACBKAADEFgAgxgUBALMLACHMBUAAtQsAIc0FQAC1CwAhhAYQAMILACGGBgEAtAsAIYsGAQCzCwAhjAYCAP0LACGNBkAAtQsAIY4GgAAAAAGPBgEAtAsAIZAGAQCzCwAhkQYBALMLACERCgAApAwAICEAAKYMACAiAAClDAAgKwAApwwAIDAAAKkMACDGBQEAswsAIcwFQAC1CwAhzQVAALULACGEBhAAwgsAIYYGAQC0CwAhiwYBALMLACGMBgIA_QsAIY0GQAC1CwAhjgaAAAAAAY8GAQC0CwAhkAYBALMLACGRBgEAswsAIQzGBQEAAAABzAVAAAAAAe4FAQAAAAGABhAAAAABggYAAACCBgKDBhAAAAABhAYQAAAAAYUGEAAAAAGGBgEAAAABhwaAAAAAAYgGgAAAAAGJBgEAAAABDMYFAQAAAAHHBQEAAAAByAUBAAAAAcoFAQAAAAHLBQEAAAABzAVAAAAAAc0FQAAAAAHOBUAAAAAB3gUBAAAAAd8FAQAAAAHgBQEAAAAB4gUQAAAAAQIFAAIRAAQCAwUBBAADAQMGAAQGBwEi2AETQwkFRNcBGAIRAARBAAYDAwwFBABCPBAHBwQAQQ3SAQ4RABMlAAhAyAE9QdABBkLRASkFBAA8CQAJN8IBCzzBAQc9wwEqCQQAOw4AFBiwARw1tQEMNgAKOLMBCDm0ASs6uAEQO7sBEQMEADoHFAk3GAsEBAA5JawBCDUcDDaqAQoEBAA4CB0LCR4JMyINAyoADjGdAQw0nwE0BwQAMwokDyEAByIAEyuOAS4tlAENMJgBMQQEABILJhAMKBENLA4CCQAJCgAPAgkACQoADwENLQAHBAAtDYsBDg4AFBEABCF4ByN6KCmKASAGAzETBAAnBzIJCzgWDHQZDzYVAQ4AFAIOABQQABcHAzwYBAAmEj8WE0MZHkcaH2kiIG0eAhAAFxEABAIOABQQABcDBAAlEAAXHUsbAhQAGhdNHAUEACQJAAkVABsWUR0cWCACFAAeF1QcAwQAHxAAFxZSHQEWUwADEVoTGFkcG1whAhReIhpjIAMEACMQABcZYSEBGWIAAhZkABxlAAEdZgAGA24AEm8AE3AAHnEAH3IAIHMAAwN1AAd2AA93AAUEACwiABMkfikmggEqKIYBKwIhAAcjACgCIwAoJQAIAiMAKCcACQMkhwEAJogBACiJAQABDYwBAAMEADAqAA4skgEvASsALgEskwEAAioADi-aATIBLgAxAi2bAQAwnAEAAwQANwihATUzpgENAgQANjKkATQBMqUBAAEzpwEAATOoAQABNa0BAAIHrgEAN68BAAU1vgEAOLwBADm9AQA6vwEAO8ABAAM3xQEAPMQBAD3GAQADBABAPgA-P80BBwIEAD8PywE9AQ_MAQABP84BAAIN1AEAQtMBAAID1QEAPNYBAAADBABFVQBGVgBHAAAAAwQARVUARlYARwMEAEpVAEtWAEwAAAADBABKVQBLVgBMAwQAT1UAUFYAUQAAAAMEAE9VAFBWAFEDBABUVQBVVgBWAAAAAwQAVFUAVVYAVgMEAFlVAFpWAFsAAAADBABZVQBaVgBbBQQAXlUAYVYAYp0BAF-eAQBgAAAAAAAFBABeVQBhVgBinQEAX54BAGAFBABlVQBoVgBpnQEAZp4BAGcAAAAAAAUEAGVVAGhWAGmdAQBmngEAZwMEAGxVAG1WAG4AAAADBABsVQBtVgBuBQQAcVUAdFYAdZ0BAHKeAQBzAAAAAAAFBABxVQB0VgB1nQEAcp4BAHMDBAB4VQB5VgB6AAAAAwQAeFUAeVYAegUEAH1VAIABVgCBAZ0BAH6eAQB_AAAAAAAFBAB9VQCAAVYAgQGdAQB-ngEAfwMEAIQBVQCFAVYAhgEAAAADBACEAVUAhQFWAIYBAwQAiQFVAIoBVgCLAQAAAAMEAIkBVQCKAVYAiwEDBACOAVUAjwFWAJABAAAAAwQAjgFVAI8BVgCQAQMEAJMBVQCUAVYAlQEAAAADBACTAVUAlAFWAJUBAwQAmAFVAJkBVgCaAQAAAAMEAJgBVQCZAVYAmgEDBACdAVUAngFWAJ8BAAAAAwQAnQFVAJ4BVgCfAQMEAKIBVQCjAVYApAEAAAADBACiAVUAowFWAKQBAwQApwFVAKgBVgCpAQAAAAMEAKcBVQCoAVYAqQEDBACsAVUArQFWAK4BAAAAAwQArAFVAK0BVgCuAQMEALEBVQCyAVYAswEAAAADBACxAVUAsgFWALMBAwQAtgFVALcBVgC4AQAAAAMEALYBVQC3AVYAuAEAAwQAvAFVAL0BVgC-AQAAAAMEALwBVQC9AVYAvgEDBADBAVUAwgFWAMMBAAAAAwQAwQFVAMIBVgDDAQMEAMYBVQDHAVYAyAEAAAADBADGAVUAxwFWAMgBAwQAywFVAMwBVgDNAQAAAAMEAMsBVQDMAVYAzQEDBADQAVUA0QFWANIBAAAAAwQA0AFVANEBVgDSAQMEANUBVQDWAVYA1wEAAAADBADVAVUA1gFWANcBAwQA2gFVANsBVgDcAQAAAAMEANoBVQDbAVYA3AEDBADfAVUA4AFWAOEBAAAAAwQA3wFVAOABVgDhAQAFBADlAVUA6AFWAOkBnQEA5gGeAQDnAQAAAAAABQQA5QFVAOgBVgDpAZ0BAOYBngEA5wEDBADsAVUA7QFWAO4BAAAAAwQA7AFVAO0BVgDuAQMEAPEBVQDyAVYA8wEAAAADBADxAVUA8gFWAPMBAwQA9gFVAPcBVgD4AQAAAAMEAPYBVQD3AVYA-AEFBAD7AVUA_gFWAP8BnQEA_AGeAQD9AQAAAAAABQQA-wFVAP4BVgD_AZ0BAPwBngEA_QEDBACCAlUAgwJWAIQCAAAAAwQAggJVAIMCVgCEAgMEAIcCVQCIAlYAiQIAAAADBACHAlUAiAJWAIkCBQQAjAJVAI8CVgCQAp0BAI0CngEAjgIAAAAAAAUEAIwCVQCPAlYAkAKdAQCNAp4BAI4CBQQAkwJVAJYCVgCXAp0BAJQCngEAlQIAAAAAAAUEAJMCVQCWAlYAlwKdAQCUAp4BAJUCBQQAmgJVAJ0CVgCeAp0BAJsCngEAnAIAAAAAAAUEAJoCVQCdAlYAngKdAQCbAp4BAJwCBQQAoQJVAKQCVgClAp0BAKICngEAowIAAAAAAAUEAKECVQCkAlYApQKdAQCiAp4BAKMCBQQAqAJVAKsCVgCsAp0BAKkCngEAqgIAAAAAAAUEAKgCVQCrAlYArAKdAQCpAp4BAKoCAwQArwJVALACVgCxAgAAAAMEAK8CVQCwAlYAsQIFBAC0AlUAtwJWALgCnQEAtQKeAQC2AgAAAAAABQQAtAJVALcCVgC4Ap0BALUCngEAtgIDBAC7AlUAvAJWAL0CAAAAAwQAuwJVALwCVgC9AkUCAUbZAQFH2gEBSNsBAUncAQFL3gEBTOABQ03iAQFO5AFDUeUBAVLmAQFT5wFDV-oBRFjrAUhZ7QECWu4BAlvxAQJc8gECXfMBAl71AQJf9wFDYPkBAmH7AUNi_AECY_0BAmT-AUNlgQJJZoICTWeEAgRohQIEaYgCBGqJAgRrigIEbIwCBG2OAkNukAIEb5ICQ3CTAgRxlAIEcpUCQ3OYAk50mQJSdZsCPnacAj53nwI-eKACPnmhAj56owI-e6UCQ3ynAj59qQJDfqoCPn-rAj6AAawCQ4EBrwJTggGwAleDAbECPYQBsgI9hQGzAj2GAbQCPYcBtQI9iAG3Aj2JAbkCQ4oBuwI9iwG9AkOMAb4CPY0BvwI9jgHAAkOPAcMCWJABxAJckQHFAhqSAcYCGpMBxwIalAHIAhqVAckCGpYBywIalwHNAkOYAc8CGpkB0QJDmgHSAhqbAdMCGpwB1AJDnwHXAl2gAdgCY6EB2QIbogHaAhujAdsCG6QB3AIbpQHdAhumAd8CG6cB4QJDqAHjAhupAeUCQ6oB5gIbqwHnAhusAegCQ60B6wJkrgHsAmqvAe4CHLAB7wIcsQHxAhyyAfICHLMB8wIctAH1Ahy1AfcCQ7YB-QIctwH7AkO4AfwCHLkB_QIcugH-AkO7AYEDa7wBggNvvQGDAx6-AYQDHr8BhQMewAGGAx7BAYcDHsIBiQMewwGLA0PEAY0DHsUBjwNDxgGQAx7HAZEDHsgBkgNDyQGVA3DKAZYDdssBlwMdzAGYAx3NAZkDHc4BmgMdzwGbAx3QAZ0DHdEBnwND0gGhAx3TAaMDQ9QBpAMd1QGlAx3WAaYDQ9cBqQN32AGqA3vZAasDItoBrAMi2wGtAyLcAa4DIt0BrwMi3gGxAyLfAbMDQ-ABtQMi4QG3A0PiAbgDIuMBuQMi5AG6A0PlAb0DfOYBvgOCAecBvwMh6AHAAyHpAcEDIeoBwgMh6wHDAyHsAcUDIe0BxwND7gHJAyHvAcsDQ_ABzAMh8QHNAyHyAc4DQ_MB0QODAfQB0gOHAfUB0wMg9gHUAyD3AdUDIPgB1gMg-QHXAyD6AdkDIPsB2wND_AHdAyD9Ad8DQ_4B4AMg_wHhAyCAAuIDQ4EC5QOIAYIC5gOMAYMC5wMYhALoAxiFAukDGIYC6gMYhwLrAxiIAu0DGIkC7wNDigLxAxiLAvMDQ4wC9AMYjQL1AxiOAvYDQ48C-QONAZAC-gORAZEC_AMXkgL9AxeTAoAEF5QCgQQXlQKCBBeWAoQEF5cChgRDmAKIBBeZAooEQ5oCiwQXmwKMBBecAo0EQ50CkASSAZ4CkQSWAZ8CkwQooAKUBCihApYEKKIClwQoowKYBCikApoEKKUCnARDpgKeBCinAqAEQ6gCoQQoqQKiBCiqAqMEQ6sCpgSXAawCpwSbAa0CqAQprgKpBCmvAqoEKbACqwQpsQKsBCmyAq4EKbMCsARDtAKyBCm1ArQEQ7YCtQQptwK2BCm4ArcEQ7kCugScAboCuwSgAbsCvAQqvAK9BCq9Ar4EKr4CvwQqvwLABCrAAsIEKsECxARDwgLGBCrDAsgEQ8QCyQQqxQLKBCrGAssEQ8cCzgShAcgCzwSlAckC0AQrygLRBCvLAtIEK8wC0wQrzQLUBCvOAtYEK88C2ARD0ALaBCvRAtwEQ9IC3QQr0wLeBCvUAt8EQ9UC4gSmAdYC4wSqAdcC5AQF2ALlBAXZAuYEBdoC5wQF2wLoBAXcAuoEBd0C7ARD3gLuBAXfAvAEQ-AC8QQF4QLyBAXiAvMEQ-MC9gSrAeQC9wSvAeUC-QQG5gL6BAbnAvwEBugC_QQG6QL-BAbqAoAFBusCggVD7AKEBQbtAoYFQ-4ChwUG7wKIBQbwAokFQ_ECjAWwAfICjQW0AfMCjgUV9AKPBRX1ApAFFfYCkQUV9wKSBRX4ApQFFfkClgVD-gKYBRX7ApoFQ_wCmwUV_QKcBRX-Ap0FQ_8CoAW1AYADoQW5AYEDowW6AYIDpAW6AYMDpwW6AYQDqAW6AYUDqQW6AYYDqwW6AYcDrQVDiAOvBboBiQOxBUOKA7IFugGLA7MFugGMA7QFQ40DtwW7AY4DuAW_AY8DuQUTkAO6BRORA7sFE5IDvAUTkwO9BROUA78FE5UDwQVDlgPDBROXA8UFQ5gDxgUTmQPHBROaA8gFQ5sDywXAAZwDzAXEAZ0DzgUUngPPBRSfA9IFFKAD0wUUoQPUBRSiA9YFFKMD2AVDpAPaBRSlA9wFQ6YD3QUUpwPeBRSoA98FQ6kD4gXFAaoD4wXJAasD5AUWrAPlBRatA-YFFq4D5wUWrwPoBRawA-oFFrED7AVDsgPuBRazA_AFQ7QD8QUWtQPyBRa2A_MFQ7cD9gXKAbgD9wXOAbkD-AUZugP5BRm7A_oFGbwD-wUZvQP8BRm-A_4FGb8DgAZDwAOCBhnBA4QGQ8IDhQYZwwOGBhnEA4cGQ8UDigbPAcYDiwbTAccDjAYJyAONBgnJA44GCcoDjwYJywOQBgnMA5IGCc0DlAZDzgOWBgnPA5gGQ9ADmQYJ0QOaBgnSA5sGQ9MDngbUAdQDnwbYAdUDoAYI1gOhBgjXA6IGCNgDowYI2QOkBgjaA6YGCNsDqAZD3AOqBgjdA6wGQ94DrQYI3wOuBgjgA68GQ-EDsgbZAeIDswbdAeMDtAYH5AO1BgflA7YGB-YDtwYH5wO4BgfoA7oGB-kDvAZD6gO-BgfrA8AGQ-wDwQYH7QPCBgfuA8MGQ-8DxgbeAfADxwbiAfEDyQbjAfIDygbjAfMDzQbjAfQDzgbjAfUDzwbjAfYD0QbjAfcD0wZD-APVBuMB-QPXBkP6A9gG4wH7A9kG4wH8A9oGQ_0D3QbkAf4D3gbqAf8D4AYPgAThBg-BBOMGD4IE5AYPgwTlBg-EBOcGD4UE6QZDhgTrBg-HBO0GQ4gE7gYPiQTvBg-KBPAGQ4sE8wbrAYwE9AbvAY0E9QYQjgT2BhCPBPcGEJAE-AYQkQT5BhCSBPsGEJME_QZDlAT_BhCVBIEHQ5YEggcQlwSDBxCYBIQHQ5kEhwfwAZoEiAf0AZsEiQcRnASKBxGdBIsHEZ4EjAcRnwSNBxGgBI8HEaEEkQdDogSTBxGjBJUHQ6QElgcRpQSXBxGmBJgHQ6cEmwf1AagEnAf5AakEnQcMqgSeBwyrBJ8HDKwEoAcMrQShBwyuBKMHDK8EpQdDsASnBwyxBKkHQ7IEqgcMswSrBwy0BKwHQ7UErwf6AbYEsAeAArcEsQcLuASyBwu5BLMHC7oEtAcLuwS1Bwu8BLcHC70EuQdDvgS7Bwu_BL0HQ8AEvgcLwQS_BwvCBMAHQ8MEwweBAsQExAeFAsUExgcKxgTHBwrHBMkHCsgEygcKyQTLBwrKBM0HCssEzwdDzATRBwrNBNMHQ84E1AcKzwTVBwrQBNYHQ9EE2QeGAtIE2geKAtME2wcO1ATcBw7VBN0HDtYE3gcO1wTfBw7YBOEHDtkE4wdD2gTlBw7bBOcHQ9wE6AcO3QTpBw7eBOoHQ98E7QeLAuAE7geRAuEE7wcN4gTwBw3jBPEHDeQE8gcN5QTzBw3mBPUHDecE9wdD6AT5Bw3pBPsHQ-oE_AcN6wT9Bw3sBP4HQ-0EgQiSAu4EggiYAu8EhAgu8ASFCC7xBIcILvIEiAgu8wSJCC70BIsILvUEjQhD9gSPCC73BJEIQ_gEkggu-QSTCC76BJQIQ_sElwiZAvwEmAifAv0EmQgv_gSaCC__BJsIL4AFnAgvgQWdCC-CBZ8IL4MFoQhDhAWjCC-FBaUIQ4YFpggvhwWnCC-IBagIQ4kFqwigAooFrAimAosFrQgxjAWuCDGNBa8IMY4FsAgxjwWxCDGQBbMIMZEFtQhDkgW3CDGTBbkIQ5QFuggxlQW7CDGWBbwIQ5cFvwinApgFwAitApkFwggymgXDCDKbBcUIMpwFxggynQXHCDKeBckIMp8FywhDoAXNCDKhBc8IQ6IF0AgyowXRCDKkBdIIQ6UF1QiuAqYF1giyAqcF1wg0qAXYCDSpBdkINKoF2gg0qwXbCDSsBd0INK0F3whDrgXhCDSvBeMIQ7AF5Ag0sQXlCDSyBeYIQ7MF6QizArQF6gi5ArUF7Ag1tgXtCDW3Be8INbgF8Ag1uQXxCDW6BfMINbsF9QhDvAX3CDW9BfkIQ74F-gg1vwX7CDXABfwIQ8EF_wi6AsIFgAm-Ag" + strings: JSON.parse("[\"where\",\"orderBy\",\"cursor\",\"accounts\",\"_count\",\"admin\",\"admin_account\",\"business_activities\",\"goods\",\"sku\",\"measure_unit\",\"category\",\"business_activity\",\"customer\",\"individual\",\"legal\",\"sales_invoices\",\"consumer\",\"devices\",\"partner\",\"account\",\"consumers_individual\",\"consumers_legal\",\"charge_transaction\",\"license\",\"license_renews\",\"activation\",\"license_activation\",\"credits\",\"allocation\",\"credit\",\"account_allocations\",\"licenses\",\"license_charge_transactions\",\"account_quota_charge_transactions\",\"license_renew_charge_transactions\",\"pos\",\"consumer_account\",\"permission\",\"pos_permissions\",\"complex\",\"complex_permissions\",\"business\",\"business_permissions\",\"account_allocation\",\"invoice\",\"fiscal\",\"attempts\",\"items\",\"payment\",\"terminal_info\",\"payments\",\"good\",\"services\",\"sales_invoice_items\",\"service\",\"guild\",\"good_categories\",\"complexes\",\"permission_businesses\",\"customer_individuals\",\"customer_legals\",\"pos_list\",\"permission_complexes\",\"brand\",\"poses\",\"device\",\"provider\",\"permission_pos\",\"provider_account\",\"partner_account\",\"AdminAccount.findUnique\",\"AdminAccount.findUniqueOrThrow\",\"AdminAccount.findFirst\",\"AdminAccount.findFirstOrThrow\",\"AdminAccount.findMany\",\"data\",\"AdminAccount.createOne\",\"AdminAccount.createMany\",\"AdminAccount.updateOne\",\"AdminAccount.updateMany\",\"create\",\"update\",\"AdminAccount.upsertOne\",\"AdminAccount.deleteOne\",\"AdminAccount.deleteMany\",\"having\",\"_min\",\"_max\",\"AdminAccount.groupBy\",\"AdminAccount.aggregate\",\"Admin.findUnique\",\"Admin.findUniqueOrThrow\",\"Admin.findFirst\",\"Admin.findFirstOrThrow\",\"Admin.findMany\",\"Admin.createOne\",\"Admin.createMany\",\"Admin.updateOne\",\"Admin.updateMany\",\"Admin.upsertOne\",\"Admin.deleteOne\",\"Admin.deleteMany\",\"Admin.groupBy\",\"Admin.aggregate\",\"Account.findUnique\",\"Account.findUniqueOrThrow\",\"Account.findFirst\",\"Account.findFirstOrThrow\",\"Account.findMany\",\"Account.createOne\",\"Account.createMany\",\"Account.updateOne\",\"Account.updateMany\",\"Account.upsertOne\",\"Account.deleteOne\",\"Account.deleteMany\",\"Account.groupBy\",\"Account.aggregate\",\"DeviceBrand.findUnique\",\"DeviceBrand.findUniqueOrThrow\",\"DeviceBrand.findFirst\",\"DeviceBrand.findFirstOrThrow\",\"DeviceBrand.findMany\",\"DeviceBrand.createOne\",\"DeviceBrand.createMany\",\"DeviceBrand.updateOne\",\"DeviceBrand.updateMany\",\"DeviceBrand.upsertOne\",\"DeviceBrand.deleteOne\",\"DeviceBrand.deleteMany\",\"DeviceBrand.groupBy\",\"DeviceBrand.aggregate\",\"Device.findUnique\",\"Device.findUniqueOrThrow\",\"Device.findFirst\",\"Device.findFirstOrThrow\",\"Device.findMany\",\"Device.createOne\",\"Device.createMany\",\"Device.updateOne\",\"Device.updateMany\",\"Device.upsertOne\",\"Device.deleteOne\",\"Device.deleteMany\",\"Device.groupBy\",\"Device.aggregate\",\"LicenseChargeTransaction.findUnique\",\"LicenseChargeTransaction.findUniqueOrThrow\",\"LicenseChargeTransaction.findFirst\",\"LicenseChargeTransaction.findFirstOrThrow\",\"LicenseChargeTransaction.findMany\",\"LicenseChargeTransaction.createOne\",\"LicenseChargeTransaction.createMany\",\"LicenseChargeTransaction.updateOne\",\"LicenseChargeTransaction.updateMany\",\"LicenseChargeTransaction.upsertOne\",\"LicenseChargeTransaction.deleteOne\",\"LicenseChargeTransaction.deleteMany\",\"_avg\",\"_sum\",\"LicenseChargeTransaction.groupBy\",\"LicenseChargeTransaction.aggregate\",\"License.findUnique\",\"License.findUniqueOrThrow\",\"License.findFirst\",\"License.findFirstOrThrow\",\"License.findMany\",\"License.createOne\",\"License.createMany\",\"License.updateOne\",\"License.updateMany\",\"License.upsertOne\",\"License.deleteOne\",\"License.deleteMany\",\"License.groupBy\",\"License.aggregate\",\"LicenseActivation.findUnique\",\"LicenseActivation.findUniqueOrThrow\",\"LicenseActivation.findFirst\",\"LicenseActivation.findFirstOrThrow\",\"LicenseActivation.findMany\",\"LicenseActivation.createOne\",\"LicenseActivation.createMany\",\"LicenseActivation.updateOne\",\"LicenseActivation.updateMany\",\"LicenseActivation.upsertOne\",\"LicenseActivation.deleteOne\",\"LicenseActivation.deleteMany\",\"LicenseActivation.groupBy\",\"LicenseActivation.aggregate\",\"LicenseRenewChargeTransaction.findUnique\",\"LicenseRenewChargeTransaction.findUniqueOrThrow\",\"LicenseRenewChargeTransaction.findFirst\",\"LicenseRenewChargeTransaction.findFirstOrThrow\",\"LicenseRenewChargeTransaction.findMany\",\"LicenseRenewChargeTransaction.createOne\",\"LicenseRenewChargeTransaction.createMany\",\"LicenseRenewChargeTransaction.updateOne\",\"LicenseRenewChargeTransaction.updateMany\",\"LicenseRenewChargeTransaction.upsertOne\",\"LicenseRenewChargeTransaction.deleteOne\",\"LicenseRenewChargeTransaction.deleteMany\",\"LicenseRenewChargeTransaction.groupBy\",\"LicenseRenewChargeTransaction.aggregate\",\"LicenseRenew.findUnique\",\"LicenseRenew.findUniqueOrThrow\",\"LicenseRenew.findFirst\",\"LicenseRenew.findFirstOrThrow\",\"LicenseRenew.findMany\",\"LicenseRenew.createOne\",\"LicenseRenew.createMany\",\"LicenseRenew.updateOne\",\"LicenseRenew.updateMany\",\"LicenseRenew.upsertOne\",\"LicenseRenew.deleteOne\",\"LicenseRenew.deleteMany\",\"LicenseRenew.groupBy\",\"LicenseRenew.aggregate\",\"PartnerAccountQuotaChargeTransaction.findUnique\",\"PartnerAccountQuotaChargeTransaction.findUniqueOrThrow\",\"PartnerAccountQuotaChargeTransaction.findFirst\",\"PartnerAccountQuotaChargeTransaction.findFirstOrThrow\",\"PartnerAccountQuotaChargeTransaction.findMany\",\"PartnerAccountQuotaChargeTransaction.createOne\",\"PartnerAccountQuotaChargeTransaction.createMany\",\"PartnerAccountQuotaChargeTransaction.updateOne\",\"PartnerAccountQuotaChargeTransaction.updateMany\",\"PartnerAccountQuotaChargeTransaction.upsertOne\",\"PartnerAccountQuotaChargeTransaction.deleteOne\",\"PartnerAccountQuotaChargeTransaction.deleteMany\",\"PartnerAccountQuotaChargeTransaction.groupBy\",\"PartnerAccountQuotaChargeTransaction.aggregate\",\"PartnerAccountQuotaCredit.findUnique\",\"PartnerAccountQuotaCredit.findUniqueOrThrow\",\"PartnerAccountQuotaCredit.findFirst\",\"PartnerAccountQuotaCredit.findFirstOrThrow\",\"PartnerAccountQuotaCredit.findMany\",\"PartnerAccountQuotaCredit.createOne\",\"PartnerAccountQuotaCredit.createMany\",\"PartnerAccountQuotaCredit.updateOne\",\"PartnerAccountQuotaCredit.updateMany\",\"PartnerAccountQuotaCredit.upsertOne\",\"PartnerAccountQuotaCredit.deleteOne\",\"PartnerAccountQuotaCredit.deleteMany\",\"PartnerAccountQuotaCredit.groupBy\",\"PartnerAccountQuotaCredit.aggregate\",\"LicenseAccountAllocation.findUnique\",\"LicenseAccountAllocation.findUniqueOrThrow\",\"LicenseAccountAllocation.findFirst\",\"LicenseAccountAllocation.findFirstOrThrow\",\"LicenseAccountAllocation.findMany\",\"LicenseAccountAllocation.createOne\",\"LicenseAccountAllocation.createMany\",\"LicenseAccountAllocation.updateOne\",\"LicenseAccountAllocation.updateMany\",\"LicenseAccountAllocation.upsertOne\",\"LicenseAccountAllocation.deleteOne\",\"LicenseAccountAllocation.deleteMany\",\"LicenseAccountAllocation.groupBy\",\"LicenseAccountAllocation.aggregate\",\"PartnerAccount.findUnique\",\"PartnerAccount.findUniqueOrThrow\",\"PartnerAccount.findFirst\",\"PartnerAccount.findFirstOrThrow\",\"PartnerAccount.findMany\",\"PartnerAccount.createOne\",\"PartnerAccount.createMany\",\"PartnerAccount.updateOne\",\"PartnerAccount.updateMany\",\"PartnerAccount.upsertOne\",\"PartnerAccount.deleteOne\",\"PartnerAccount.deleteMany\",\"PartnerAccount.groupBy\",\"PartnerAccount.aggregate\",\"Partner.findUnique\",\"Partner.findUniqueOrThrow\",\"Partner.findFirst\",\"Partner.findFirstOrThrow\",\"Partner.findMany\",\"Partner.createOne\",\"Partner.createMany\",\"Partner.updateOne\",\"Partner.updateMany\",\"Partner.upsertOne\",\"Partner.deleteOne\",\"Partner.deleteMany\",\"Partner.groupBy\",\"Partner.aggregate\",\"PermissionConsumer.findUnique\",\"PermissionConsumer.findUniqueOrThrow\",\"PermissionConsumer.findFirst\",\"PermissionConsumer.findFirstOrThrow\",\"PermissionConsumer.findMany\",\"PermissionConsumer.createOne\",\"PermissionConsumer.createMany\",\"PermissionConsumer.updateOne\",\"PermissionConsumer.updateMany\",\"PermissionConsumer.upsertOne\",\"PermissionConsumer.deleteOne\",\"PermissionConsumer.deleteMany\",\"PermissionConsumer.groupBy\",\"PermissionConsumer.aggregate\",\"PermissionPos.findUnique\",\"PermissionPos.findUniqueOrThrow\",\"PermissionPos.findFirst\",\"PermissionPos.findFirstOrThrow\",\"PermissionPos.findMany\",\"PermissionPos.createOne\",\"PermissionPos.createMany\",\"PermissionPos.updateOne\",\"PermissionPos.updateMany\",\"PermissionPos.upsertOne\",\"PermissionPos.deleteOne\",\"PermissionPos.deleteMany\",\"PermissionPos.groupBy\",\"PermissionPos.aggregate\",\"PermissionComplex.findUnique\",\"PermissionComplex.findUniqueOrThrow\",\"PermissionComplex.findFirst\",\"PermissionComplex.findFirstOrThrow\",\"PermissionComplex.findMany\",\"PermissionComplex.createOne\",\"PermissionComplex.createMany\",\"PermissionComplex.updateOne\",\"PermissionComplex.updateMany\",\"PermissionComplex.upsertOne\",\"PermissionComplex.deleteOne\",\"PermissionComplex.deleteMany\",\"PermissionComplex.groupBy\",\"PermissionComplex.aggregate\",\"PermissionBusiness.findUnique\",\"PermissionBusiness.findUniqueOrThrow\",\"PermissionBusiness.findFirst\",\"PermissionBusiness.findFirstOrThrow\",\"PermissionBusiness.findMany\",\"PermissionBusiness.createOne\",\"PermissionBusiness.createMany\",\"PermissionBusiness.updateOne\",\"PermissionBusiness.updateMany\",\"PermissionBusiness.upsertOne\",\"PermissionBusiness.deleteOne\",\"PermissionBusiness.deleteMany\",\"PermissionBusiness.groupBy\",\"PermissionBusiness.aggregate\",\"ProviderAccount.findUnique\",\"ProviderAccount.findUniqueOrThrow\",\"ProviderAccount.findFirst\",\"ProviderAccount.findFirstOrThrow\",\"ProviderAccount.findMany\",\"ProviderAccount.createOne\",\"ProviderAccount.createMany\",\"ProviderAccount.updateOne\",\"ProviderAccount.updateMany\",\"ProviderAccount.upsertOne\",\"ProviderAccount.deleteOne\",\"ProviderAccount.deleteMany\",\"ProviderAccount.groupBy\",\"ProviderAccount.aggregate\",\"Provider.findUnique\",\"Provider.findUniqueOrThrow\",\"Provider.findFirst\",\"Provider.findFirstOrThrow\",\"Provider.findMany\",\"Provider.createOne\",\"Provider.createMany\",\"Provider.updateOne\",\"Provider.updateMany\",\"Provider.upsertOne\",\"Provider.deleteOne\",\"Provider.deleteMany\",\"Provider.groupBy\",\"Provider.aggregate\",\"ConsumerDevices.findUnique\",\"ConsumerDevices.findUniqueOrThrow\",\"ConsumerDevices.findFirst\",\"ConsumerDevices.findFirstOrThrow\",\"ConsumerDevices.findMany\",\"ConsumerDevices.createOne\",\"ConsumerDevices.createMany\",\"ConsumerDevices.updateOne\",\"ConsumerDevices.updateMany\",\"ConsumerDevices.upsertOne\",\"ConsumerDevices.deleteOne\",\"ConsumerDevices.deleteMany\",\"ConsumerDevices.groupBy\",\"ConsumerDevices.aggregate\",\"ApplicationReleasedInfo.findUnique\",\"ApplicationReleasedInfo.findUniqueOrThrow\",\"ApplicationReleasedInfo.findFirst\",\"ApplicationReleasedInfo.findFirstOrThrow\",\"ApplicationReleasedInfo.findMany\",\"ApplicationReleasedInfo.createOne\",\"ApplicationReleasedInfo.createMany\",\"ApplicationReleasedInfo.updateOne\",\"ApplicationReleasedInfo.updateMany\",\"ApplicationReleasedInfo.upsertOne\",\"ApplicationReleasedInfo.deleteOne\",\"ApplicationReleasedInfo.deleteMany\",\"ApplicationReleasedInfo.groupBy\",\"ApplicationReleasedInfo.aggregate\",\"ConsumerAccount.findUnique\",\"ConsumerAccount.findUniqueOrThrow\",\"ConsumerAccount.findFirst\",\"ConsumerAccount.findFirstOrThrow\",\"ConsumerAccount.findMany\",\"ConsumerAccount.createOne\",\"ConsumerAccount.createMany\",\"ConsumerAccount.updateOne\",\"ConsumerAccount.updateMany\",\"ConsumerAccount.upsertOne\",\"ConsumerAccount.deleteOne\",\"ConsumerAccount.deleteMany\",\"ConsumerAccount.groupBy\",\"ConsumerAccount.aggregate\",\"Consumer.findUnique\",\"Consumer.findUniqueOrThrow\",\"Consumer.findFirst\",\"Consumer.findFirstOrThrow\",\"Consumer.findMany\",\"Consumer.createOne\",\"Consumer.createMany\",\"Consumer.updateOne\",\"Consumer.updateMany\",\"Consumer.upsertOne\",\"Consumer.deleteOne\",\"Consumer.deleteMany\",\"Consumer.groupBy\",\"Consumer.aggregate\",\"ConsumerIndividual.findUnique\",\"ConsumerIndividual.findUniqueOrThrow\",\"ConsumerIndividual.findFirst\",\"ConsumerIndividual.findFirstOrThrow\",\"ConsumerIndividual.findMany\",\"ConsumerIndividual.createOne\",\"ConsumerIndividual.createMany\",\"ConsumerIndividual.updateOne\",\"ConsumerIndividual.updateMany\",\"ConsumerIndividual.upsertOne\",\"ConsumerIndividual.deleteOne\",\"ConsumerIndividual.deleteMany\",\"ConsumerIndividual.groupBy\",\"ConsumerIndividual.aggregate\",\"ConsumerLegal.findUnique\",\"ConsumerLegal.findUniqueOrThrow\",\"ConsumerLegal.findFirst\",\"ConsumerLegal.findFirstOrThrow\",\"ConsumerLegal.findMany\",\"ConsumerLegal.createOne\",\"ConsumerLegal.createMany\",\"ConsumerLegal.updateOne\",\"ConsumerLegal.updateMany\",\"ConsumerLegal.upsertOne\",\"ConsumerLegal.deleteOne\",\"ConsumerLegal.deleteMany\",\"ConsumerLegal.groupBy\",\"ConsumerLegal.aggregate\",\"BusinessActivity.findUnique\",\"BusinessActivity.findUniqueOrThrow\",\"BusinessActivity.findFirst\",\"BusinessActivity.findFirstOrThrow\",\"BusinessActivity.findMany\",\"BusinessActivity.createOne\",\"BusinessActivity.createMany\",\"BusinessActivity.updateOne\",\"BusinessActivity.updateMany\",\"BusinessActivity.upsertOne\",\"BusinessActivity.deleteOne\",\"BusinessActivity.deleteMany\",\"BusinessActivity.groupBy\",\"BusinessActivity.aggregate\",\"Complex.findUnique\",\"Complex.findUniqueOrThrow\",\"Complex.findFirst\",\"Complex.findFirstOrThrow\",\"Complex.findMany\",\"Complex.createOne\",\"Complex.createMany\",\"Complex.updateOne\",\"Complex.updateMany\",\"Complex.upsertOne\",\"Complex.deleteOne\",\"Complex.deleteMany\",\"Complex.groupBy\",\"Complex.aggregate\",\"Pos.findUnique\",\"Pos.findUniqueOrThrow\",\"Pos.findFirst\",\"Pos.findFirstOrThrow\",\"Pos.findMany\",\"Pos.createOne\",\"Pos.createMany\",\"Pos.updateOne\",\"Pos.updateMany\",\"Pos.upsertOne\",\"Pos.deleteOne\",\"Pos.deleteMany\",\"Pos.groupBy\",\"Pos.aggregate\",\"Good.findUnique\",\"Good.findUniqueOrThrow\",\"Good.findFirst\",\"Good.findFirstOrThrow\",\"Good.findMany\",\"Good.createOne\",\"Good.createMany\",\"Good.updateOne\",\"Good.updateMany\",\"Good.upsertOne\",\"Good.deleteOne\",\"Good.deleteMany\",\"Good.groupBy\",\"Good.aggregate\",\"GoodCategory.findUnique\",\"GoodCategory.findUniqueOrThrow\",\"GoodCategory.findFirst\",\"GoodCategory.findFirstOrThrow\",\"GoodCategory.findMany\",\"GoodCategory.createOne\",\"GoodCategory.createMany\",\"GoodCategory.updateOne\",\"GoodCategory.updateMany\",\"GoodCategory.upsertOne\",\"GoodCategory.deleteOne\",\"GoodCategory.deleteMany\",\"GoodCategory.groupBy\",\"GoodCategory.aggregate\",\"MeasureUnits.findUnique\",\"MeasureUnits.findUniqueOrThrow\",\"MeasureUnits.findFirst\",\"MeasureUnits.findFirstOrThrow\",\"MeasureUnits.findMany\",\"MeasureUnits.createOne\",\"MeasureUnits.createMany\",\"MeasureUnits.updateOne\",\"MeasureUnits.updateMany\",\"MeasureUnits.upsertOne\",\"MeasureUnits.deleteOne\",\"MeasureUnits.deleteMany\",\"MeasureUnits.groupBy\",\"MeasureUnits.aggregate\",\"StockKeepingUnits.findUnique\",\"StockKeepingUnits.findUniqueOrThrow\",\"StockKeepingUnits.findFirst\",\"StockKeepingUnits.findFirstOrThrow\",\"StockKeepingUnits.findMany\",\"StockKeepingUnits.createOne\",\"StockKeepingUnits.createMany\",\"StockKeepingUnits.updateOne\",\"StockKeepingUnits.updateMany\",\"StockKeepingUnits.upsertOne\",\"StockKeepingUnits.deleteOne\",\"StockKeepingUnits.deleteMany\",\"StockKeepingUnits.groupBy\",\"StockKeepingUnits.aggregate\",\"TriggerLog.findUnique\",\"TriggerLog.findUniqueOrThrow\",\"TriggerLog.findFirst\",\"TriggerLog.findFirstOrThrow\",\"TriggerLog.findMany\",\"TriggerLog.createOne\",\"TriggerLog.createMany\",\"TriggerLog.updateOne\",\"TriggerLog.updateMany\",\"TriggerLog.upsertOne\",\"TriggerLog.deleteOne\",\"TriggerLog.deleteMany\",\"TriggerLog.groupBy\",\"TriggerLog.aggregate\",\"Customer.findUnique\",\"Customer.findUniqueOrThrow\",\"Customer.findFirst\",\"Customer.findFirstOrThrow\",\"Customer.findMany\",\"Customer.createOne\",\"Customer.createMany\",\"Customer.updateOne\",\"Customer.updateMany\",\"Customer.upsertOne\",\"Customer.deleteOne\",\"Customer.deleteMany\",\"Customer.groupBy\",\"Customer.aggregate\",\"CustomerIndividual.findUnique\",\"CustomerIndividual.findUniqueOrThrow\",\"CustomerIndividual.findFirst\",\"CustomerIndividual.findFirstOrThrow\",\"CustomerIndividual.findMany\",\"CustomerIndividual.createOne\",\"CustomerIndividual.createMany\",\"CustomerIndividual.updateOne\",\"CustomerIndividual.updateMany\",\"CustomerIndividual.upsertOne\",\"CustomerIndividual.deleteOne\",\"CustomerIndividual.deleteMany\",\"CustomerIndividual.groupBy\",\"CustomerIndividual.aggregate\",\"CustomerLegal.findUnique\",\"CustomerLegal.findUniqueOrThrow\",\"CustomerLegal.findFirst\",\"CustomerLegal.findFirstOrThrow\",\"CustomerLegal.findMany\",\"CustomerLegal.createOne\",\"CustomerLegal.createMany\",\"CustomerLegal.updateOne\",\"CustomerLegal.updateMany\",\"CustomerLegal.upsertOne\",\"CustomerLegal.deleteOne\",\"CustomerLegal.deleteMany\",\"CustomerLegal.groupBy\",\"CustomerLegal.aggregate\",\"Guild.findUnique\",\"Guild.findUniqueOrThrow\",\"Guild.findFirst\",\"Guild.findFirstOrThrow\",\"Guild.findMany\",\"Guild.createOne\",\"Guild.createMany\",\"Guild.updateOne\",\"Guild.updateMany\",\"Guild.upsertOne\",\"Guild.deleteOne\",\"Guild.deleteMany\",\"Guild.groupBy\",\"Guild.aggregate\",\"SalesInvoice.findUnique\",\"SalesInvoice.findUniqueOrThrow\",\"SalesInvoice.findFirst\",\"SalesInvoice.findFirstOrThrow\",\"SalesInvoice.findMany\",\"SalesInvoice.createOne\",\"SalesInvoice.createMany\",\"SalesInvoice.updateOne\",\"SalesInvoice.updateMany\",\"SalesInvoice.upsertOne\",\"SalesInvoice.deleteOne\",\"SalesInvoice.deleteMany\",\"SalesInvoice.groupBy\",\"SalesInvoice.aggregate\",\"SalesInvoiceItem.findUnique\",\"SalesInvoiceItem.findUniqueOrThrow\",\"SalesInvoiceItem.findFirst\",\"SalesInvoiceItem.findFirstOrThrow\",\"SalesInvoiceItem.findMany\",\"SalesInvoiceItem.createOne\",\"SalesInvoiceItem.createMany\",\"SalesInvoiceItem.updateOne\",\"SalesInvoiceItem.updateMany\",\"SalesInvoiceItem.upsertOne\",\"SalesInvoiceItem.deleteOne\",\"SalesInvoiceItem.deleteMany\",\"SalesInvoiceItem.groupBy\",\"SalesInvoiceItem.aggregate\",\"SaleInvoiceFiscals.findUnique\",\"SaleInvoiceFiscals.findUniqueOrThrow\",\"SaleInvoiceFiscals.findFirst\",\"SaleInvoiceFiscals.findFirstOrThrow\",\"SaleInvoiceFiscals.findMany\",\"SaleInvoiceFiscals.createOne\",\"SaleInvoiceFiscals.createMany\",\"SaleInvoiceFiscals.updateOne\",\"SaleInvoiceFiscals.updateMany\",\"SaleInvoiceFiscals.upsertOne\",\"SaleInvoiceFiscals.deleteOne\",\"SaleInvoiceFiscals.deleteMany\",\"SaleInvoiceFiscals.groupBy\",\"SaleInvoiceFiscals.aggregate\",\"SaleInvoiceFiscalAttempts.findUnique\",\"SaleInvoiceFiscalAttempts.findUniqueOrThrow\",\"SaleInvoiceFiscalAttempts.findFirst\",\"SaleInvoiceFiscalAttempts.findFirstOrThrow\",\"SaleInvoiceFiscalAttempts.findMany\",\"SaleInvoiceFiscalAttempts.createOne\",\"SaleInvoiceFiscalAttempts.createMany\",\"SaleInvoiceFiscalAttempts.updateOne\",\"SaleInvoiceFiscalAttempts.updateMany\",\"SaleInvoiceFiscalAttempts.upsertOne\",\"SaleInvoiceFiscalAttempts.deleteOne\",\"SaleInvoiceFiscalAttempts.deleteMany\",\"SaleInvoiceFiscalAttempts.groupBy\",\"SaleInvoiceFiscalAttempts.aggregate\",\"SalesInvoicePayment.findUnique\",\"SalesInvoicePayment.findUniqueOrThrow\",\"SalesInvoicePayment.findFirst\",\"SalesInvoicePayment.findFirstOrThrow\",\"SalesInvoicePayment.findMany\",\"SalesInvoicePayment.createOne\",\"SalesInvoicePayment.createMany\",\"SalesInvoicePayment.updateOne\",\"SalesInvoicePayment.updateMany\",\"SalesInvoicePayment.upsertOne\",\"SalesInvoicePayment.deleteOne\",\"SalesInvoicePayment.deleteMany\",\"SalesInvoicePayment.groupBy\",\"SalesInvoicePayment.aggregate\",\"SalesInvoicePaymentTerminalInfo.findUnique\",\"SalesInvoicePaymentTerminalInfo.findUniqueOrThrow\",\"SalesInvoicePaymentTerminalInfo.findFirst\",\"SalesInvoicePaymentTerminalInfo.findFirstOrThrow\",\"SalesInvoicePaymentTerminalInfo.findMany\",\"SalesInvoicePaymentTerminalInfo.createOne\",\"SalesInvoicePaymentTerminalInfo.createMany\",\"SalesInvoicePaymentTerminalInfo.updateOne\",\"SalesInvoicePaymentTerminalInfo.updateMany\",\"SalesInvoicePaymentTerminalInfo.upsertOne\",\"SalesInvoicePaymentTerminalInfo.deleteOne\",\"SalesInvoicePaymentTerminalInfo.deleteMany\",\"SalesInvoicePaymentTerminalInfo.groupBy\",\"SalesInvoicePaymentTerminalInfo.aggregate\",\"Service.findUnique\",\"Service.findUniqueOrThrow\",\"Service.findFirst\",\"Service.findFirstOrThrow\",\"Service.findMany\",\"Service.createOne\",\"Service.createMany\",\"Service.updateOne\",\"Service.updateMany\",\"Service.upsertOne\",\"Service.deleteOne\",\"Service.deleteMany\",\"Service.groupBy\",\"Service.aggregate\",\"ServiceCategory.findUnique\",\"ServiceCategory.findUniqueOrThrow\",\"ServiceCategory.findFirst\",\"ServiceCategory.findFirstOrThrow\",\"ServiceCategory.findMany\",\"ServiceCategory.createOne\",\"ServiceCategory.createMany\",\"ServiceCategory.updateOne\",\"ServiceCategory.updateMany\",\"ServiceCategory.upsertOne\",\"ServiceCategory.deleteOne\",\"ServiceCategory.deleteMany\",\"ServiceCategory.groupBy\",\"ServiceCategory.aggregate\",\"AND\",\"OR\",\"NOT\",\"id\",\"name\",\"description\",\"image_url\",\"account_id\",\"complex_id\",\"created_at\",\"updated_at\",\"deleted_at\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"not\",\"contains\",\"startsWith\",\"endsWith\",\"search\",\"every\",\"some\",\"none\",\"local_sku\",\"barcode\",\"category_id\",\"base_sale_price\",\"terminal_id\",\"stan\",\"rrn\",\"transaction_date_time\",\"customer_card_no\",\"payment_id\",\"terminal_id_stan_rrn_payment_id\",\"amount\",\"PaymentMethodType\",\"payment_method\",\"paid_at\",\"invoice_id\",\"attempt_no\",\"FiscalResponseStatus\",\"status\",\"tax_id\",\"FiscalRequestType\",\"type\",\"request_payload\",\"response_payload\",\"error_message\",\"sent_at\",\"received_at\",\"fiscal_id\",\"string_contains\",\"string_starts_with\",\"string_ends_with\",\"array_starts_with\",\"array_ends_with\",\"array_contains\",\"retry_count\",\"last_attempt_at\",\"quantity\",\"measure_unit_text\",\"measure_unit_code\",\"sku_code\",\"sku_vat\",\"unit_price\",\"total_amount\",\"discount\",\"notes\",\"payload\",\"good_snapshot\",\"good_id\",\"service_id\",\"code\",\"invoice_number\",\"invoice_date\",\"unknown_customer\",\"customer_id\",\"consumer_account_id\",\"pos_id\",\"economic_code\",\"registration_number\",\"postal_code\",\"business_activity_id\",\"first_name\",\"last_name\",\"national_id\",\"mobile_number\",\"is_favorite\",\"CustomerType\",\"message\",\"createdAt\",\"VAT\",\"SKUGuildType\",\"is_public\",\"is_domestic\",\"is_default_guild_good\",\"guild_id\",\"GoodPricingModel\",\"pricing_model\",\"sku_id\",\"measure_unit_id\",\"model\",\"serial_number\",\"POSStatus\",\"POSType\",\"pos_type\",\"device_id\",\"provider_id\",\"branch_code\",\"address\",\"partner_token\",\"consumer_id\",\"registration_code\",\"partner_id\",\"national_code\",\"ConsumerType\",\"ConsumerStatus\",\"ConsumerRole\",\"role\",\"version\",\"build_number\",\"is_minimum_supported\",\"ApplicationReleaseType\",\"release_type\",\"ApplicationPlatform\",\"platform\",\"release_date\",\"uuid\",\"app_version\",\"ApplicationPublisher\",\"publisher\",\"os_version\",\"sdk_version\",\"release_number\",\"user_agent\",\"browser_name\",\"fcm_token\",\"PartnerStatus\",\"ProviderRole\",\"BusinessRole\",\"business_id\",\"permission_id\",\"ComplexRole\",\"POSRole\",\"PartnerFiscalSwitchType\",\"fiscal_switch_type\",\"logo_url\",\"PartnerRole\",\"license_activation_id\",\"credit_id\",\"charge_transaction_id\",\"activation_expires_at\",\"tracking_code\",\"purchased_count\",\"expires_at\",\"activation_id\",\"starts_at\",\"license_id\",\"accounts_limit\",\"brand_id\",\"username\",\"password\",\"AccountStatus\",\"AccountType\",\"admin_id\",\"business_activity_id_economic_code\",\"business_activity_id_national_id\",\"fiscal_id_attempt_no\",\"permission_id_business_id\",\"permission_id_complex_id\",\"permission_id_pos_id\",\"partner_id_registration_code\",\"mobile_number_consumer_id\",\"partner_id_national_code\",\"invoice_number_pos_id\",\"economic_code_consumer_id\",\"is\",\"isNot\",\"connectOrCreate\",\"upsert\",\"createMany\",\"set\",\"disconnect\",\"delete\",\"connect\",\"updateMany\",\"deleteMany\",\"_relevance\",\"increment\",\"decrement\",\"multiply\",\"divide\"]"), + graph: "uhfOApIFCgUAAO4LACAUAADGCwAg4QUAAO0LADDiBQAAAwAQ4wUAAO0LADDkBQEAAAAB6AUBAAAAAeoFQADFCQAh6wVAAMUJACGJBwEAwwkAIQEAAAABACAKBQAA7gsAIBQAAMYLACDhBQAA7QsAMOIFAAADABDjBQAA7QsAMOQFAQDDCQAh6AUBAMMJACHqBUAAxQkAIesFQADFCQAhiQcBAMMJACEDBQAA2xQAIBQAAMQUACCgBwAA3BQAIAMAAAADACABAAAEADACAAABACABAAAAAwAgAQAAAAMAIAsUAADGCwAgQwAA7AsAIOEFAADqCwAw4gUAAAgAEOMFAADqCwAw5AUBAMMJACHoBQEAwwkAIeoFQADFCQAh6wVAAMUJACHQBgEAwwkAIdsGAADrC_AGIgEAAAAIACADFAAAxBQAIEMAANgUACCgBwAA2hQAIAsUAADGCwAgQwAA7AsAIOEFAADqCwAw4gUAAAgAEOMFAADqCwAw5AUBAAAAAegFAQAAAAHqBUAAxQkAIesFQADFCQAh0AYBAMMJACHbBgAA6wvwBiIDAAAACAAgAQAACgAwAgAACwAgFRAAAPkJACAUAADYCgAgKAAAqQsAIEIAAOgLACBDAADpCwAgRAAA2QoAIOEFAADlCwAw4gUAAA0AEOMFAADlCwAw5AUBAMMJACHlBQEAwwkAIegFAQDDCQAh6QUBAMMJACHqBUAAxQkAIesFQADFCQAhjgYAAOYLzQYiygYBAMQJACHLBgEAxAkAIc4GAADnC84GIs8GAQDECQAh0AYBAMQJACELEAAAxw8AIBQAAOgRACAoAACtFAAgQgAA1xQAIEMAANgUACBEAADpEQAgygYAAO8LACDLBgAA7wsAIM8GAADvCwAg0AYAAO8LACCgBwAA2RQAIBUQAAD5CQAgFAAA2AoAICgAAKkLACBCAADoCwAgQwAA6QsAIEQAANkKACDhBQAA5QsAMOIFAAANABDjBQAA5QsAMOQFAQAAAAHlBQEAwwkAIegFAQAAAAHpBQEAwwkAIeoFQADFCQAh6wVAAMUJACGOBgAA5gvNBiLKBgEAxAkAIcsGAQAAAAHOBgAA5wvOBiLPBgEAxAkAIdAGAQDECQAhAwAAAA0AIAEAAA4AMAIAAA8AIBQIAACHCgAgEQAAwAsAIBsAALYLACA4AADhCwAgOgAA4gsAIDsAANsKACA8AADjCwAgPQAA5AsAIOEFAADgCwAw4gUAABEAEOMFAADgCwAw5AUBAMMJACHlBQEAwwkAIeoFQADFCQAh6wVAAMUJACGXBgEAwwkAIbQGAQDDCQAhxQYBAMMJACHTBgEAwwkAIdQGAQDDCQAhCQgAAOAPACARAADBFAAgGwAAuBQAIDgAANEUACA6AADTFAAgOwAA6xEAIDwAANQUACA9AADVFAAgoAcAANYUACAVCAAAhwoAIBEAAMALACAbAAC2CwAgOAAA4QsAIDoAAOILACA7AADbCgAgPAAA4wsAID0AAOQLACDhBQAA4AsAMOIFAAARABDjBQAA4AsAMOQFAQAAAAHlBQEAwwkAIeoFQADFCQAh6wVAAMUJACGXBgEAwwkAIbQGAQDDCQAhxQYBAMMJACHTBgEAwwkAIdQGAQDDCQAhlAcAAN8LACADAAAAEQAgAQAAEgAwAgAAEwAgEAgAAIcKACAoAADeCwAgOAAA3QsAIOEFAADcCwAw4gUAABUAEOMFAADcCwAw5AUBAMMJACHlBQEAwwkAIeYFAQDECQAh5wUBAMQJACHpBQEAxAkAIeoFQADFCQAh6wVAAMUJACHsBUAAxgkAIcQGIACGCgAhxQYBAMQJACEJCAAA4A8AICgAAK0UACA4AADRFAAg5gUAAO8LACDnBQAA7wsAIOkFAADvCwAg7AUAAO8LACDFBgAA7wsAIKAHAADSFAAgEAgAAIcKACAoAADeCwAgOAAA3QsAIOEFAADcCwAw4gUAABUAEOMFAADcCwAw5AUBAAAAAeUFAQDDCQAh5gUBAMQJACHnBQEAxAkAIekFAQDECQAh6gVAAMUJACHrBUAAxQkAIewFQADGCQAhxAYgAIYKACHFBgEAxAkAIQMAAAAVACABAAAWADACAAAXACAYCQAA2AsAIAoAANkLACALAADaCwAgDAAA2wsAIDYAAJkLACDhBQAA1QsAMOIFAAAZABDjBQAA1QsAMOQFAQDDCQAh5QUBAMMJACHmBQEAxAkAIecFAQDECQAh6gVAAMUJACHrBUAAxQkAIewFQADGCQAh_AUBAMQJACH9BQEAxAkAIf4FAQDECQAh_wUQANcLACG3BgEAxAkAIcQGIACGCgAhxwYAANYLxwYiyAYBAMMJACHJBgEAwwkAIQ4JAADNFAAgCgAAzhQAIAsAAM8UACAMAACqEwAgNgAApRQAIOYFAADvCwAg5wUAAO8LACDsBQAA7wsAIPwFAADvCwAg_QUAAO8LACD-BQAA7wsAIP8FAADvCwAgtwYAAO8LACCgBwAA0BQAIBgJAADYCwAgCgAA2QsAIAsAANoLACAMAADbCwAgNgAAmQsAIOEFAADVCwAw4gUAABkAEOMFAADVCwAw5AUBAAAAAeUFAQDDCQAh5gUBAMQJACHnBQEAxAkAIeoFQADFCQAh6wVAAMUJACHsBUAAxgkAIfwFAQAAAAH9BQEAAAAB_gUBAMQJACH_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_CwAw4gUAAEQAEOMFAAC_CwAw5QUBAMMJACHqBUAAxQkAIesFQADFCQAh1AYBAAAAAdUGAQDDCQAh1gYBAMMJACGQBwAAvgsAIAMAAABEACABAABFADACAABGACAMEwAArwsAICAAAL0LACDhBQAAvAsAMOIFAABIABDjBQAAvAsAMOQFAQDDCQAh6gVAAMUJACHrBUAAxQkAIdYGAQDDCQAh_AZAAMUJACH9BgEAwwkAIf4GAgDiCQAhAxMAALEUACAgAAC_FAAgoAcAAMAUACAMEwAArwsAICAAAL0LACDhBQAAvAsAMOIFAABIABDjBQAAvAsAMOQFAQAAAAHqBUAAxQkAIesFQADFCQAh1gYBAMMJACH8BkAAxQkAIf0GAQAAAAH-BgIA4gkAIQMAAABIACABAABJADACAABKACAKFwAAuwsAIBoAALYLACDhBQAAugsAMOIFAABMABDjBQAAugsAMOQFAQDDCQAh6gVAAMUJACHrBUAAxQkAIfsGAQDDCQAhgwcCAOIJACEDFwAAvRQAIBoAALgUACCgBwAAvhQAIAoXAAC7CwAgGgAAtgsAIOEFAAC6CwAw4gUAAEwAEOMFAAC6CwAw5AUBAAAAAeoFQADFCQAh6wVAAMUJACH7BgEAwwkAIYMHAgDiCQAhAwAAAEwAIAEAAE0AMAIAAE4AIA4MAAD0CgAgGAAA8woAIBkAAPUKACAfAAD2CgAg4QUAAPIKADDiBQAAUAAQ4wUAAPIKADDkBQEAwwkAIeoFQADFCQAh6wVAAMUJACG3BgEAwwkAIf8GQADFCQAhgQdAAMUJACGCBwEAwwkAIQEAAABQACALFwAAuQsAIBoAALYLACDhBQAAuAsAMOIFAABSABDjBQAAuAsAMOQFAQDDCQAh6gVAAMUJACHrBUAAxQkAIfsGAQDDCQAh_wZAAMUJACGABwEAxAkAIQQXAAC7FAAgGgAAuBQAIIAHAADvCwAgoAcAALwUACALFwAAuQsAIBoAALYLACDhBQAAuAsAMOIFAABSABDjBQAAuAsAMOQFAQAAAAHqBUAAxQkAIesFQADFCQAh-wYBAMMJACH_BkAAxQkAIYAHAQDECQAhAwAAAFIAIAEAAFMAMAIAAFQAIAMAAABSACABAABTADACAABUACABAAAAUgAgAQAAAFAAIAwUAACKCwAgGwAAtgsAIB4AALcLACDhBQAAtQsAMOIFAABZABDjBQAAtQsAMOQFAQDDCQAh6AUBAMQJACHqBUAAxQkAIesFQADFCQAh-QYBAMQJACH6BgEAxAkAIQcUAADoEQAgGwAAuBQAIB4AALkUACDoBQAA7wsAIPkGAADvCwAg-gYAAO8LACCgBwAAuhQAIAwUAACKCwAgGwAAtgsAIB4AALcLACDhBQAAtQsAMOIFAABZABDjBQAAtQsAMOQFAQAAAAHoBQEAAAAB6gVAAMUJACHrBUAAxQkAIfkGAQDECQAh-gYBAAAAAQMAAABZACABAABaADACAABbACABAAAAUAAgAQAAADIAIAkXAACzCwAgHQAAtAsAIOEFAACyCwAw4gUAAF8AEOMFAACyCwAw5AUBAMMJACHqBUAAxQkAIesFQADFCQAh-wYBAMQJACEBAAAAXwAgDBMAAK8LACAcAACxCwAg4QUAALALADDiBQAAYQAQ4wUAALALADDkBQEAwwkAIeoFQADFCQAh6wVAAMUJACHWBgEAwwkAIfwGQADFCQAh_QYBAMMJACH-BgIA4gkAIQEAAABhACAEFwAAtRQAIB0AALYUACD7BgAA7wsAIKAHAAC3FAAgCRcAALMLACAdAAC0CwAg4QUAALILADDiBQAAXwAQ4wUAALILADDkBQEAAAAB6gVAAMUJACHrBUAAxQkAIfsGAQDECQAhAwAAAF8AIAEAAGMAMAIAAGQAIAEAAABfACABAAAAWQAgAQAAAFIAIAEAAABZACABAAAATAAgAxMAALEUACAcAACzFAAgoAcAALQUACAMEwAArwsAIBwAALELACDhBQAAsAsAMOIFAABhABDjBQAAsAsAMOQFAQAAAAHqBUAAxQkAIesFQADFCQAh1gYBAMMJACH8BkAAxQkAIf0GAQAAAAH-BgIA4gkAIQMAAABhACABAABrADACAABsACAMEwAArwsAIBkAAPUKACDhBQAArgsAMOIFAABuABDjBQAArgsAMOQFAQDDCQAh6gVAAMUJACHrBUAAxQkAIdYGAQDDCQAh_AZAAMUJACH9BgEAwwkAIf4GAgDiCQAhAxMAALEUACAZAACrEwAgoAcAALIUACAMEwAArwsAIBkAAPUKACDhBQAArgsAMOIFAABuABDjBQAArgsAMOQFAQAAAAHqBUAAxQkAIesFQADFCQAh1gYBAMMJACH8BkAAxQkAIf0GAQAAAAH-BgIA4gkAIQMAAABuACABAABvADACAABwACABAAAAPQAgAQAAADsAIAEAAABEACABAAAASAAgAQAAAGEAIAEAAABuACABAAAARAAgAQAAADIAIAEAAAARACABAAAANwAgAQAAAA0AIAklAADYCgAgJwAA2QoAICkAANoKACArAADbCgAg4QUAANcKADDiBQAAfQAQ4wUAANcKADDkBQEAwwkAIbIGAQDDCQAhAQAAAH0AIAkkAACtCwAgJgAApQsAIOEFAACrCwAw4gUAAH8AEOMFAACrCwAw5AUBAMMJACGzBgEAwwkAIdsGAACsC_UGIvIGAQDDCQAhAyQAAK8UACAmAACrFAAgoAcAALAUACAKJAAArQsAICYAAKULACDhBQAAqwsAMOIFAAB_ABDjBQAAqwsAMOQFAQAAAAGzBgEAwwkAIdsGAACsC_UGIvIGAQDDCQAhjwcAAKoLACADAAAAfwAgAQAAgAEAMAIAAIEBACAJJgAApQsAICgAAKkLACDhBQAApwsAMOIFAACDAQAQ4wUAAKcLADDkBQEAwwkAIekFAQDDCQAh2wYAAKgL9AYi8gYBAMMJACEDJgAAqxQAICgAAK0UACCgBwAArhQAIAomAAClCwAgKAAAqQsAIOEFAACnCwAw4gUAAIMBABDjBQAApwsAMOQFAQAAAAHpBQEAwwkAIdsGAACoC_QGIvIGAQDDCQAhjgcAAKYLACADAAAAgwEAIAEAAIQBADACAACFAQAgCSYAAKULACAqAAD0CgAg4QUAAKMLADDiBQAAhwEAEOMFAACjCwAw5AUBAMMJACHbBgAApAvxBiLxBgEAwwkAIfIGAQDDCQAhAyYAAKsUACAqAACqEwAgoAcAAKwUACAKJgAApQsAICoAAPQKACDhBQAAowsAMOIFAACHAQAQ4wUAAKMLADDkBQEAAAAB2wYAAKQL8QYi8QYBAMMJACHyBgEAwwkAIY0HAACiCwAgAwAAAIcBACABAACIAQAwAgAAiQEAIAEAAAB_ACABAAAAgwEAIAEAAACHAQAgAQAAAFkAIAMAAAAtACABAAAuADACAAAvACABAAAALQAgCy0AAOMJACAvAADkCQAg4QUAAOEJADDiBQAAkQEAEOMFAADhCQAw5AUBAMMJACHqBUAAxQkAIesFQADFCQAhiwYBAMMJACGeBgIA4gkAIZ8GQADGCQAhAQAAAJEBACAQLgAAoQsAIOEFAACeCwAw4gUAAJMBABDjBQAAngsAMOQFAQDDCQAh6gVAAMUJACGMBgIA4gkAIY4GAACfC44GIo8GAQDECQAhkQYAAKALkQYikgYAALkKACCTBgAAuQoAIJQGAQDECQAhlQZAAMYJACGWBkAAxgkAIZcGAQDDCQAhCC4AAKkUACCPBgAA7wsAIJIGAADvCwAgkwYAAO8LACCUBgAA7wsAIJUGAADvCwAglgYAAO8LACCgBwAAqhQAIBEuAAChCwAg4QUAAJ4LADDiBQAAkwEAEOMFAACeCwAw5AUBAAAAAeoFQADFCQAhjAYCAOIJACGOBgAAnwuOBiKPBgEAAAABkQYAAKALkQYikgYAALkKACCTBgAAuQoAIJQGAQDECQAhlQZAAMYJACGWBkAAxgkAIZcGAQDDCQAhjAcAAJ0LACADAAAAkwEAIAEAAJQBADACAACVAQAgAQAAAJMBACADAAAAIwAgAQAAJAAwAgAAJQAgCy0AAOMJACAyAACcCwAg4QUAAJoLADDiBQAAmQEAEOMFAACaCwAw5AUBAMMJACHqBUAAxQkAIYcGEACECgAhiQYAAJsLiQYiigZAAMUJACGLBgEAwwkAIQMtAADWDAAgMgAApxQAIKAHAACoFAAgCy0AAOMJACAyAACcCwAg4QUAAJoLADDiBQAAmQEAEOMFAACaCwAw5AUBAAAAAeoFQADFCQAhhwYQAIQKACGJBgAAmwuJBiKKBkAAxQkAIYsGAQDDCQAhAwAAAJkBACABAACaAQAwAgAAmwEAIA0xAADPCQAg4QUAAM4JADDiBQAAnQEAEOMFAADOCQAw5AUBAMMJACHmBQEAxAkAIeoFQADFCQAhgAYBAMMJACGBBgEAwwkAIYIGAQDDCQAhgwZAAMUJACGEBgEAxAkAIYUGAQDDCQAhAQAAAJ0BACABAAAAIwAgAQAAAJkBACABAAAAGQAgEgkBAMMJACELAACYCwAgNgAAmQsAIOEFAACXCwAw4gUAAKIBABDjBQAAlwsAMOQFAQDDCQAh5QUBAMMJACHmBQEAxAkAIegFAQDDCQAh6QUBAMMJACHqBUAAxQkAIesFQADFCQAh7AVAAMYJACH8BQEAxAkAIf0FAQDECQAh_gUBAMQJACH_BRAAhAoAIQEAAACiAQAgDTUAAMcJACDhBQAAwgkAMOIFAACkAQAQ4wUAAMIJADDkBQEAwwkAIeUFAQDDCQAh5gUBAMQJACHnBQEAxAkAIegFAQDDCQAh6QUBAMMJACHqBUAAxQkAIesFQADFCQAh7AVAAMYJACEBAAAApAEAIAgLAACkFAAgNgAApRQAIOYFAADvCwAg7AUAAO8LACD8BQAA7wsAIP0FAADvCwAg_gUAAO8LACCgBwAAphQAIBIJAQAAAAELAACYCwAgNgAAmQsAIOEFAACXCwAw4gUAAKIBABDjBQAAlwsAMOQFAQAAAAHlBQEAwwkAIeYFAQDECQAh6AUBAMMJACHpBQEAwwkAIeoFQADFCQAh6wVAAMUJACHsBUAAxgkAIfwFAQAAAAH9BQEAAAAB_gUBAMQJACH_BRAAhAoAIQMAAACiAQAgAQAApgEAMAIAAKcBACABAAAAogEAIAMAAAAjACABAAAkADACAAAlACABAAAAIwAgAQAAACMAIAoHAADpCQAgOQAA6gkAIOEFAADoCQAw4gUAAK0BABDjBQAA6AkAMOQFAQDDCQAh5QUBAMMJACHqBUAAxQkAIesFQADFCQAhrQYBAMQJACEBAAAArQEAIA4MAAD0CgAgOQAA6gkAID4AAMUKACA_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-AQAgAwAAAPABACBRAAD4AQAgUgAA_AEAIAEAAADwAQAgAQAAAPMBACAEBAAAhhQAIFcAAIgUACBYAACHFAAg1wYAAO8LACAK4QUAAIsLADDiBQAAhAIAEOMFAACLCwAw5AUBALQJACHqBUAAtgkAIesFQAC2CQAhuAYBALQJACG5BgEAtAkAIbsGAQC0CQAh1wYBALUJACEDAAAA8wEAIAEAAIMCADBWAACEAgAgAwAAAPMBACABAAD0AQAwAgAA8AEAIAwGAACHCwAgJQAAigsAIEUAAIgLACBGAACJCwAg4QUAAIQLADDiBQAAigIAEOMFAACECwAw5AUBAAAAAY4GAACFC4gHIpEGAACGC4kHIoUHAQAAAAGGBwEAwwkAIQEAAACHAgAgAQAAAIcCACAMBgAAhwsAICUAAIoLACBFAACICwAgRgAAiQsAIOEFAACECwAw4gUAAIoCABDjBQAAhAsAMOQFAQDDCQAhjgYAAIULiAcikQYAAIYLiQcihQcBAMMJACGGBwEAwwkAIQUGAACCFAAgJQAA6BEAIEUAAIMUACBGAACEFAAgoAcAAIUUACADAAAAigIAIAEAAIsCADACAACHAgAgAwAAAIoCACABAACLAgAwAgAAhwIAIAMAAACKAgAgAQAAiwIAMAIAAIcCACAJBgAA_hMAICUAAIEUACBFAAD_EwAgRgAAgBQAIOQFAQAAAAGOBgAAAIgHApEGAAAAiQcChQcBAAAAAYYHAQAAAAEBTAAAjwIAIAXkBQEAAAABjgYAAACIBwKRBgAAAIkHAoUHAQAAAAGGBwEAAAABAUwAAJECADAJBgAA5BMAICUAAOcTACBFAADlEwAgRgAA5hMAIOQFAQDzCwAhjgYAAOITiAcikQYAAOMTiQcihQcBAPMLACGGBwEA8wsAIQIAAACHAgAgTAAAkwIAIAXkBQEA8wsAIY4GAADiE4gHIpEGAADjE4kHIoUHAQDzCwAhhgcBAPMLACECAAAAigIAIEwAAJUCACADAAAAhwIAIFEAAI8CACBSAACTAgAgAQAAAIcCACABAAAAigIAIAMEAADfEwAgVwAA4RMAIFgAAOATACAI4QUAAP0KADDiBQAAmwIAEOMFAAD9CgAw5AUBALQJACGOBgAA_gqIByKRBgAA_wqJByKFBwEAtAkAIYYHAQC0CQAhAwAAAIoCACABAACaAgAwVgAAmwIAIAMAAACKAgAgAQAAiwIAMAIAAIcCACAIEgAA_AoAIOEFAAD7CgAw4gUAAKECABDjBQAA-woAMOQFAQAAAAHlBQEAwwkAIeoFQADFCQAh6wVAAMUJACEBAAAAngIAIAEAAACeAgAgCBIAAPwKACDhBQAA-woAMOIFAAChAgAQ4wUAAPsKADDkBQEAwwkAIeUFAQDDCQAh6gVAAMUJACHrBUAAxQkAIQISAADdEwAgoAcAAN4TACADAAAAoQIAIAEAAKICADACAACeAgAgAwAAAKECACABAACiAgAwAgAAngIAIAMAAAChAgAgAQAAogIAMAIAAJ4CACAFEgAA3BMAIOQFAQAAAAHlBQEAAAAB6gVAAAAAAesFQAAAAAEBTAAApgIAIATkBQEAAAAB5QUBAAAAAeoFQAAAAAHrBUAAAAABAUwAAKgCADAFEgAAzxMAIOQFAQDzCwAh5QUBAPMLACHqBUAA9QsAIesFQAD1CwAhAgAAAJ4CACBMAACqAgAgBOQFAQDzCwAh5QUBAPMLACHqBUAA9QsAIesFQAD1CwAhAgAAAKECACBMAACsAgAgAwAAAJ4CACBRAACmAgAgUgAAqgIAIAEAAACeAgAgAQAAAKECACADBAAAzBMAIFcAAM4TACBYAADNEwAgB-EFAAD6CgAw4gUAALICABDjBQAA-goAMOQFAQC0CQAh5QUBALQJACHqBUAAtgkAIesFQAC2CQAhAwAAAKECACABAACxAgAwVgAAsgIAIAMAAAChAgAgAQAAogIAMAIAAJ4CACABAAAAzgEAIAEAAADOAQAgAwAAAMsBACABAADNAQAwAgAAzgEAIAMAAADLAQAgAQAAzQEAMAIAAM4BACADAAAAywEAIAEAAM0BADACAADOAQAgCEAAAMoTACBBAADLEwAg5AUBAAAAAeUFAQAAAAHqBUAAAAAB6wVAAAAAAegGAQAAAAGEBwEAAAABAUwAALoCACAG5AUBAAAAAeUFAQAAAAHqBUAAAAAB6wVAAAAAAegGAQAAAAGEBwEAAAABAUwAALwCADAIQAAAvxMAIEEAAMATACDkBQEA8wsAIeUFAQDzCwAh6gVAAPULACHrBUAA9QsAIegGAQD0CwAhhAcBAPMLACECAAAAzgEAIEwAAL4CACAG5AUBAPMLACHlBQEA8wsAIeoFQAD1CwAh6wVAAPULACHoBgEA9AsAIYQHAQDzCwAhAgAAAMsBACBMAADAAgAgAwAAAM4BACBRAAC6AgAgUgAAvgIAIAEAAADOAQAgAQAAAMsBACAEBAAAvBMAIFcAAL4TACBYAAC9EwAg6AYAAO8LACAJ4QUAAPkKADDiBQAAxgIAEOMFAAD5CgAw5AUBALQJACHlBQEAtAkAIeoFQAC2CQAh6wVAALYJACHoBgEAtQkAIYQHAQC0CQAhAwAAAMsBACABAADFAgAwVgAAxgIAIAMAAADLAQAgAQAAzQEAMAIAAM4BACABAAAASgAgAQAAAEoAIAMAAABIACABAABJADACAABKACADAAAASAAgAQAASQAwAgAASgAgAwAAAEgAIAEAAEkAMAIAAEoAIAkTAAC7EwAgIAAA0xIAIOQFAQAAAAHqBUAAAAAB6wVAAAAAAdYGAQAAAAH8BkAAAAAB_QYBAAAAAf4GAgAAAAEBTAAAzgIAIAfkBQEAAAAB6gVAAAAAAesFQAAAAAHWBgEAAAAB_AZAAAAAAf0GAQAAAAH-BgIAAAABAUwAANACADAJEwAAuhMAICAAALwSACDkBQEA8wsAIeoFQAD1CwAh6wVAAPULACHWBgEA8wsAIfwGQAD1CwAh_QYBAPMLACH-BgIAvAwAIQIAAABKACBMAADSAgAgB-QFAQDzCwAh6gVAAPULACHrBUAA9QsAIdYGAQDzCwAh_AZAAPULACH9BgEA8wsAIf4GAgC8DAAhAgAAAEgAIEwAANQCACADAAAASgAgUQAAzgIAIFIAANICACABAAAASgAgAQAAAEgAIAUEAAC1EwAgVwAAuBMAIFgAALcTACCfAQAAthMAIKABAAC5EwAgCuEFAAD4CgAw4gUAANoCABDjBQAA-AoAMOQFAQC0CQAh6gVAALYJACHrBUAAtgkAIdYGAQC0CQAh_AZAALYJACH9BgEAtAkAIf4GAgDVCQAhAwAAAEgAIAEAANkCADBWAADaAgAgAwAAAEgAIAEAAEkAMAIAAEoAIAEAAABOACABAAAATgAgAwAAAEwAIAEAAE0AMAIAAE4AIAMAAABMACABAABNADACAABOACADAAAATAAgAQAATQAwAgAATgAgBxcAALQTACAaAADREgAg5AUBAAAAAeoFQAAAAAHrBUAAAAAB-wYBAAAAAYMHAgAAAAEBTAAA4gIAIAXkBQEAAAAB6gVAAAAAAesFQAAAAAH7BgEAAAABgwcCAAAAAQFMAADkAgAwBxcAALMTACAaAADIEgAg5AUBAPMLACHqBUAA9QsAIesFQAD1CwAh-wYBAPMLACGDBwIAvAwAIQIAAABOACBMAADmAgAgBeQFAQDzCwAh6gVAAPULACHrBUAA9QsAIfsGAQDzCwAhgwcCALwMACECAAAATAAgTAAA6AIAIAMAAABOACBRAADiAgAgUgAA5gIAIAEAAABOACABAAAATAAgBQQAAK4TACBXAACxEwAgWAAAsBMAIJ8BAACvEwAgoAEAALITACAI4QUAAPcKADDiBQAA7gIAEOMFAAD3CgAw5AUBALQJACHqBUAAtgkAIesFQAC2CQAh-wYBALQJACGDBwIA1QkAIQMAAABMACABAADtAgAwVgAA7gIAIAMAAABMACABAABNADACAABOACAODAAA9AoAIBgAAPMKACAZAAD1CgAgHwAA9goAIOEFAADyCgAw4gUAAFAAEOMFAADyCgAw5AUBAAAAAeoFQADFCQAh6wVAAMUJACG3BgEAAAAB_wZAAMUJACGBB0AAxQkAIYIHAQAAAAEBAAAA8QIAIAEAAADxAgAgBQwAAKoTACAYAACpEwAgGQAAqxMAIB8AAKwTACCgBwAArRMAIAMAAABQACABAAD0AgAwAgAA8QIAIAMAAABQACABAAD0AgAwAgAA8QIAIAMAAABQACABAAD0AgAwAgAA8QIAIAsMAADPEgAgGAAAjQ8AIBkAAI4PACAfAACPDwAg5AUBAAAAAeoFQAAAAAHrBUAAAAABtwYBAAAAAf8GQAAAAAGBB0AAAAABggcBAAAAAQFMAAD4AgAgB-QFAQAAAAHqBUAAAAAB6wVAAAAAAbcGAQAAAAH_BkAAAAABgQdAAAAAAYIHAQAAAAEBTAAA-gIAMAsMAADOEgAgGAAA7A4AIBkAAO0OACAfAADuDgAg5AUBAPMLACHqBUAA9QsAIesFQAD1CwAhtwYBAPMLACH_BkAA9QsAIYEHQAD1CwAhggcBAPMLACECAAAA8QIAIEwAAPwCACAH5AUBAPMLACHqBUAA9QsAIesFQAD1CwAhtwYBAPMLACH_BkAA9QsAIYEHQAD1CwAhggcBAPMLACECAAAAUAAgTAAA_gIAIAMAAADxAgAgUQAA-AIAIFIAAPwCACABAAAA8QIAIAEAAABQACADBAAAphMAIFcAAKgTACBYAACnEwAgCuEFAADxCgAw4gUAAIQDABDjBQAA8QoAMOQFAQC0CQAh6gVAALYJACHrBUAAtgkAIbcGAQC0CQAh_wZAALYJACGBB0AAtgkAIYIHAQC0CQAhAwAAAFAAIAEAAIMDADBWAACEAwAgAwAAAFAAIAEAAPQCADACAADxAgAgAQAAAHAAIAEAAABwACADAAAAbgAgAQAAbwAwAgAAcAAgAwAAAG4AIAEAAG8AMAIAAHAAIAMAAABuACABAABvADACAABwACAJEwAApRMAIBkAAI8SACDkBQEAAAAB6gVAAAAAAesFQAAAAAHWBgEAAAAB_AZAAAAAAf0GAQAAAAH-BgIAAAABAUwAAIwDACAH5AUBAAAAAeoFQAAAAAHrBUAAAAAB1gYBAAAAAfwGQAAAAAH9BgEAAAAB_gYCAAAAAQFMAACOAwAwCRMAAKQTACAZAACCEgAg5AUBAPMLACHqBUAA9QsAIesFQAD1CwAh1gYBAPMLACH8BkAA9QsAIf0GAQDzCwAh_gYCALwMACECAAAAcAAgTAAAkAMAIAfkBQEA8wsAIeoFQAD1CwAh6wVAAPULACHWBgEA8wsAIfwGQAD1CwAh_QYBAPMLACH-BgIAvAwAIQIAAABuACBMAACSAwAgAwAAAHAAIFEAAIwDACBSAACQAwAgAQAAAHAAIAEAAABuACAFBAAAnxMAIFcAAKITACBYAAChEwAgnwEAAKATACCgAQAAoxMAIArhBQAA8AoAMOIFAACYAwAQ4wUAAPAKADDkBQEAtAkAIeoFQAC2CQAh6wVAALYJACHWBgEAtAkAIfwGQAC2CQAh_QYBALQJACH-BgIA1QkAIQMAAABuACABAACXAwAwVgAAmAMAIAMAAABuACABAABvADACAABwACABAAAAVAAgAQAAAFQAIAMAAABSACABAABTADACAABUACADAAAAUgAgAQAAUwAwAgAAVAAgAwAAAFIAIAEAAFMAMAIAAFQAIAgXAACMDwAgGgAAjRIAIOQFAQAAAAHqBUAAAAAB6wVAAAAAAfsGAQAAAAH_BkAAAAABgAcBAAAAAQFMAACgAwAgBuQFAQAAAAHqBUAAAAAB6wVAAAAAAfsGAQAAAAH_BkAAAAABgAcBAAAAAQFMAACiAwAwCBcAAIoPACAaAACLEgAg5AUBAPMLACHqBUAA9QsAIesFQAD1CwAh-wYBAPMLACH_BkAA9QsAIYAHAQD0CwAhAgAAAFQAIEwAAKQDACAG5AUBAPMLACHqBUAA9QsAIesFQAD1CwAh-wYBAPMLACH_BkAA9QsAIYAHAQD0CwAhAgAAAFIAIEwAAKYDACADAAAAVAAgUQAAoAMAIFIAAKQDACABAAAAVAAgAQAAAFIAIAQEAACcEwAgVwAAnhMAIFgAAJ0TACCABwAA7wsAIAnhBQAA7woAMOIFAACsAwAQ4wUAAO8KADDkBQEAtAkAIeoFQAC2CQAh6wVAALYJACH7BgEAtAkAIf8GQAC2CQAhgAcBALUJACEDAAAAUgAgAQAAqwMAMFYAAKwDACADAAAAUgAgAQAAUwAwAgAAVAAgAQAAAGwAIAEAAABsACADAAAAYQAgAQAAawAwAgAAbAAgAwAAAGEAIAEAAGsAMAIAAGwAIAMAAABhACABAABrADACAABsACAJEwAAmxMAIBwAALASACDkBQEAAAAB6gVAAAAAAesFQAAAAAHWBgEAAAAB_AZAAAAAAf0GAQAAAAH-BgIAAAABAUwAALQDACAH5AUBAAAAAeoFQAAAAAHrBUAAAAAB1gYBAAAAAfwGQAAAAAH9BgEAAAAB_gYCAAAAAQFMAAC2AwAwCRMAAJoTACAcAACbEgAg5AUBAPMLACHqBUAA9QsAIesFQAD1CwAh1gYBAPMLACH8BkAA9QsAIf0GAQDzCwAh_gYCALwMACECAAAAbAAgTAAAuAMAIAfkBQEA8wsAIeoFQAD1CwAh6wVAAPULACHWBgEA8wsAIfwGQAD1CwAh_QYBAPMLACH-BgIAvAwAIQIAAABhACBMAAC6AwAgAwAAAGwAIFEAALQDACBSAAC4AwAgAQAAAGwAIAEAAABhACAFBAAAlRMAIFcAAJgTACBYAACXEwAgnwEAAJYTACCgAQAAmRMAIArhBQAA7goAMOIFAADAAwAQ4wUAAO4KADDkBQEAtAkAIeoFQAC2CQAh6wVAALYJACHWBgEAtAkAIfwGQAC2CQAh_QYBALQJACH-BgIA1QkAIQMAAABhACABAAC_AwAwVgAAwAMAIAMAAABhACABAABrADACAABsACABAAAAZAAgAQAAAGQAIAMAAABfACABAABjADACAABkACADAAAAXwAgAQAAYwAwAgAAZAAgAwAAAF8AIAEAAGMAMAIAAGQAIAYXAACUEwAgHQAArhIAIOQFAQAAAAHqBUAAAAAB6wVAAAAAAfsGAQAAAAEBTAAAyAMAIATkBQEAAAAB6gVAAAAAAesFQAAAAAH7BgEAAAABAUwAAMoDADAGFwAAkxMAIB0AAKcSACDkBQEA8wsAIeoFQAD1CwAh6wVAAPULACH7BgEA9AsAIQIAAABkACBMAADMAwAgBOQFAQDzCwAh6gVAAPULACHrBUAA9QsAIfsGAQD0CwAhAgAAAF8AIEwAAM4DACADAAAAZAAgUQAAyAMAIFIAAMwDACABAAAAZAAgAQAAAF8AIAQEAACQEwAgVwAAkhMAIFgAAJETACD7BgAA7wsAIAfhBQAA7QoAMOIFAADUAwAQ4wUAAO0KADDkBQEAtAkAIeoFQAC2CQAh6wVAALYJACH7BgEAtQkAIQMAAABfACABAADTAwAwVgAA1AMAIAMAAABfACABAABjADACAABkACABAAAAWwAgAQAAAFsAIAMAAABZACABAABaADACAABbACADAAAAWQAgAQAAWgAwAgAAWwAgAwAAAFkAIAEAAFoAMAIAAFsAIAkUAAD9DgAgGwAA4BAAIB4AAP4OACDkBQEAAAAB6AUBAAAAAeoFQAAAAAHrBUAAAAAB-QYBAAAAAfoGAQAAAAEBTAAA3AMAIAbkBQEAAAAB6AUBAAAAAeoFQAAAAAHrBUAAAAAB-QYBAAAAAfoGAQAAAAEBTAAA3gMAMAkUAAD6DgAgGwAA3xAAIB4AAPsOACDkBQEA8wsAIegFAQD0CwAh6gVAAPULACHrBUAA9QsAIfkGAQD0CwAh-gYBAPQLACECAAAAWwAgTAAA4AMAIAbkBQEA8wsAIegFAQD0CwAh6gVAAPULACHrBUAA9QsAIfkGAQD0CwAh-gYBAPQLACECAAAAWQAgTAAA4gMAIAMAAABbACBRAADcAwAgUgAA4AMAIAEAAABbACABAAAAWQAgBgQAAI0TACBXAACPEwAgWAAAjhMAIOgFAADvCwAg-QYAAO8LACD6BgAA7wsAIAnhBQAA7AoAMOIFAADoAwAQ4wUAAOwKADDkBQEAtAkAIegFAQC1CQAh6gVAALYJACHrBUAAtgkAIfkGAQC1CQAh-gYBALUJACEDAAAAWQAgAQAA5wMAMFYAAOgDACADAAAAWQAgAQAAWgAwAgAAWwAgAQAAAD8AIAEAAAA_ACADAAAAPQAgAQAAPgAwAgAAPwAgAwAAAD0AIAEAAD4AMAIAAD8AIAMAAAA9ACABAAA-ADACAAA_ACAIEwAAjBMAIBQAAPoSACDkBQEAAAAB6AUBAAAAAeoFQAAAAAHrBUAAAAAB1gYBAAAAAdsGAAAA-QYCAUwAAPADACAG5AUBAAAAAegFAQAAAAHqBUAAAAAB6wVAAAAAAdYGAQAAAAHbBgAAAPkGAgFMAADyAwAwCBMAAIsTACAUAAD4EgAg5AUBAPMLACHoBQEA8wsAIeoFQAD1CwAh6wVAAPULACHWBgEA8wsAIdsGAAD2EvkGIgIAAAA_ACBMAAD0AwAgBuQFAQDzCwAh6AUBAPMLACHqBUAA9QsAIesFQAD1CwAh1gYBAPMLACHbBgAA9hL5BiICAAAAPQAgTAAA9gMAIAMAAAA_ACBRAADwAwAgUgAA9AMAIAEAAAA_ACABAAAAPQAgAwQAAIgTACBXAACKEwAgWAAAiRMAIAnhBQAA6AoAMOIFAAD8AwAQ4wUAAOgKADDkBQEAtAkAIegFAQC0CQAh6gVAALYJACHrBUAAtgkAIdYGAQC0CQAh2wYAAOkK-QYiAwAAAD0AIAEAAPsDADBWAAD8AwAgAwAAAD0AIAEAAD4AMAIAAD8AIBEDAADiCgAgFQAA4woAIBYAAOQKACAhAADlCgAgIgAA5goAICMAAOcKACDhBQAA4AoAMOIFAACCBAAQ4wUAAOAKADDkBQEAAAAB5QUBAMMJACHqBUAAxQkAIesFQADFCQAhjgYAAMMK7wYirQYBAAAAAfYGAADhCvYGIvcGAQDECQAhAQAAAP8DACABAAAA_wMAIBEDAADiCgAgFQAA4woAIBYAAOQKACAhAADlCgAgIgAA5goAICMAAOcKACDhBQAA4AoAMOIFAACCBAAQ4wUAAOAKADDkBQEAwwkAIeUFAQDDCQAh6gVAAMUJACHrBUAAxQkAIY4GAADDCu8GIq0GAQDDCQAh9gYAAOEK9gYi9wYBAMQJACEIAwAAgRMAIBUAAIITACAWAACDEwAgIQAAhBMAICIAAIUTACAjAACGEwAg9wYAAO8LACCgBwAAhxMAIAMAAACCBAAgAQAAgwQAMAIAAP8DACADAAAAggQAIAEAAIMEADACAAD_AwAgAwAAAIIEACABAACDBAAwAgAA_wMAIA4DAAD7EgAgFQAA_BIAIBYAAP0SACAhAAD-EgAgIgAA_xIAICMAAIATACDkBQEAAAAB5QUBAAAAAeoFQAAAAAHrBUAAAAABjgYAAADvBgKtBgEAAAAB9gYAAAD2BgL3BgEAAAABAUwAAIcEACAI5AUBAAAAAeUFAQAAAAHqBUAAAAAB6wVAAAAAAY4GAAAA7wYCrQYBAAAAAfYGAAAA9gYC9wYBAAAAAQFMAACJBAAwDgMAAPERACAVAADyEQAgFgAA8xEAICEAAPQRACAiAAD1EQAgIwAA9hEAIOQFAQDzCwAh5QUBAPMLACHqBUAA9QsAIesFQAD1CwAhjgYAALUR7wYirQYBAPMLACH2BgAA8BH2BiL3BgEA9AsAIQIAAAD_AwAgTAAAiwQAIAjkBQEA8wsAIeUFAQDzCwAh6gVAAPULACHrBUAA9QsAIY4GAAC1Ee8GIq0GAQDzCwAh9gYAAPAR9gYi9wYBAPQLACECAAAAggQAIEwAAI0EACADAAAA_wMAIFEAAIcEACBSAACLBAAgAQAAAP8DACABAAAAggQAIAQEAADtEQAgVwAA7xEAIFgAAO4RACD3BgAA7wsAIAvhBQAA3AoAMOIFAACTBAAQ4wUAANwKADDkBQEAtAkAIeUFAQC0CQAh6gVAALYJACHrBUAAtgkAIY4GAAC_Cu8GIq0GAQC0CQAh9gYAAN0K9gYi9wYBALUJACEDAAAAggQAIAEAAJIEADBWAACTBAAgAwAAAIIEACABAACDBAAwAgAA_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_AQAIAMDAADSEQAgPgAA0xEAIKAHAADUEQAgAwAAANMBACABAAD_BAAwAgAA_AQAIAMAAADTAQAgAQAA_wQAMAIAAPwEACADAAAA0wEAIAEAAP8EADACAAD8BAAgCAMAANARACA-AADREQAg5AUBAAAAAeUFAQAAAAHqBUAAAAAB6wVAAAAAAY4GAAAA7wYCrQYBAAAAAQFMAACDBQAgBuQFAQAAAAHlBQEAAAAB6gVAAAAAAesFQAAAAAGOBgAAAO8GAq0GAQAAAAEBTAAAhQUAMAgDAAC2EQAgPgAAtxEAIOQFAQDzCwAh5QUBAPMLACHqBUAA9QsAIesFQAD1CwAhjgYAALUR7wYirQYBAPMLACECAAAA_AQAIEwAAIcFACAG5AUBAPMLACHlBQEA8wsAIeoFQAD1CwAh6wVAAPULACGOBgAAtRHvBiKtBgEA8wsAIQIAAADTAQAgTAAAiQUAIAMAAAD8BAAgUQAAgwUAIFIAAIcFACABAAAA_AQAIAEAAADTAQAgAwQAALIRACBXAAC0EQAgWAAAsxEAIAnhBQAAvgoAMOIFAACPBQAQ4wUAAL4KADDkBQEAtAkAIeUFAQC0CQAh6gVAALYJACHrBUAAtgkAIY4GAAC_Cu8GIq0GAQC0CQAhAwAAANMBACABAACOBQAwVgAAjwUAIAMAAADTAQAgAQAA_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_w8AINIGAADvCwAgCuEFAACZCgAw4gUAALUGABDjBQAAmQoAMOQFAQC0CQAh5QUBALQJACHqBUAAtgkAIesFQAC2CQAhtwYBALQJACHRBgEAtAkAIdIGAQC1CQAhAwAAAK8BACABAAC0BgAwVgAAtQYAIAMAAACvAQAgAQAAtQEAMAIAALYBACABAAAADwAgAQAAAA8AIAMAAAANACABAAAOADACAAAPACADAAAADQAgAQAADgAwAgAADwAgAwAAAA0AIAEAAA4AMAIAAA8AIBIQAADiDgAgFAAA4A4AICgAAP0PACBCAADeDgAgQwAA3w4AIEQAAOEOACDkBQEAAAAB5QUBAAAAAegFAQAAAAHpBQEAAAAB6gVAAAAAAesFQAAAAAGOBgAAAM0GAsoGAQAAAAHLBgEAAAABzgYAAADOBgLPBgEAAAAB0AYBAAAAAQFMAAC9BgAgDOQFAQAAAAHlBQEAAAAB6AUBAAAAAekFAQAAAAHqBUAAAAAB6wVAAAAAAY4GAAAAzQYCygYBAAAAAcsGAQAAAAHOBgAAAM4GAs8GAQAAAAHQBgEAAAABAUwAAL8GADASEAAAwQ4AIBQAAL8OACAoAAD8DwAgQgAAvQ4AIEMAAL4OACBEAADADgAg5AUBAPMLACHlBQEA8wsAIegFAQDzCwAh6QUBAPMLACHqBUAA9QsAIesFQAD1CwAhjgYAALoOzQYiygYBAPQLACHLBgEA9AsAIc4GAAC7Ds4GIs8GAQD0CwAh0AYBAPQLACECAAAADwAgTAAAwQYAIAzkBQEA8wsAIeUFAQDzCwAh6AUBAPMLACHpBQEA8wsAIeoFQAD1CwAh6wVAAPULACGOBgAAug7NBiLKBgEA9AsAIcsGAQD0CwAhzgYAALsOzgYizwYBAPQLACHQBgEA9AsAIQIAAAANACBMAADDBgAgAwAAAA8AIFEAAL0GACBSAADBBgAgAQAAAA8AIAEAAAANACAHBAAA-Q8AIFcAAPsPACBYAAD6DwAgygYAAO8LACDLBgAA7wsAIM8GAADvCwAg0AYAAO8LACAP4QUAAJIKADDiBQAAyQYAEOMFAACSCgAw5AUBALQJACHlBQEAtAkAIegFAQC0CQAh6QUBALQJACHqBUAAtgkAIesFQAC2CQAhjgYAAJMKzQYiygYBALUJACHLBgEAtQkAIc4GAACUCs4GIs8GAQC1CQAh0AYBALUJACEDAAAADQAgAQAAyAYAMFYAAMkGACADAAAADQAgAQAADgAwAgAADwAgAQAAABsAIAEAAAAbACADAAAAGQAgAQAAGgAwAgAAGwAgAwAAABkAIAEAABoAMAIAABsAIAMAAAAZACABAAAaADACAAAbACAVCQAAuQ0AIAoAALoNACALAAD4DQAgDAAAuw0AIDYAALwNACDkBQEAAAAB5QUBAAAAAeYFAQAAAAHnBQEAAAAB6gVAAAAAAesFQAAAAAHsBUAAAAAB_AUBAAAAAf0FAQAAAAH-BQEAAAAB_wUQAAAAAbcGAQAAAAHEBiAAAAABxwYAAADHBgLIBgEAAAAByQYBAAAAAQFMAADRBgAgEOQFAQAAAAHlBQEAAAAB5gUBAAAAAecFAQAAAAHqBUAAAAAB6wVAAAAAAewFQAAAAAH8BQEAAAAB_QUBAAAAAf4FAQAAAAH_BRAAAAABtwYBAAAAAcQGIAAAAAHHBgAAAMcGAsgGAQAAAAHJBgEAAAABAUwAANMGADAVCQAAqw0AIAoAAKwNACALAAD2DQAgDAAArQ0AIDYAAK4NACDkBQEA8wsAIeUFAQDzCwAh5gUBAPQLACHnBQEA9AsAIeoFQAD1CwAh6wVAAPULACHsBUAA9gsAIfwFAQD0CwAh_QUBAPQLACH-BQEA9AsAIf8FEACpDQAhtwYBAPQLACHEBiAAmg0AIccGAACoDccGIsgGAQDzCwAhyQYBAPMLACECAAAAGwAgTAAA1QYAIBDkBQEA8wsAIeUFAQDzCwAh5gUBAPQLACHnBQEA9AsAIeoFQAD1CwAh6wVAAPULACHsBUAA9gsAIfwFAQD0CwAh_QUBAPQLACH-BQEA9AsAIf8FEACpDQAhtwYBAPQLACHEBiAAmg0AIccGAACoDccGIsgGAQDzCwAhyQYBAPMLACECAAAAGQAgTAAA1wYAIAMAAAAbACBRAADRBgAgUgAA1QYAIAEAAAAbACABAAAAGQAgDQQAAPQPACBXAAD3DwAgWAAA9g8AIJ8BAAD1DwAgoAEAAPgPACDmBQAA7wsAIOcFAADvCwAg7AUAAO8LACD8BQAA7wsAIP0FAADvCwAg_gUAAO8LACD_BQAA7wsAILcGAADvCwAgE-EFAACLCgAw4gUAAN0GABDjBQAAiwoAMOQFAQC0CQAh5QUBALQJACHmBQEAtQkAIecFAQC1CQAh6gVAALYJACHrBUAAtgkAIewFQAC3CQAh_AUBALUJACH9BQEAtQkAIf4FAQC1CQAh_wUQAI0KACG3BgEAtQkAIcQGIAD-CQAhxwYAAIwKxwYiyAYBALQJACHJBgEAtAkAIQMAAAAZACABAADcBgAwVgAA3QYAIAMAAAAZACABAAAaADACAAAbACABAAAAFwAgAQAAABcAIAMAAAAVACABAAAWADACAAAXACADAAAAFQAgAQAAFgAwAgAAFwAgAwAAABUAIAEAABYAMAIAABcAIA0IAAC-DQAgKAAAvw0AIDgAAK8OACDkBQEAAAAB5QUBAAAAAeYFAQAAAAHnBQEAAAAB6QUBAAAAAeoFQAAAAAHrBUAAAAAB7AVAAAAAAcQGIAAAAAHFBgEAAAABAUwAAOUGACAK5AUBAAAAAeUFAQAAAAHmBQEAAAAB5wUBAAAAAekFAQAAAAHqBUAAAAAB6wVAAAAAAewFQAAAAAHEBiAAAAABxQYBAAAAAQFMAADnBgAwDQgAAJwNACAoAACdDQAgOAAArQ4AIOQFAQDzCwAh5QUBAPMLACHmBQEA9AsAIecFAQD0CwAh6QUBAPQLACHqBUAA9QsAIesFQAD1CwAh7AVAAPYLACHEBiAAmg0AIcUGAQD0CwAhAgAAABcAIEwAAOkGACAK5AUBAPMLACHlBQEA8wsAIeYFAQD0CwAh5wUBAPQLACHpBQEA9AsAIeoFQAD1CwAh6wVAAPULACHsBUAA9gsAIcQGIACaDQAhxQYBAPQLACECAAAAFQAgTAAA6wYAIAMAAAAXACBRAADlBgAgUgAA6QYAIAEAAAAXACABAAAAFQAgCAQAAPEPACBXAADzDwAgWAAA8g8AIOYFAADvCwAg5wUAAO8LACDpBQAA7wsAIOwFAADvCwAgxQYAAO8LACAN4QUAAIoKADDiBQAA8QYAEOMFAACKCgAw5AUBALQJACHlBQEAtAkAIeYFAQC1CQAh5wUBALUJACHpBQEAtQkAIeoFQAC2CQAh6wVAALYJACHsBUAAtwkAIcQGIAD-CQAhxQYBALUJACEDAAAAFQAgAQAA8AYAMFYAAPEGACADAAAAFQAgAQAAFgAwAgAAFwAgCQgAAIcKACDhBQAAiQoAMOIFAAD3BgAQ4wUAAIkKADDkBQEAAAAB5QUBAMMJACHqBUAAxQkAIesFQADFCQAhrQYBAAAAAQEAAAD0BgAgAQAAAPQGACAJCAAAhwoAIOEFAACJCgAw4gUAAPcGABDjBQAAiQoAMOQFAQDDCQAh5QUBAMMJACHqBUAAxQkAIesFQADFCQAhrQYBAMMJACECCAAA4A8AIKAHAADwDwAgAwAAAPcGACABAAD4BgAwAgAA9AYAIAMAAAD3BgAgAQAA-AYAMAIAAPQGACADAAAA9wYAIAEAAPgGADACAAD0BgAgBggAAO8PACDkBQEAAAAB5QUBAAAAAeoFQAAAAAHrBUAAAAABrQYBAAAAAQFMAAD8BgAgBeQFAQAAAAHlBQEAAAAB6gVAAAAAAesFQAAAAAGtBgEAAAABAUwAAP4GADAGCAAA5Q8AIOQFAQDzCwAh5QUBAPMLACHqBUAA9QsAIesFQAD1CwAhrQYBAPMLACECAAAA9AYAIEwAAIAHACAF5AUBAPMLACHlBQEA8wsAIeoFQAD1CwAh6wVAAPULACGtBgEA8wsAIQIAAAD3BgAgTAAAggcAIAMAAAD0BgAgUQAA_AYAIFIAAIAHACABAAAA9AYAIAEAAAD3BgAgAwQAAOIPACBXAADkDwAgWAAA4w8AIAjhBQAAiAoAMOIFAACIBwAQ4wUAAIgKADDkBQEAtAkAIeUFAQC0CQAh6gVAALYJACHrBUAAtgkAIa0GAQC0CQAhAwAAAPcGACABAACHBwAwVgAAiAcAIAMAAAD3BgAgAQAA-AYAMAIAAPQGACANCAAAhwoAIOEFAACDCgAw4gUAAI4HABDjBQAAgwoAMOQFAQAAAAHlBQEAwwkAIeoFQADFCQAh6wVAAMUJACGRBgAAhQrCBiKtBgEAAAABwAYQAIQKACHCBiAAhgoAIcMGIACGCgAhAQAAAIsHACABAAAAiwcAIA0IAACHCgAg4QUAAIMKADDiBQAAjgcAEOMFAACDCgAw5AUBAMMJACHlBQEAwwkAIeoFQADFCQAh6wVAAMUJACGRBgAAhQrCBiKtBgEAwwkAIcAGEACECgAhwgYgAIYKACHDBiAAhgoAIQIIAADgDwAgoAcAAOEPACADAAAAjgcAIAEAAI8HADACAACLBwAgAwAAAI4HACABAACPBwAwAgAAiwcAIAMAAACOBwAgAQAAjwcAMAIAAIsHACAKCAAA3w8AIOQFAQAAAAHlBQEAAAAB6gVAAAAAAesFQAAAAAGRBgAAAMIGAq0GAQAAAAHABhAAAAABwgYgAAAAAcMGIAAAAAEBTAAAkwcAIAnkBQEAAAAB5QUBAAAAAeoFQAAAAAHrBUAAAAABkQYAAADCBgKtBgEAAAABwAYQAAAAAcIGIAAAAAHDBiAAAAABAUwAAJUHADAKCAAA1Q8AIOQFAQDzCwAh5QUBAPMLACHqBUAA9QsAIesFQAD1CwAhkQYAANQPwgYirQYBAPMLACHABhAAggwAIcIGIACaDQAhwwYgAJoNACECAAAAiwcAIEwAAJcHACAJ5AUBAPMLACHlBQEA8wsAIeoFQAD1CwAh6wVAAPULACGRBgAA1A_CBiKtBgEA8wsAIcAGEACCDAAhwgYgAJoNACHDBiAAmg0AIQIAAACOBwAgTAAAmQcAIAMAAACLBwAgUQAAkwcAIFIAAJcHACABAAAAiwcAIAEAAACOBwAgBQQAAM8PACBXAADSDwAgWAAA0Q8AIJ8BAADQDwAgoAEAANMPACAM4QUAAPwJADDiBQAAnwcAEOMFAAD8CQAw5AUBALQJACHlBQEAtAkAIeoFQAC2CQAh6wVAALYJACGRBgAA_QnCBiKtBgEAtAkAIcAGEADJCQAhwgYgAP4JACHDBiAA_gkAIQMAAACOBwAgAQAAngcAMFYAAJ8HACADAAAAjgcAIAEAAI8HADACAACLBwAgB-EFAAD7CQAw4gUAAKUHABDjBQAA-wkAMOQFAgAAAAHlBQEAwwkAIb4GAQDDCQAhvwZAAMUJACEBAAAAogcAIAEAAACiBwAgB-EFAAD7CQAw4gUAAKUHABDjBQAA-wkAMOQFAgDiCQAh5QUBAMMJACG-BgEAwwkAIb8GQADFCQAhAaAHAADODwAgAwAAAKUHACABAACmBwAwAgAAogcAIAMAAAClBwAgAQAApgcAMAIAAKIHACADAAAApQcAIAEAAKYHADACAACiBwAgBOQFAgAAAAHlBQEAAAABvgYBAAAAAb8GQAAAAAEBTAAAqgcAIATkBQIAAAAB5QUBAAAAAb4GAQAAAAG_BkAAAAABAUwAAKwHADAE5AUCALwMACHlBQEA8wsAIb4GAQDzCwAhvwZAAPULACECAAAAogcAIEwAAK4HACAE5AUCALwMACHlBQEA8wsAIb4GAQDzCwAhvwZAAPULACECAAAApQcAIEwAALAHACADAAAAogcAIFEAAKoHACBSAACuBwAgAQAAAKIHACABAAAApQcAIAUEAADJDwAgVwAAzA8AIFgAAMsPACCfAQAAyg8AIKABAADNDwAgB-EFAAD6CQAw4gUAALYHABDjBQAA-gkAMOQFAgDVCQAh5QUBALQJACG-BgEAtAkAIb8GQAC2CQAhAwAAAKUHACABAAC1BwAwVgAAtgcAIAMAAAClBwAgAQAApgcAMAIAAKIHACAMDgAA9wkAIA8AAPgJACAQAAD5CQAg4QUAAPQJADDiBQAAJwAQ4wUAAPQJADDkBQEAAAAB6gVAAMUJACHrBUAAxQkAIewFQADGCQAhkQYAAPYJvgYivAYgAPUJACEBAAAAuQcAIAEAAAC5BwAgBg4AAMUPACAPAADGDwAgEAAAxw8AIOwFAADvCwAgvAYAAO8LACCgBwAAyA8AIAMAAAAnACABAAC8BwAwAgAAuQcAIAMAAAAnACABAAC8BwAwAgAAuQcAIAMAAAAnACABAAC8BwAwAgAAuQcAIAkOAADCDwAgDwAAww8AIBAAAMQPACDkBQEAAAAB6gVAAAAAAesFQAAAAAHsBUAAAAABkQYAAAC-BgK8BiAAAAABAUwAAMAHACAG5AUBAAAAAeoFQAAAAAHrBUAAAAAB7AVAAAAAAZEGAAAAvgYCvAYgAAAAAQFMAADCBwAwCQ4AAKwPACAPAACtDwAgEAAArg8AIOQFAQDzCwAh6gVAAPULACHrBUAA9QsAIewFQAD2CwAhkQYAAKsPvgYivAYgAKoPACECAAAAuQcAIEwAAMQHACAG5AUBAPMLACHqBUAA9QsAIesFQAD1CwAh7AVAAPYLACGRBgAAqw--BiK8BiAAqg8AIQIAAAAnACBMAADGBwAgAwAAALkHACBRAADABwAgUgAAxAcAIAEAAAC5BwAgAQAAACcAIAUEAACnDwAgVwAAqQ8AIFgAAKgPACDsBQAA7wsAILwGAADvCwAgCeEFAADtCQAw4gUAAMwHABDjBQAA7QkAMOQFAQC0CQAh6gVAALYJACHrBUAAtgkAIewFQAC3CQAhkQYAAO8JvgYivAYgAO4JACEDAAAAJwAgAQAAywcAMFYAAMwHACADAAAAJwAgAQAAvAcAMAIAALkHACABAAAAuwEAIAEAAAC7AQAgAwAAACkAIAEAALoBADACAAC7AQAgAwAAACkAIAEAALoBADACAAC7AQAgAwAAACkAIAEAALoBADACAAC7AQAgCgwAAKYPACANAADtDQAgsQYBAAAAAbQGAQAAAAG2BgEAAAABtwYBAAAAAbgGAQAAAAG5BgEAAAABugYBAAAAAbsGAQAAAAEBTAAA1AcAIAixBgEAAAABtAYBAAAAAbYGAQAAAAG3BgEAAAABuAYBAAAAAbkGAQAAAAG6BgEAAAABuwYBAAAAAQFMAADWBwAwCgwAAKUPACANAADrDQAgsQYBAPMLACG0BgEA9AsAIbYGAQDzCwAhtwYBAPMLACG4BgEA8wsAIbkGAQDzCwAhugYBAPMLACG7BgEA8wsAIQIAAAC7AQAgTAAA2AcAIAixBgEA8wsAIbQGAQD0CwAhtgYBAPMLACG3BgEA8wsAIbgGAQDzCwAhuQYBAPMLACG6BgEA8wsAIbsGAQDzCwAhAgAAACkAIEwAANoHACADAAAAuwEAIFEAANQHACBSAADYBwAgAQAAALsBACABAAAAKQAgBAQAAKIPACBXAACkDwAgWAAAow8AILQGAADvCwAgC-EFAADsCQAw4gUAAOAHABDjBQAA7AkAMLEGAQC0CQAhtAYBALUJACG2BgEAtAkAIbcGAQC0CQAhuAYBALQJACG5BgEAtAkAIboGAQC0CQAhuwYBALQJACEDAAAAKQAgAQAA3wcAMFYAAOAHACADAAAAKQAgAQAAugEAMAIAALsBACABAAAAvgEAIAEAAAC-AQAgAwAAACsAIAEAAL0BADACAAC-AQAgAwAAACsAIAEAAL0BADACAAC-AQAgAwAAACsAIAEAAL0BADACAAC-AQAgCAwAAKEPACANAADfDQAg5QUBAAAAAbEGAQAAAAG0BgEAAAABtQYBAAAAAbYGAQAAAAG3BgEAAAABAUwAAOgHACAG5QUBAAAAAbEGAQAAAAG0BgEAAAABtQYBAAAAAbYGAQAAAAG3BgEAAAABAUwAAOoHADAIDAAAoA8AIA0AAN0NACDlBQEA8wsAIbEGAQDzCwAhtAYBAPMLACG1BgEA9AsAIbYGAQDzCwAhtwYBAPMLACECAAAAvgEAIEwAAOwHACAG5QUBAPMLACGxBgEA8wsAIbQGAQDzCwAhtQYBAPQLACG2BgEA8wsAIbcGAQDzCwAhAgAAACsAIEwAAO4HACADAAAAvgEAIFEAAOgHACBSAADsBwAgAQAAAL4BACABAAAAKwAgBAQAAJ0PACBXAACfDwAgWAAAng8AILUGAADvCwAgCeEFAADrCQAw4gUAAPQHABDjBQAA6wkAMOUFAQC0CQAhsQYBALQJACG0BgEAtAkAIbUGAQC1CQAhtgYBALQJACG3BgEAtAkAIQMAAAArACABAADzBwAwVgAA9AcAIAMAAAArACABAAC9AQAwAgAAvgEAIAoHAADpCQAgOQAA6gkAIOEFAADoCQAw4gUAAK0BABDjBQAA6AkAMOQFAQAAAAHlBQEAwwkAIeoFQADFCQAh6wVAAMUJACGtBgEAxAkAIQEAAAD3BwAgAQAAAPcHACAEBwAAmg8AIDkAAJsPACCtBgAA7wsAIKAHAACcDwAgAwAAAK0BACABAAD6BwAwAgAA9wcAIAMAAACtAQAgAQAA-gcAMAIAAPcHACADAAAArQEAIAEAAPoHADACAAD3BwAgBwcAAJgPACA5AACZDwAg5AUBAAAAAeUFAQAAAAHqBUAAAAAB6wVAAAAAAa0GAQAAAAEBTAAA_gcAIAXkBQEAAAAB5QUBAAAAAeoFQAAAAAHrBUAAAAABrQYBAAAAAQFMAACACAAwBwcAAI4NACA5AACPDQAg5AUBAPMLACHlBQEA8wsAIeoFQAD1CwAh6wVAAPULACGtBgEA9AsAIQIAAAD3BwAgTAAAgggAIAXkBQEA8wsAIeUFAQDzCwAh6gVAAPULACHrBUAA9QsAIa0GAQD0CwAhAgAAAK0BACBMAACECAAgAwAAAPcHACBRAAD-BwAgUgAAgggAIAEAAAD3BwAgAQAAAK0BACAEBAAAiw0AIFcAAI0NACBYAACMDQAgrQYAAO8LACAI4QUAAOcJADDiBQAAiggAEOMFAADnCQAw5AUBALQJACHlBQEAtAkAIeoFQAC2CQAh6wVAALYJACGtBgEAtQkAIQMAAACtAQAgAQAAiQgAMFYAAIoIACADAAAArQEAIAEAAPoHADACAAD3BwAgAQAAAC8AIAEAAAAvACADAAAALQAgAQAALgAwAgAALwAgAwAAAC0AIAEAAC4AMAIAAC8AIAMAAAAtACABAAAuADACAAAvACASDQAAhQ0AICQAAIcNACAlAACGDQAgLgAAiA0AIDAAAIkNACAzAACKDQAg5AUBAAAAAeoFQAAAAAHrBUAAAAABpgYQAAAAAagGAQAAAAGtBgEAAAABrgYCAAAAAa8GQAAAAAGwBoAAAAABsQYBAAAAAbIGAQAAAAGzBgEAAAABAUwAAJIIACAM5AUBAAAAAeoFQAAAAAHrBUAAAAABpgYQAAAAAagGAQAAAAGtBgEAAAABrgYCAAAAAa8GQAAAAAGwBoAAAAABsQYBAAAAAbIGAQAAAAGzBgEAAAABAUwAAJQIADASDQAA5QwAICQAAOcMACAlAADmDAAgLgAA6AwAIDAAAOkMACAzAADqDAAg5AUBAPMLACHqBUAA9QsAIesFQAD1CwAhpgYQAIIMACGoBgEA9AsAIa0GAQDzCwAhrgYCALwMACGvBkAA9QsAIbAGgAAAAAGxBgEA9AsAIbIGAQDzCwAhswYBAPMLACECAAAALwAgTAAAlggAIAzkBQEA8wsAIeoFQAD1CwAh6wVAAPULACGmBhAAggwAIagGAQD0CwAhrQYBAPMLACGuBgIAvAwAIa8GQAD1CwAhsAaAAAAAAbEGAQD0CwAhsgYBAPMLACGzBgEA8wsAIQIAAAAtACBMAACYCAAgAwAAAC8AIFEAAJIIACBSAACWCAAgAQAAAC8AIAEAAAAtACAIBAAA4AwAIFcAAOMMACBYAADiDAAgnwEAAOEMACCgAQAA5AwAIKgGAADvCwAgsAYAAO8LACCxBgAA7wsAIA_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_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_ggAIAnkBQEA8wsAIeYFAQD0CwAh6gVAAPULACGABgEA8wsAIYEGAQDzCwAhggYBAPMLACGDBkAA9QsAIYQGAQD0CwAhhQYBAPMLACECAAAAnQEAIEwAAIAJACADAAAA8wgAIFEAAPoIACBSAAD-CAAgAQAAAPMIACABAAAAnQEAIAUEAAChDAAgVwAAowwAIFgAAKIMACDmBQAA7wsAIIQGAADvCwAgDOEFAADMCQAw4gUAAIYJABDjBQAAzAkAMOQFAQC0CQAh5gUBALUJACHqBUAAtgkAIYAGAQC0CQAhgQYBALQJACGCBgEAtAkAIYMGQAC2CQAhhAYBALUJACGFBgEAtAkAIQMAAACdAQAgAQAAhQkAMFYAAIYJACADAAAAnQEAIAEAAPYIADACAADzCAAgAQAAAKcBACABAAAApwEAIAMAAACiAQAgAQAApgEAMAIAAKcBACADAAAAogEAIAEAAKYBADACAACnAQAgAwAAAKIBACABAACmAQAwAgAApwEAIA8JAQAAAAELAACgDAAgNgAAlgwAIOQFAQAAAAHlBQEAAAAB5gUBAAAAAegFAQAAAAHpBQEAAAAB6gVAAAAAAesFQAAAAAHsBUAAAAAB_AUBAAAAAf0FAQAAAAH-BQEAAAAB_wUQAAAAAQFMAACOCQAgDQkBAAAAAeQFAQAAAAHlBQEAAAAB5gUBAAAAAegFAQAAAAHpBQEAAAAB6gVAAAAAAesFQAAAAAHsBUAAAAAB_AUBAAAAAf0FAQAAAAH-BQEAAAAB_wUQAAAAAQFMAACQCQAwDwkBAPMLACELAACfDAAgNgAAhAwAIOQFAQDzCwAh5QUBAPMLACHmBQEA9AsAIegFAQDzCwAh6QUBAPMLACHqBUAA9QsAIesFQAD1CwAh7AVAAPYLACH8BQEA9AsAIf0FAQD0CwAh_gUBAPQLACH_BRAAggwAIQIAAACnAQAgTAAAkgkAIA0JAQDzCwAh5AUBAPMLACHlBQEA8wsAIeYFAQD0CwAh6AUBAPMLACHpBQEA8wsAIeoFQAD1CwAh6wVAAPULACHsBUAA9gsAIfwFAQD0CwAh_QUBAPQLACH-BQEA9AsAIf8FEACCDAAhAgAAAKIBACBMAACUCQAgAwAAAKcBACBRAACOCQAgUgAAkgkAIAEAAACnAQAgAQAAAKIBACAKBAAAmgwAIFcAAJ0MACBYAACcDAAgnwEAAJsMACCgAQAAngwAIOYFAADvCwAg7AUAAO8LACD8BQAA7wsAIP0FAADvCwAg_gUAAO8LACAQCQEAtAkAIeEFAADICQAw4gUAAJoJABDjBQAAyAkAMOQFAQC0CQAh5QUBALQJACHmBQEAtQkAIegFAQC0CQAh6QUBALQJACHqBUAAtgkAIesFQAC2CQAh7AVAALcJACH8BQEAtQkAIf0FAQC1CQAh_gUBALUJACH_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_CQAg7QUBAAAAAe4FAQAAAAXvBQEAAAAF8AUBAAAAAfEFAQAAAAHyBQEAAAAB8wUBAAAAAfQFAQC-CQAh9QUBAAAAAfYFAQAAAAH3BQEAAAAB-AUBAAAAAQztBQEAAAAB7gUBAAAABe8FAQAAAAXwBQEAAAAB8QUBAAAAAfIFAQAAAAHzBQEAAAAB9AUBAL8JACH1BQEAAAAB9gUBAAAAAfcFAQAAAAH4BQEAAAABDwQAALwJACBXAADBCQAgWAAAwQkAIO0FAQAAAAHuBQEAAAAE7wUBAAAABPAFAQAAAAHxBQEAAAAB8gUBAAAAAfMFAQAAAAH0BQEAwAkAIfUFAQAAAAH2BQEAAAAB9wUBAAAAAfgFAQAAAAEM7QUBAAAAAe4FAQAAAATvBQEAAAAE8AUBAAAAAfEFAQAAAAHyBQEAAAAB8wUBAAAAAfQFAQDBCQAh9QUBAAAAAfYFAQAAAAH3BQEAAAAB-AUBAAAAAQ01AADHCQAg4QUAAMIJADDiBQAApAEAEOMFAADCCQAw5AUBAMMJACHlBQEAwwkAIeYFAQDECQAh5wUBAMQJACHoBQEAwwkAIekFAQDDCQAh6gVAAMUJACHrBUAAxQkAIewFQADGCQAhDO0FAQAAAAHuBQEAAAAE7wUBAAAABPAFAQAAAAHxBQEAAAAB8gUBAAAAAfMFAQAAAAH0BQEAwQkAIfUFAQAAAAH2BQEAAAAB9wUBAAAAAfgFAQAAAAEM7QUBAAAAAe4FAQAAAAXvBQEAAAAF8AUBAAAAAfEFAQAAAAHyBQEAAAAB8wUBAAAAAfQFAQC_CQAh9QUBAAAAAfYFAQAAAAH3BQEAAAAB-AUBAAAAAQjtBUAAAAAB7gVAAAAABO8FQAAAAATwBUAAAAAB8QVAAAAAAfIFQAAAAAHzBUAAAAAB9AVAAL0JACEI7QVAAAAAAe4FQAAAAAXvBUAAAAAF8AVAAAAAAfEFQAAAAAHyBUAAAAAB8wVAAAAAAfQFQAC6CQAhA_kFAACiAQAg-gUAAKIBACD7BQAAogEAIBAJAQC0CQAh4QUAAMgJADDiBQAAmgkAEOMFAADICQAw5AUBALQJACHlBQEAtAkAIeYFAQC1CQAh6AUBALQJACHpBQEAtAkAIeoFQAC2CQAh6wVAALYJACHsBUAAtwkAIfwFAQC1CQAh_QUBALUJACH-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_kFAAARACD6BQAAEQAg-wUAABEAIAP5BQAAFQAg-gUAABUAIPsFAAAVACAJ4QUAAOsJADDiBQAA9AcAEOMFAADrCQAw5QUBALQJACGxBgEAtAkAIbQGAQC0CQAhtQYBALUJACG2BgEAtAkAIbcGAQC0CQAhC-EFAADsCQAw4gUAAOAHABDjBQAA7AkAMLEGAQC0CQAhtAYBALUJACG2BgEAtAkAIbcGAQC0CQAhuAYBALQJACG5BgEAtAkAIboGAQC0CQAhuwYBALQJACEJ4QUAAO0JADDiBQAAzAcAEOMFAADtCQAw5AUBALQJACHqBUAAtgkAIesFQAC2CQAh7AVAALcJACGRBgAA7wm-BiK8BiAA7gkAIQUEAAC5CQAgVwAA8wkAIFgAAPMJACDtBSAAAAAB9AUgAPIJACEHBAAAvAkAIFcAAPEJACBYAADxCQAg7QUAAAC-BgLuBQAAAL4GCO8FAAAAvgYI9AUAAPAJvgYiBwQAALwJACBXAADxCQAgWAAA8QkAIO0FAAAAvgYC7gUAAAC-BgjvBQAAAL4GCPQFAADwCb4GIgTtBQAAAL4GAu4FAAAAvgYI7wUAAAC-Bgj0BQAA8Qm-BiIFBAAAuQkAIFcAAPMJACBYAADzCQAg7QUgAAAAAfQFIADyCQAhAu0FIAAAAAH0BSAA8wkAIQwOAAD3CQAgDwAA-AkAIBAAAPkJACDhBQAA9AkAMOIFAAAnABDjBQAA9AkAMOQFAQDDCQAh6gVAAMUJACHrBUAAxQkAIewFQADGCQAhkQYAAPYJvgYivAYgAPUJACEC7QUgAAAAAfQFIADzCQAhBO0FAAAAvgYC7gUAAAC-BgjvBQAAAL4GCPQFAADxCb4GIg8MAAD0CgAgDQAAkwsAIOEFAACVCwAw4gUAACkAEOMFAACVCwAwsQYBAMMJACG0BgEAxAkAIbYGAQDDCQAhtwYBAMMJACG4BgEAwwkAIbkGAQDDCQAhugYBAMMJACG7BgEAwwkAIZUHAAApACCWBwAAKQAgDQwAAPQKACANAACTCwAg4QUAAJILADDiBQAAKwAQ4wUAAJILADDlBQEAwwkAIbEGAQDDCQAhtAYBAMMJACG1BgEAxAkAIbYGAQDDCQAhtwYBAMMJACGVBwAAKwAglgcAACsAIAP5BQAALQAg-gUAAC0AIPsFAAAtACAH4QUAAPoJADDiBQAAtgcAEOMFAAD6CQAw5AUCANUJACHlBQEAtAkAIb4GAQC0CQAhvwZAALYJACEH4QUAAPsJADDiBQAApQcAEOMFAAD7CQAw5AUCAOIJACHlBQEAwwkAIb4GAQDDCQAhvwZAAMUJACEM4QUAAPwJADDiBQAAnwcAEOMFAAD8CQAw5AUBALQJACHlBQEAtAkAIeoFQAC2CQAh6wVAALYJACGRBgAA_QnCBiKtBgEAtAkAIcAGEADJCQAhwgYgAP4JACHDBiAA_gkAIQcEAAC8CQAgVwAAggoAIFgAAIIKACDtBQAAAMIGAu4FAAAAwgYI7wUAAADCBgj0BQAAgQrCBiIFBAAAvAkAIFcAAIAKACBYAACACgAg7QUgAAAAAfQFIAD_CQAhBQQAALwJACBXAACACgAgWAAAgAoAIO0FIAAAAAH0BSAA_wkAIQLtBSAAAAAB9AUgAIAKACEHBAAAvAkAIFcAAIIKACBYAACCCgAg7QUAAADCBgLuBQAAAMIGCO8FAAAAwgYI9AUAAIEKwgYiBO0FAAAAwgYC7gUAAADCBgjvBQAAAMIGCPQFAACCCsIGIg0IAACHCgAg4QUAAIMKADDiBQAAjgcAEOMFAACDCgAw5AUBAMMJACHlBQEAwwkAIeoFQADFCQAh6wVAAMUJACGRBgAAhQrCBiKtBgEAwwkAIcAGEACECgAhwgYgAIYKACHDBiAAhgoAIQjtBRAAAAAB7gUQAAAABO8FEAAAAATwBRAAAAAB8QUQAAAAAfIFEAAAAAHzBRAAAAAB9AUQAMsJACEE7QUAAADCBgLuBQAAAMIGCO8FAAAAwgYI9AUAAIIKwgYiAu0FIAAAAAH0BSAAgAoAIQP5BQAAGQAg-gUAABkAIPsFAAAZACAI4QUAAIgKADDiBQAAiAcAEOMFAACICgAw5AUBALQJACHlBQEAtAkAIeoFQAC2CQAh6wVAALYJACGtBgEAtAkAIQkIAACHCgAg4QUAAIkKADDiBQAA9wYAEOMFAACJCgAw5AUBAMMJACHlBQEAwwkAIeoFQADFCQAh6wVAAMUJACGtBgEAwwkAIQ3hBQAAigoAMOIFAADxBgAQ4wUAAIoKADDkBQEAtAkAIeUFAQC0CQAh5gUBALUJACHnBQEAtQkAIekFAQC1CQAh6gVAALYJACHrBUAAtgkAIewFQAC3CQAhxAYgAP4JACHFBgEAtQkAIRPhBQAAiwoAMOIFAADdBgAQ4wUAAIsKADDkBQEAtAkAIeUFAQC0CQAh5gUBALUJACHnBQEAtQkAIeoFQAC2CQAh6wVAALYJACHsBUAAtwkAIfwFAQC1CQAh_QUBALUJACH-BQEAtQkAIf8FEACNCgAhtwYBALUJACHEBiAA_gkAIccGAACMCscGIsgGAQC0CQAhyQYBALQJACEHBAAAvAkAIFcAAJEKACBYAACRCgAg7QUAAADHBgLuBQAAAMcGCO8FAAAAxwYI9AUAAJAKxwYiDQQAALkJACBXAACPCgAgWAAAjwoAIJ8BAACPCgAgoAEAAI8KACDtBRAAAAAB7gUQAAAABe8FEAAAAAXwBRAAAAAB8QUQAAAAAfIFEAAAAAHzBRAAAAAB9AUQAI4KACENBAAAuQkAIFcAAI8KACBYAACPCgAgnwEAAI8KACCgAQAAjwoAIO0FEAAAAAHuBRAAAAAF7wUQAAAABfAFEAAAAAHxBRAAAAAB8gUQAAAAAfMFEAAAAAH0BRAAjgoAIQjtBRAAAAAB7gUQAAAABe8FEAAAAAXwBRAAAAAB8QUQAAAAAfIFEAAAAAHzBRAAAAAB9AUQAI8KACEHBAAAvAkAIFcAAJEKACBYAACRCgAg7QUAAADHBgLuBQAAAMcGCO8FAAAAxwYI9AUAAJAKxwYiBO0FAAAAxwYC7gUAAADHBgjvBQAAAMcGCPQFAACRCscGIg_hBQAAkgoAMOIFAADJBgAQ4wUAAJIKADDkBQEAtAkAIeUFAQC0CQAh6AUBALQJACHpBQEAtAkAIeoFQAC2CQAh6wVAALYJACGOBgAAkwrNBiLKBgEAtQkAIcsGAQC1CQAhzgYAAJQKzgYizwYBALUJACHQBgEAtQkAIQcEAAC8CQAgVwAAmAoAIFgAAJgKACDtBQAAAM0GAu4FAAAAzQYI7wUAAADNBgj0BQAAlwrNBiIHBAAAvAkAIFcAAJYKACBYAACWCgAg7QUAAADOBgLuBQAAAM4GCO8FAAAAzgYI9AUAAJUKzgYiBwQAALwJACBXAACWCgAgWAAAlgoAIO0FAAAAzgYC7gUAAADOBgjvBQAAAM4GCPQFAACVCs4GIgTtBQAAAM4GAu4FAAAAzgYI7wUAAADOBgj0BQAAlgrOBiIHBAAAvAkAIFcAAJgKACBYAACYCgAg7QUAAADNBgLuBQAAAM0GCO8FAAAAzQYI9AUAAJcKzQYiBO0FAAAAzQYC7gUAAADNBgjvBQAAAM0GCPQFAACYCs0GIgrhBQAAmQoAMOIFAAC1BgAQ4wUAAJkKADDkBQEAtAkAIeUFAQC0CQAh6gVAALYJACHrBUAAtgkAIbcGAQC0CQAh0QYBALQJACHSBgEAtQkAIQzhBQAAmgoAMOIFAAChBgAQ4wUAAJoKADDkBQEAtAkAIeUFAQC0CQAh6gVAALYJACHrBUAAtgkAIZcGAQC0CQAhtAYBALQJACHFBgEAtAkAIdMGAQC0CQAh1AYBALQJACEJ4QUAAJsKADDiBQAAjQYAEOMFAACbCgAw5QUBALQJACHqBUAAtgkAIesFQAC2CQAh1AYBALQJACHVBgEAtAkAIdYGAQC0CQAhC-EFAACcCgAw4gUAAPkFABDjBQAAnAoAMOoFQAC2CQAh6wVAALYJACG4BgEAtAkAIbkGAQC0CQAhuwYBALQJACHUBgEAtAkAIdYGAQC0CQAh1wYBALQJACEI4QUAAJ0KADDiBQAA5QUAEOMFAACdCgAw5AUBALQJACHqBUAAtgkAIesFQAC2CQAhjgYAAJ8K2gYikQYAAJ4K2QYiBwQAALwJACBXAACjCgAgWAAAowoAIO0FAAAA2QYC7gUAAADZBgjvBQAAANkGCPQFAACiCtkGIgcEAAC8CQAgVwAAoQoAIFgAAKEKACDtBQAAANoGAu4FAAAA2gYI7wUAAADaBgj0BQAAoAraBiIHBAAAvAkAIFcAAKEKACBYAAChCgAg7QUAAADaBgLuBQAAANoGCO8FAAAA2gYI9AUAAKAK2gYiBO0FAAAA2gYC7gUAAADaBgjvBQAAANoGCPQFAAChCtoGIgcEAAC8CQAgVwAAowoAIFgAAKMKACDtBQAAANkGAu4FAAAA2QYI7wUAAADZBgj0BQAAogrZBiIE7QUAAADZBgLuBQAAANkGCO8FAAAA2QYI9AUAAKMK2QYiDQMAAKcKACAHAADpCQAgDgAAqQoAIA8AAKoKACASAACoCgAg4QUAAKQKADDiBQAA1AUAEOMFAACkCgAw5AUBAMMJACHqBUAAxQkAIesFQADFCQAhjgYAAKYK2gYikQYAAKUK2QYiBO0FAAAA2QYC7gUAAADZBgjvBQAAANkGCPQFAACjCtkGIgTtBQAAANoGAu4FAAAA2gYI7wUAAADaBgj0BQAAoQraBiID-QUAADIAIPoFAAAyACD7BQAAMgAgA_kFAAA3ACD6BQAANwAg-wUAADcAIA8RAADACwAgEwAArwsAIOEFAADDCwAw4gUAADsAEOMFAADDCwAw6gVAAMUJACHrBUAAxQkAIbgGAQDDCQAhuQYBAMMJACG7BgEAwwkAIdQGAQDDCQAh1gYBAMMJACHXBgEAwwkAIZUHAAA7ACCWBwAAOwAgDREAAMALACATAACvCwAg4QUAAL8LADDiBQAARAAQ4wUAAL8LADDlBQEAwwkAIeoFQADFCQAh6wVAAMUJACHUBgEAwwkAIdUGAQDDCQAh1gYBAMMJACGVBwAARAAglgcAAEQAIAnhBQAAqwoAMOIFAADOBQAQ4wUAAKsKADDkBQEAtAkAIegFAQC0CQAh6gVAALYJACHrBUAAtgkAIdQGAQC0CQAh2wYAAKwK2wYiBwQAALwJACBXAACuCgAgWAAArgoAIO0FAAAA2wYC7gUAAADbBgjvBQAAANsGCPQFAACtCtsGIgcEAAC8CQAgVwAArgoAIFgAAK4KACDtBQAAANsGAu4FAAAA2wYI7wUAAADbBgj0BQAArQrbBiIE7QUAAADbBgLuBQAAANsGCO8FAAAA2wYI9AUAAK4K2wYiDeEFAACvCgAw4gUAALoFABDjBQAArwoAMOQFAQC0CQAh6gVAALYJACHrBUAAtgkAIagGAADYCQAg3AYBALQJACHdBgEAtAkAId4GIAD-CQAh4AYAALAK4AYi4gYAALEK4gYi4wZAALYJACEHBAAAvAkAIFcAALUKACBYAAC1CgAg7QUAAADgBgLuBQAAAOAGCO8FAAAA4AYI9AUAALQK4AYiBwQAALwJACBXAACzCgAgWAAAswoAIO0FAAAA4gYC7gUAAADiBgjvBQAAAOIGCPQFAACyCuIGIgcEAAC8CQAgVwAAswoAIFgAALMKACDtBQAAAOIGAu4FAAAA4gYI7wUAAADiBgj0BQAAsgriBiIE7QUAAADiBgLuBQAAAOIGCO8FAAAA4gYI9AUAALMK4gYiBwQAALwJACBXAAC1CgAgWAAAtQoAIO0FAAAA4AYC7gUAAADgBgjvBQAAAOAGCPQFAAC0CuAGIgTtBQAAAOAGAu4FAAAA4AYI7wUAAADgBgj0BQAAtQrgBiIN4QUAALYKADDiBQAAqQUAEOMFAAC2CgAw5AUBAMMJACHqBUAAxQkAIesFQADFCQAhqAYAALkKACDcBgEAwwkAId0GAQDDCQAh3gYgAIYKACHgBgAAtwrgBiLiBgAAuAriBiLjBkAAxQkAIQTtBQAAAOAGAu4FAAAA4AYI7wUAAADgBgj0BQAAtQrgBiIE7QUAAADiBgLuBQAAAOIGCO8FAAAA4gYI9AUAALMK4gYiDO0FgAAAAAHwBYAAAAAB8QWAAAAAAfIFgAAAAAHzBYAAAAAB9AWAAAAAAZgGAQAAAAGZBgEAAAABmgYBAAAAAZsGgAAAAAGcBoAAAAABnQaAAAAAARRAAQC0CQAhQgEAtAkAIeEFAAC6CgAw4gUAAKMFABDjBQAAugoAMOoFQAC2CQAh6wVAALYJACHKBgEAtAkAIdQGAQC0CQAh3QYBALQJACHiBgEAtAkAIeQGAQC0CQAh5QYBALQJACHnBgAAuwrnBiLoBgEAtAkAIekGAQC0CQAh6gYBALQJACHrBgEAtQkAIewGAQC1CQAh7QYBALUJACEHBAAAvAkAIFcAAL0KACBYAAC9CgAg7QUAAADnBgLuBQAAAOcGCO8FAAAA5wYI9AUAALwK5wYiBwQAALwJACBXAAC9CgAgWAAAvQoAIO0FAAAA5wYC7gUAAADnBgjvBQAAAOcGCPQFAAC8CucGIgTtBQAAAOcGAu4FAAAA5wYI7wUAAADnBgj0BQAAvQrnBiIJ4QUAAL4KADDiBQAAjwUAEOMFAAC-CgAw5AUBALQJACHlBQEAtAkAIeoFQAC2CQAh6wVAALYJACGOBgAAvwrvBiKtBgEAtAkAIQcEAAC8CQAgVwAAwQoAIFgAAMEKACDtBQAAAO8GAu4FAAAA7wYI7wUAAADvBgj0BQAAwArvBiIHBAAAvAkAIFcAAMEKACBYAADBCgAg7QUAAADvBgLuBQAAAO8GCO8FAAAA7wYI9AUAAMAK7wYiBO0FAAAA7wYC7gUAAADvBgjvBQAAAO8GCPQFAADBCu8GIgsDAADECgAgPgAAxQoAIOEFAADCCgAw4gUAANMBABDjBQAAwgoAMOQFAQDDCQAh5QUBAMMJACHqBUAAxQkAIesFQADFCQAhjgYAAMMK7wYirQYBAMMJACEE7QUAAADvBgLuBQAAAO8GCO8FAAAA7wYI9AUAAMEK7wYiA_kFAAAIACD6BQAACAAg-wUAAAgAIAP5BQAADQAg-gUAAA0AIPsFAAANACAJ4QUAAMYKADDiBQAA-QQAEOMFAADGCgAw5AUBALQJACHoBQEAtAkAIeoFQAC2CQAh6wVAALYJACHQBgEAtAkAIdsGAADHCvAGIgcEAAC8CQAgVwAAyQoAIFgAAMkKACDtBQAAAPAGAu4FAAAA8AYI7wUAAADwBgj0BQAAyArwBiIHBAAAvAkAIFcAAMkKACBYAADJCgAg7QUAAADwBgLuBQAAAPAGCO8FAAAA8AYI9AUAAMgK8AYiBO0FAAAA8AYC7gUAAADwBgjvBQAAAPAGCPQFAADJCvAGIgfhBQAAygoAMOIFAADlBAAQ4wUAAMoKADDkBQEAtAkAIdsGAADLCvEGIvEGAQC0CQAh8gYBALQJACEHBAAAvAkAIFcAAM0KACBYAADNCgAg7QUAAADxBgLuBQAAAPEGCO8FAAAA8QYI9AUAAMwK8QYiBwQAALwJACBXAADNCgAgWAAAzQoAIO0FAAAA8QYC7gUAAADxBgjvBQAAAPEGCPQFAADMCvEGIgTtBQAAAPEGAu4FAAAA8QYI7wUAAADxBgj0BQAAzQrxBiIH4QUAAM4KADDiBQAA0QQAEOMFAADOCgAw5AUBALQJACHpBQEAtAkAIdsGAADPCvQGIvIGAQC0CQAhBwQAALwJACBXAADRCgAgWAAA0QoAIO0FAAAA9AYC7gUAAAD0BgjvBQAAAPQGCPQFAADQCvQGIgcEAAC8CQAgVwAA0QoAIFgAANEKACDtBQAAAPQGAu4FAAAA9AYI7wUAAAD0Bgj0BQAA0Ar0BiIE7QUAAAD0BgLuBQAAAPQGCO8FAAAA9AYI9AUAANEK9AYiB-EFAADSCgAw4gUAAL0EABDjBQAA0goAMOQFAQC0CQAhswYBALQJACHbBgAA0wr1BiLyBgEAtAkAIQcEAAC8CQAgVwAA1QoAIFgAANUKACDtBQAAAPUGAu4FAAAA9QYI7wUAAAD1Bgj0BQAA1Ar1BiIHBAAAvAkAIFcAANUKACBYAADVCgAg7QUAAAD1BgLuBQAAAPUGCO8FAAAA9QYI9AUAANQK9QYiBO0FAAAA9QYC7gUAAAD1BgjvBQAAAPUGCPQFAADVCvUGIgXhBQAA1goAMOIFAACpBAAQ4wUAANYKADDkBQEAtAkAIbIGAQC0CQAhCSUAANgKACAnAADZCgAgKQAA2goAICsAANsKACDhBQAA1woAMOIFAAB9ABDjBQAA1woAMOQFAQDDCQAhsgYBAMMJACEREAAA-QkAIBEAAMALACAUAADGCwAgJAAAywsAICYAAMwLACAsAAC0CwAg4QUAAMkLADDiBQAAMgAQ4wUAAMkLADDkBQEAwwkAIegFAQDDCQAh6gVAAMUJACHrBUAAxQkAIdQGAQDDCQAh2wYAAMoL2wYilQcAADIAIJYHAAAyACAD-QUAAH8AIPoFAAB_ACD7BQAAfwAgA_kFAACDAQAg-gUAAIMBACD7BQAAgwEAIAP5BQAAhwEAIPoFAACHAQAg-wUAAIcBACAL4QUAANwKADDiBQAAkwQAEOMFAADcCgAw5AUBALQJACHlBQEAtAkAIeoFQAC2CQAh6wVAALYJACGOBgAAvwrvBiKtBgEAtAkAIfYGAADdCvYGIvcGAQC1CQAhBwQAALwJACBXAADfCgAgWAAA3woAIO0FAAAA9gYC7gUAAAD2BgjvBQAAAPYGCPQFAADeCvYGIgcEAAC8CQAgVwAA3woAIFgAAN8KACDtBQAAAPYGAu4FAAAA9gYI7wUAAAD2Bgj0BQAA3gr2BiIE7QUAAAD2BgLuBQAAAPYGCO8FAAAA9gYI9AUAAN8K9gYiEQMAAOIKACAVAADjCgAgFgAA5AoAICEAAOUKACAiAADmCgAgIwAA5woAIOEFAADgCgAw4gUAAIIEABDjBQAA4AoAMOQFAQDDCQAh5QUBAMMJACHqBUAAxQkAIesFQADFCQAhjgYAAMMK7wYirQYBAMMJACH2BgAA4Qr2BiL3BgEAxAkAIQTtBQAAAPYGAu4FAAAA9gYI7wUAAAD2Bgj0BQAA3wr2BiID-QUAAD0AIPoFAAA9ACD7BQAAPQAgA_kFAAA7ACD6BQAAOwAg-wUAADsAIAP5BQAARAAg-gUAAEQAIPsFAABEACAD-QUAAEgAIPoFAABIACD7BQAASAAgA_kFAABhACD6BQAAYQAg-wUAAGEAIAP5BQAAbgAg-gUAAG4AIPsFAABuACAJ4QUAAOgKADDiBQAA_AMAEOMFAADoCgAw5AUBALQJACHoBQEAtAkAIeoFQAC2CQAh6wVAALYJACHWBgEAtAkAIdsGAADpCvkGIgcEAAC8CQAgVwAA6woAIFgAAOsKACDtBQAAAPkGAu4FAAAA-QYI7wUAAAD5Bgj0BQAA6gr5BiIHBAAAvAkAIFcAAOsKACBYAADrCgAg7QUAAAD5BgLuBQAAAPkGCO8FAAAA-QYI9AUAAOoK-QYiBO0FAAAA-QYC7gUAAAD5BgjvBQAAAPkGCPQFAADrCvkGIgnhBQAA7AoAMOIFAADoAwAQ4wUAAOwKADDkBQEAtAkAIegFAQC1CQAh6gVAALYJACHrBUAAtgkAIfkGAQC1CQAh-gYBALUJACEH4QUAAO0KADDiBQAA1AMAEOMFAADtCgAw5AUBALQJACHqBUAAtgkAIesFQAC2CQAh-wYBALUJACEK4QUAAO4KADDiBQAAwAMAEOMFAADuCgAw5AUBALQJACHqBUAAtgkAIesFQAC2CQAh1gYBALQJACH8BkAAtgkAIf0GAQC0CQAh_gYCANUJACEJ4QUAAO8KADDiBQAArAMAEOMFAADvCgAw5AUBALQJACHqBUAAtgkAIesFQAC2CQAh-wYBALQJACH_BkAAtgkAIYAHAQC1CQAhCuEFAADwCgAw4gUAAJgDABDjBQAA8AoAMOQFAQC0CQAh6gVAALYJACHrBUAAtgkAIdYGAQC0CQAh_AZAALYJACH9BgEAtAkAIf4GAgDVCQAhCuEFAADxCgAw4gUAAIQDABDjBQAA8QoAMOQFAQC0CQAh6gVAALYJACHrBUAAtgkAIbcGAQC0CQAh_wZAALYJACGBB0AAtgkAIYIHAQC0CQAhDgwAAPQKACAYAADzCgAgGQAA9QoAIB8AAPYKACDhBQAA8goAMOIFAABQABDjBQAA8goAMOQFAQDDCQAh6gVAAMUJACHrBUAAxQkAIbcGAQDDCQAh_wZAAMUJACGBB0AAxQkAIYIHAQDDCQAhDBcAALsLACAaAAC2CwAg4QUAALoLADDiBQAATAAQ4wUAALoLADDkBQEAwwkAIeoFQADFCQAh6wVAAMUJACH7BgEAwwkAIYMHAgDiCQAhlQcAAEwAIJYHAABMACAWCAAAhwoAIBEAAMALACAbAAC2CwAgOAAA4QsAIDoAAOILACA7AADbCgAgPAAA4wsAID0AAOQLACDhBQAA4AsAMOIFAAARABDjBQAA4AsAMOQFAQDDCQAh5QUBAMMJACHqBUAAxQkAIesFQADFCQAhlwYBAMMJACG0BgEAwwkAIcUGAQDDCQAh0wYBAMMJACHUBgEAwwkAIZUHAAARACCWBwAAEQAgA_kFAABSACD6BQAAUgAg-wUAAFIAIAP5BQAAWQAg-gUAAFkAIPsFAABZACAI4QUAAPcKADDiBQAA7gIAEOMFAAD3CgAw5AUBALQJACHqBUAAtgkAIesFQAC2CQAh-wYBALQJACGDBwIA1QkAIQrhBQAA-AoAMOIFAADaAgAQ4wUAAPgKADDkBQEAtAkAIeoFQAC2CQAh6wVAALYJACHWBgEAtAkAIfwGQAC2CQAh_QYBALQJACH-BgIA1QkAIQnhBQAA-QoAMOIFAADGAgAQ4wUAAPkKADDkBQEAtAkAIeUFAQC0CQAh6gVAALYJACHrBUAAtgkAIegGAQC1CQAhhAcBALQJACEH4QUAAPoKADDiBQAAsgIAEOMFAAD6CgAw5AUBALQJACHlBQEAtAkAIeoFQAC2CQAh6wVAALYJACEIEgAA_AoAIOEFAAD7CgAw4gUAAKECABDjBQAA-woAMOQFAQDDCQAh5QUBAMMJACHqBUAAxQkAIesFQADFCQAhA_kFAADLAQAg-gUAAMsBACD7BQAAywEAIAjhBQAA_QoAMOIFAACbAgAQ4wUAAP0KADDkBQEAtAkAIY4GAAD-CogHIpEGAAD_CokHIoUHAQC0CQAhhgcBALQJACEHBAAAvAkAIFcAAIMLACBYAACDCwAg7QUAAACIBwLuBQAAAIgHCO8FAAAAiAcI9AUAAIILiAciBwQAALwJACBXAACBCwAgWAAAgQsAIO0FAAAAiQcC7gUAAACJBwjvBQAAAIkHCPQFAACAC4kHIgcEAAC8CQAgVwAAgQsAIFgAAIELACDtBQAAAIkHAu4FAAAAiQcI7wUAAACJBwj0BQAAgAuJByIE7QUAAACJBwLuBQAAAIkHCO8FAAAAiQcI9AUAAIELiQciBwQAALwJACBXAACDCwAgWAAAgwsAIO0FAAAAiAcC7gUAAACIBwjvBQAAAIgHCPQFAACCC4gHIgTtBQAAAIgHAu4FAAAAiAcI7wUAAACIBwj0BQAAgwuIByIMBgAAhwsAICUAAIoLACBFAACICwAgRgAAiQsAIOEFAACECwAw4gUAAIoCABDjBQAAhAsAMOQFAQDDCQAhjgYAAIULiAcikQYAAIYLiQcihQcBAMMJACGGBwEAwwkAIQTtBQAAAIgHAu4FAAAAiAcI7wUAAACIBwj0BQAAgwuIByIE7QUAAACJBwLuBQAAAIkHCO8FAAAAiQcI9AUAAIELiQciDAUAAO4LACAUAADGCwAg4QUAAO0LADDiBQAAAwAQ4wUAAO0LADDkBQEAwwkAIegFAQDDCQAh6gVAAMUJACHrBUAAxQkAIYkHAQDDCQAhlQcAAAMAIJYHAAADACANFAAAxgsAIEMAAOwLACDhBQAA6gsAMOIFAAAIABDjBQAA6gsAMOQFAQDDCQAh6AUBAMMJACHqBUAAxQkAIesFQADFCQAh0AYBAMMJACHbBgAA6wvwBiKVBwAACAAglgcAAAgAIA0TAACvCwAgFAAAxgsAIOEFAADECwAw4gUAAD0AEOMFAADECwAw5AUBAMMJACHoBQEAwwkAIeoFQADFCQAh6wVAAMUJACHWBgEAwwkAIdsGAADFC_kGIpUHAAA9ACCWBwAAPQAgERAAAPkJACARAADACwAgFAAAxgsAICQAAMsLACAmAADMCwAgLAAAtAsAIOEFAADJCwAw4gUAADIAEOMFAADJCwAw5AUBAMMJACHoBQEAwwkAIeoFQADFCQAh6wVAAMUJACHUBgEAwwkAIdsGAADKC9sGIpUHAAAyACCWBwAAMgAgCuEFAACLCwAw4gUAAIQCABDjBQAAiwsAMOQFAQC0CQAh6gVAALYJACHrBUAAtgkAIbgGAQC0CQAhuQYBALQJACG7BgEAtAkAIdcGAQC1CQAhCwMAAI0LACDhBQAAjAsAMOIFAADzAQAQ4wUAAIwLADDkBQEAwwkAIeoFQADFCQAh6wVAAMUJACG4BgEAwwkAIbkGAQDDCQAhuwYBAMMJACHXBgEAxAkAIQP5BQAAAwAg-gUAAAMAIPsFAAADACAI4QUAAI4LADDiBQAA7QEAEOMFAACOCwAw5AUBALQJACHoBQEAtAkAIeoFQAC2CQAh6wVAALYJACGJBwEAtAkAIQtAAACQCwAgQQAAxQoAIOEFAACPCwAw4gUAAMsBABDjBQAAjwsAMOQFAQDDCQAh5QUBAMMJACHqBUAAxQkAIesFQADFCQAh6AYBAMQJACGEBwEAwwkAIQoSAAD8CgAg4QUAAPsKADDiBQAAoQIAEOMFAAD7CgAw5AUBAMMJACHlBQEAwwkAIeoFQADFCQAh6wVAAMUJACGVBwAAoQIAIJYHAAChAgAgArQGAQAAAAG3BgEAAAABCwwAAPQKACANAACTCwAg4QUAAJILADDiBQAAKwAQ4wUAAJILADDlBQEAwwkAIbEGAQDDCQAhtAYBAMMJACG1BgEAxAkAIbYGAQDDCQAhtwYBAMMJACEODgAA9wkAIA8AAPgJACAQAAD5CQAg4QUAAPQJADDiBQAAJwAQ4wUAAPQJADDkBQEAwwkAIeoFQADFCQAh6wVAAMUJACHsBUAAxgkAIZEGAAD2Cb4GIrwGIAD1CQAhlQcAACcAIJYHAAAnACACtwYBAAAAAboGAQAAAAENDAAA9AoAIA0AAJMLACDhBQAAlQsAMOIFAAApABDjBQAAlQsAMLEGAQDDCQAhtAYBAMQJACG2BgEAwwkAIbcGAQDDCQAhuAYBAMMJACG5BgEAwwkAIboGAQDDCQAhuwYBAMMJACEODAAA9AoAIDkAAOoJACA-AADFCgAgPwAA2goAIOEFAACWCwAw4gUAAK8BABDjBQAAlgsAMOQFAQDDCQAh5QUBAMMJACHqBUAAxQkAIesFQADFCQAhtwYBAMMJACHRBgEAwwkAIdIGAQDECQAhEgkBAMMJACELAACYCwAgNgAAmQsAIOEFAACXCwAw4gUAAKIBABDjBQAAlwsAMOQFAQDDCQAh5QUBAMMJACHmBQEAxAkAIegFAQDDCQAh6QUBAMMJACHqBUAAxQkAIesFQADFCQAh7AVAAMYJACH8BQEAxAkAIf0FAQDECQAh_gUBAMQJACH_BRAAhAoAIQ81AADHCQAg4QUAAMIJADDiBQAApAEAEOMFAADCCQAw5AUBAMMJACHlBQEAwwkAIeYFAQDECQAh5wUBAMQJACHoBQEAwwkAIekFAQDDCQAh6gVAAMUJACHrBUAAxQkAIewFQADGCQAhlQcAAKQBACCWBwAApAEAIAP5BQAAIwAg-gUAACMAIPsFAAAjACALLQAA4wkAIDIAAJwLACDhBQAAmgsAMOIFAACZAQAQ4wUAAJoLADDkBQEAwwkAIeoFQADFCQAhhwYQAIQKACGJBgAAmwuJBiKKBkAAxQkAIYsGAQDDCQAhBO0FAAAAiQYC7gUAAACJBgjvBQAAAIkGCPQFAADTCYkGIg8xAADPCQAg4QUAAM4JADDiBQAAnQEAEOMFAADOCQAw5AUBAMMJACHmBQEAxAkAIeoFQADFCQAhgAYBAMMJACGBBgEAwwkAIYIGAQDDCQAhgwZAAMUJACGEBgEAxAkAIYUGAQDDCQAhlQcAAJ0BACCWBwAAnQEAIAKMBgIAAAABlwYBAAAAARAuAAChCwAg4QUAAJ4LADDiBQAAkwEAEOMFAACeCwAw5AUBAMMJACHqBUAAxQkAIYwGAgDiCQAhjgYAAJ8LjgYijwYBAMQJACGRBgAAoAuRBiKSBgAAuQoAIJMGAAC5CgAglAYBAMQJACGVBkAAxgkAIZYGQADGCQAhlwYBAMMJACEE7QUAAACOBgLuBQAAAI4GCO8FAAAAjgYI9AUAAN0JjgYiBO0FAAAAkQYC7gUAAACRBgjvBQAAAJEGCPQFAADbCZEGIg0tAADjCQAgLwAA5AkAIOEFAADhCQAw4gUAAJEBABDjBQAA4QkAMOQFAQDDCQAh6gVAAMUJACHrBUAAxQkAIYsGAQDDCQAhngYCAOIJACGfBkAAxgkAIZUHAACRAQAglgcAAJEBACAC8QYBAAAAAfIGAQAAAAEJJgAApQsAICoAAPQKACDhBQAAowsAMOIFAACHAQAQ4wUAAKMLADDkBQEAwwkAIdsGAACkC_EGIvEGAQDDCQAh8gYBAMMJACEE7QUAAADxBgLuBQAAAPEGCO8FAAAA8QYI9AUAAM0K8QYiCyUAANgKACAnAADZCgAgKQAA2goAICsAANsKACDhBQAA1woAMOIFAAB9ABDjBQAA1woAMOQFAQDDCQAhsgYBAMMJACGVBwAAfQAglgcAAH0AIALpBQEAAAAB8gYBAAAAAQkmAAClCwAgKAAAqQsAIOEFAACnCwAw4gUAAIMBABDjBQAApwsAMOQFAQDDCQAh6QUBAMMJACHbBgAAqAv0BiLyBgEAwwkAIQTtBQAAAPQGAu4FAAAA9AYI7wUAAAD0Bgj0BQAA0Qr0BiIQDAAA9AoAIDkAAOoJACA-AADFCgAgPwAA2goAIOEFAACWCwAw4gUAAK8BABDjBQAAlgsAMOQFAQDDCQAh5QUBAMMJACHqBUAAxQkAIesFQADFCQAhtwYBAMMJACHRBgEAwwkAIdIGAQDECQAhlQcAAK8BACCWBwAArwEAIAKzBgEAAAAB8gYBAAAAAQkkAACtCwAgJgAApQsAIOEFAACrCwAw4gUAAH8AEOMFAACrCwAw5AUBAMMJACGzBgEAwwkAIdsGAACsC_UGIvIGAQDDCQAhBO0FAAAA9QYC7gUAAAD1BgjvBQAAAPUGCPQFAADVCvUGIhcQAAD5CQAgFAAA2AoAICgAAKkLACBCAADoCwAgQwAA6QsAIEQAANkKACDhBQAA5QsAMOIFAAANABDjBQAA5QsAMOQFAQDDCQAh5QUBAMMJACHoBQEAwwkAIekFAQDDCQAh6gVAAMUJACHrBUAAxQkAIY4GAADmC80GIsoGAQDECQAhywYBAMQJACHOBgAA5wvOBiLPBgEAxAkAIdAGAQDECQAhlQcAAA0AIJYHAAANACAMEwAArwsAIBkAAPUKACDhBQAArgsAMOIFAABuABDjBQAArgsAMOQFAQDDCQAh6gVAAMUJACHrBUAAxQkAIdYGAQDDCQAh_AZAAMUJACH9BgEAwwkAIf4GAgDiCQAhEwMAAOIKACAVAADjCgAgFgAA5AoAICEAAOUKACAiAADmCgAgIwAA5woAIOEFAADgCgAw4gUAAIIEABDjBQAA4AoAMOQFAQDDCQAh5QUBAMMJACHqBUAAxQkAIesFQADFCQAhjgYAAMMK7wYirQYBAMMJACH2BgAA4Qr2BiL3BgEAxAkAIZUHAACCBAAglgcAAIIEACAMEwAArwsAIBwAALELACDhBQAAsAsAMOIFAABhABDjBQAAsAsAMOQFAQDDCQAh6gVAAMUJACHrBUAAxQkAIdYGAQDDCQAh_AZAAMUJACH9BgEAwwkAIf4GAgDiCQAhA_kFAABfACD6BQAAXwAg-wUAAF8AIAkXAACzCwAgHQAAtAsAIOEFAACyCwAw4gUAAF8AEOMFAACyCwAw5AUBAMMJACHqBUAAxQkAIesFQADFCQAh-wYBAMQJACEOEwAArwsAIBwAALELACDhBQAAsAsAMOIFAABhABDjBQAAsAsAMOQFAQDDCQAh6gVAAMUJACHrBUAAxQkAIdYGAQDDCQAh_AZAAMUJACH9BgEAwwkAIf4GAgDiCQAhlQcAAGEAIJYHAABhACAOFAAAigsAIBsAALYLACAeAAC3CwAg4QUAALULADDiBQAAWQAQ4wUAALULADDkBQEAwwkAIegFAQDECQAh6gVAAMUJACHrBUAAxQkAIfkGAQDECQAh-gYBAMQJACGVBwAAWQAglgcAAFkAIAwUAACKCwAgGwAAtgsAIB4AALcLACDhBQAAtQsAMOIFAABZABDjBQAAtQsAMOQFAQDDCQAh6AUBAMQJACHqBUAAxQkAIesFQADFCQAh-QYBAMQJACH6BgEAxAkAIRAMAAD0CgAgGAAA8woAIBkAAPUKACAfAAD2CgAg4QUAAPIKADDiBQAAUAAQ4wUAAPIKADDkBQEAwwkAIeoFQADFCQAh6wVAAMUJACG3BgEAwwkAIf8GQADFCQAhgQdAAMUJACGCBwEAwwkAIZUHAABQACCWBwAAUAAgCxcAALMLACAdAAC0CwAg4QUAALILADDiBQAAXwAQ4wUAALILADDkBQEAwwkAIeoFQADFCQAh6wVAAMUJACH7BgEAxAkAIZUHAABfACCWBwAAXwAgCxcAALkLACAaAAC2CwAg4QUAALgLADDiBQAAUgAQ4wUAALgLADDkBQEAwwkAIeoFQADFCQAh6wVAAMUJACH7BgEAwwkAIf8GQADFCQAhgAcBAMQJACEOEwAArwsAIBkAAPUKACDhBQAArgsAMOIFAABuABDjBQAArgsAMOQFAQDDCQAh6gVAAMUJACHrBUAAxQkAIdYGAQDDCQAh_AZAAMUJACH9BgEAwwkAIf4GAgDiCQAhlQcAAG4AIJYHAABuACAKFwAAuwsAIBoAALYLACDhBQAAugsAMOIFAABMABDjBQAAugsAMOQFAQDDCQAh6gVAAMUJACHrBUAAxQkAIfsGAQDDCQAhgwcCAOIJACEOEwAArwsAICAAAL0LACDhBQAAvAsAMOIFAABIABDjBQAAvAsAMOQFAQDDCQAh6gVAAMUJACHrBUAAxQkAIdYGAQDDCQAh_AZAAMUJACH9BgEAwwkAIf4GAgDiCQAhlQcAAEgAIJYHAABIACAMEwAArwsAICAAAL0LACDhBQAAvAsAMOIFAABIABDjBQAAvAsAMOQFAQDDCQAh6gVAAMUJACHrBUAAxQkAIdYGAQDDCQAh_AZAAMUJACH9BgEAwwkAIf4GAgDiCQAhA_kFAABMACD6BQAATAAg-wUAAEwAIALVBgEAAAAB1gYBAAAAAQsRAADACwAgEwAArwsAIOEFAAC_CwAw4gUAAEQAEOMFAAC_CwAw5QUBAMMJACHqBUAAxQkAIesFQADFCQAh1AYBAMMJACHVBgEAwwkAIdYGAQDDCQAhDwMAAKcKACAHAADpCQAgDgAAqQoAIA8AAKoKACASAACoCgAg4QUAAKQKADDiBQAA1AUAEOMFAACkCgAw5AUBAMMJACHqBUAAxQkAIesFQADFCQAhjgYAAKYK2gYikQYAAKUK2QYilQcAANQFACCWBwAA1AUAIAK7BgEAAAAB1AYBAAAAAQLWBgEAAAAB1wYBAAAAAQ0RAADACwAgEwAArwsAIOEFAADDCwAw4gUAADsAEOMFAADDCwAw6gVAAMUJACHrBUAAxQkAIbgGAQDDCQAhuQYBAMMJACG7BgEAwwkAIdQGAQDDCQAh1gYBAMMJACHXBgEAwwkAIQsTAACvCwAgFAAAxgsAIOEFAADECwAw4gUAAD0AEOMFAADECwAw5AUBAMMJACHoBQEAwwkAIeoFQADFCQAh6wVAAMUJACHWBgEAwwkAIdsGAADFC_kGIgTtBQAAAPkGAu4FAAAA-QYI7wUAAAD5Bgj0BQAA6wr5BiIOBgAAhwsAICUAAIoLACBFAACICwAgRgAAiQsAIOEFAACECwAw4gUAAIoCABDjBQAAhAsAMOQFAQDDCQAhjgYAAIULiAcikQYAAIYLiQcihQcBAMMJACGGBwEAwwkAIZUHAACKAgAglgcAAIoCACAVEQAAwAsAIEABAMMJACFCAQDDCQAh4QUAAMcLADDiBQAANwAQ4wUAAMcLADDqBUAAxQkAIesFQADFCQAhygYBAMMJACHUBgEAwwkAId0GAQDDCQAh4gYBAMMJACHkBgEAwwkAIeUGAQDDCQAh5wYAAMgL5wYi6AYBAMMJACHpBgEAwwkAIeoGAQDDCQAh6wYBAMQJACHsBgEAxAkAIe0GAQDECQAhBO0FAAAA5wYC7gUAAADnBgjvBQAAAOcGCPQFAAC9CucGIg8QAAD5CQAgEQAAwAsAIBQAAMYLACAkAADLCwAgJgAAzAsAICwAALQLACDhBQAAyQsAMOIFAAAyABDjBQAAyQsAMOQFAQDDCQAh6AUBAMMJACHqBUAAxQkAIesFQADFCQAh1AYBAMMJACHbBgAAygvbBiIE7QUAAADbBgLuBQAAANsGCO8FAAAA2wYI9AUAAK4K2wYiFxAAAPkJACAUAADYCgAgKAAAqQsAIEIAAOgLACBDAADpCwAgRAAA2QoAIOEFAADlCwAw4gUAAA0AEOMFAADlCwAw5AUBAMMJACHlBQEAwwkAIegFAQDDCQAh6QUBAMMJACHqBUAAxQkAIesFQADFCQAhjgYAAOYLzQYiygYBAMQJACHLBgEAxAkAIc4GAADnC84GIs8GAQDECQAh0AYBAMQJACGVBwAADQAglgcAAA0AIAslAADYCgAgJwAA2QoAICkAANoKACArAADbCgAg4QUAANcKADDiBQAAfQAQ4wUAANcKADDkBQEAwwkAIbIGAQDDCQAhlQcAAH0AIJYHAAB9ACACrgYCAAAAAbMGAQAAAAEVDQAAzwsAICQAAK0LACAlAADYCgAgLgAA0AsAIDAAAJkLACAzAADRCwAg4QUAAM4LADDiBQAALQAQ4wUAAM4LADDkBQEAwwkAIeoFQADFCQAh6wVAAMUJACGmBhAAhAoAIagGAQDECQAhrQYBAMMJACGuBgIA4gkAIa8GQADFCQAhsAYAALkKACCxBgEAxAkAIbIGAQDDCQAhswYBAMMJACEODgAA9wkAIA8AAPgJACAQAAD5CQAg4QUAAPQJADDiBQAAJwAQ4wUAAPQJADDkBQEAwwkAIeoFQADFCQAh6wVAAMUJACHsBUAAxgkAIZEGAAD2Cb4GIrwGIAD1CQAhlQcAACcAIJYHAAAnACANLQAA4wkAIC8AAOQJACDhBQAA4QkAMOIFAACRAQAQ4wUAAOEJADDkBQEAwwkAIeoFQADFCQAh6wVAAMUJACGLBgEAwwkAIZ4GAgDiCQAhnwZAAMYJACGVBwAAkQEAIJYHAACRAQAgA_kFAACZAQAg-gUAAJkBACD7BQAAmQEAIBYtAADjCQAgNAAA0wsAIDcAANQLACDhBQAA0gsAMOIFAAAjABDjBQAA0gsAMOQFAQDDCQAh6gVAAMUJACGLBgEAwwkAIaAGEACECgAhoQYBAMMJACGiBgEAwwkAIaMGAQDDCQAhpAYQAIQKACGlBhAAhAoAIaYGEACECgAhpwYQAIQKACGoBgEAxAkAIakGAAC5CgAgqgYAALkKACCrBgEAxAkAIawGAQDECQAhGgkAANgLACAKAADZCwAgCwAA2gsAIAwAANsLACA2AACZCwAg4QUAANULADDiBQAAGQAQ4wUAANULADDkBQEAwwkAIeUFAQDDCQAh5gUBAMQJACHnBQEAxAkAIeoFQADFCQAh6wVAAMUJACHsBUAAxgkAIfwFAQDECQAh_QUBAMQJACH-BQEAxAkAIf8FEADXCwAhtwYBAMQJACHEBiAAhgoAIccGAADWC8cGIsgGAQDDCQAhyQYBAMMJACGVBwAAGQAglgcAABkAIBQJAQDDCQAhCwAAmAsAIDYAAJkLACDhBQAAlwsAMOIFAACiAQAQ4wUAAJcLADDkBQEAwwkAIeUFAQDDCQAh5gUBAMQJACHoBQEAwwkAIekFAQDDCQAh6gVAAMUJACHrBUAAxQkAIewFQADGCQAh_AUBAMQJACH9BQEAxAkAIf4FAQDECQAh_wUQAIQKACGVBwAAogEAIJYHAACiAQAgGAkAANgLACAKAADZCwAgCwAA2gsAIAwAANsLACA2AACZCwAg4QUAANULADDiBQAAGQAQ4wUAANULADDkBQEAwwkAIeUFAQDDCQAh5gUBAMQJACHnBQEAxAkAIeoFQADFCQAh6wVAAMUJACHsBUAAxgkAIfwFAQDECQAh_QUBAMQJACH-BQEAxAkAIf8FEADXCwAhtwYBAMQJACHEBiAAhgoAIccGAADWC8cGIsgGAQDDCQAhyQYBAMMJACEE7QUAAADHBgLuBQAAAMcGCO8FAAAAxwYI9AUAAJEKxwYiCO0FEAAAAAHuBRAAAAAF7wUQAAAABfAFEAAAAAHxBRAAAAAB8gUQAAAAAfMFEAAAAAH0BRAAjwoAIQ8IAACHCgAg4QUAAIMKADDiBQAAjgcAEOMFAACDCgAw5AUBAMMJACHlBQEAwwkAIeoFQADFCQAh6wVAAMUJACGRBgAAhQrCBiKtBgEAwwkAIcAGEACECgAhwgYgAIYKACHDBiAAhgoAIZUHAACOBwAglgcAAI4HACALCAAAhwoAIOEFAACJCgAw4gUAAPcGABDjBQAAiQoAMOQFAQDDCQAh5QUBAMMJACHqBUAAxQkAIesFQADFCQAhrQYBAMMJACGVBwAA9wYAIJYHAAD3BgAgEggAAIcKACAoAADeCwAgOAAA3QsAIOEFAADcCwAw4gUAABUAEOMFAADcCwAw5AUBAMMJACHlBQEAwwkAIeYFAQDECQAh5wUBAMQJACHpBQEAxAkAIeoFQADFCQAh6wVAAMUJACHsBUAAxgkAIcQGIACGCgAhxQYBAMQJACGVBwAAFQAglgcAABUAIBYIAACHCgAgEQAAwAsAIBsAALYLACA4AADhCwAgOgAA4gsAIDsAANsKACA8AADjCwAgPQAA5AsAIOEFAADgCwAw4gUAABEAEOMFAADgCwAw5AUBAMMJACHlBQEAwwkAIeoFQADFCQAh6wVAAMUJACGXBgEAwwkAIbQGAQDDCQAhxQYBAMMJACHTBgEAwwkAIdQGAQDDCQAhlQcAABEAIJYHAAARACAQCAAAhwoAICgAAN4LACA4AADdCwAg4QUAANwLADDiBQAAFQAQ4wUAANwLADDkBQEAwwkAIeUFAQDDCQAh5gUBAMQJACHnBQEAxAkAIekFAQDECQAh6gVAAMUJACHrBUAAxQkAIewFQADGCQAhxAYgAIYKACHFBgEAxAkAIQwHAADpCQAgOQAA6gkAIOEFAADoCQAw4gUAAK0BABDjBQAA6AkAMOQFAQDDCQAh5QUBAMMJACHqBUAAxQkAIesFQADFCQAhrQYBAMQJACGVBwAArQEAIJYHAACtAQAgEAwAAPQKACA5AADqCQAgPgAAxQoAID8AANoKACDhBQAAlgsAMOIFAACvAQAQ4wUAAJYLADDkBQEAwwkAIeUFAQDDCQAh6gVAAMUJACHrBUAAxQkAIbcGAQDDCQAh0QYBAMMJACHSBgEAxAkAIZUHAACvAQAglgcAAK8BACACtAYBAAAAAdQGAQAAAAEUCAAAhwoAIBEAAMALACAbAAC2CwAgOAAA4QsAIDoAAOILACA7AADbCgAgPAAA4wsAID0AAOQLACDhBQAA4AsAMOIFAAARABDjBQAA4AsAMOQFAQDDCQAh5QUBAMMJACHqBUAAxQkAIesFQADFCQAhlwYBAMMJACG0BgEAwwkAIcUGAQDDCQAh0wYBAMMJACHUBgEAwwkAIQwHAADpCQAgOQAA6gkAIOEFAADoCQAw4gUAAK0BABDjBQAA6AkAMOQFAQDDCQAh5QUBAMMJACHqBUAAxQkAIesFQADFCQAhrQYBAMQJACGVBwAArQEAIJYHAACtAQAgA_kFAACvAQAg-gUAAK8BACD7BQAArwEAIAP5BQAAKQAg-gUAACkAIPsFAAApACAD-QUAACsAIPoFAAArACD7BQAAKwAgFRAAAPkJACAUAADYCgAgKAAAqQsAIEIAAOgLACBDAADpCwAgRAAA2QoAIOEFAADlCwAw4gUAAA0AEOMFAADlCwAw5AUBAMMJACHlBQEAwwkAIegFAQDDCQAh6QUBAMMJACHqBUAAxQkAIesFQADFCQAhjgYAAOYLzQYiygYBAMQJACHLBgEAxAkAIc4GAADnC84GIs8GAQDECQAh0AYBAMQJACEE7QUAAADNBgLuBQAAAM0GCO8FAAAAzQYI9AUAAJgKzQYiBO0FAAAAzgYC7gUAAADOBgjvBQAAAM4GCPQFAACWCs4GIg1AAACQCwAgQQAAxQoAIOEFAACPCwAw4gUAAMsBABDjBQAAjwsAMOQFAQDDCQAh5QUBAMMJACHqBUAAxQkAIesFQADFCQAh6AYBAMQJACGEBwEAwwkAIZUHAADLAQAglgcAAMsBACANAwAAxAoAID4AAMUKACDhBQAAwgoAMOIFAADTAQAQ4wUAAMIKADDkBQEAwwkAIeUFAQDDCQAh6gVAAMUJACHrBUAAxQkAIY4GAADDCu8GIq0GAQDDCQAhlQcAANMBACCWBwAA0wEAIAsUAADGCwAgQwAA7AsAIOEFAADqCwAw4gUAAAgAEOMFAADqCwAw5AUBAMMJACHoBQEAwwkAIeoFQADFCQAh6wVAAMUJACHQBgEAwwkAIdsGAADrC_AGIgTtBQAAAPAGAu4FAAAA8AYI7wUAAADwBgj0BQAAyQrwBiINAwAAxAoAID4AAMUKACDhBQAAwgoAMOIFAADTAQAQ4wUAAMIKADDkBQEAwwkAIeUFAQDDCQAh6gVAAMUJACHrBUAAxQkAIY4GAADDCu8GIq0GAQDDCQAhlQcAANMBACCWBwAA0wEAIAoFAADuCwAgFAAAxgsAIOEFAADtCwAw4gUAAAMAEOMFAADtCwAw5AUBAMMJACHoBQEAwwkAIeoFQADFCQAh6wVAAMUJACGJBwEAwwkAIQ0DAACNCwAg4QUAAIwLADDiBQAA8wEAEOMFAACMCwAw5AUBAMMJACHqBUAAxQkAIesFQADFCQAhuAYBAMMJACG5BgEAwwkAIbsGAQDDCQAh1wYBAMQJACGVBwAA8wEAIJYHAADzAQAgAAAAAAGaBwEAAAABAZoHAQAAAAEBmgdAAAAAAQGaB0AAAAABC1EAAPgLADBSAAD9CwAwlwcAAPkLADCYBwAA-gsAMJkHAAD7CwAgmgcAAPwLADCbBwAA_AsAMJwHAAD8CwAwnQcAAPwLADCeBwAA_gsAMJ8HAAD_CwAwDQkBAAAAATYAAJYMACDkBQEAAAAB5QUBAAAAAeYFAQAAAAHoBQEAAAAB6QUBAAAAAeoFQAAAAAHrBUAAAAAB7AVAAAAAAfwFAQAAAAH9BQEAAAAB_wUQAAAAAQIAAACnAQAgUQAAlQwAIAMAAACnAQAgUQAAlQwAIFIAAIMMACABTAAAuhcAMBIJAQAAAAELAACYCwAgNgAAmQsAIOEFAACXCwAw4gUAAKIBABDjBQAAlwsAMOQFAQAAAAHlBQEAwwkAIeYFAQDECQAh6AUBAMMJACHpBQEAwwkAIeoFQADFCQAh6wVAAMUJACHsBUAAxgkAIfwFAQAAAAH9BQEAAAAB_gUBAMQJACH_BRAAhAoAIQIAAACnAQAgTAAAgwwAIAIAAACADAAgTAAAgQwAIBAJAQDDCQAh4QUAAP8LADDiBQAAgAwAEOMFAAD_CwAw5AUBAMMJACHlBQEAwwkAIeYFAQDECQAh6AUBAMMJACHpBQEAwwkAIeoFQADFCQAh6wVAAMUJACHsBUAAxgkAIfwFAQDECQAh_QUBAMQJACH-BQEAxAkAIf8FEACECgAhEAkBAMMJACHhBQAA_wsAMOIFAACADAAQ4wUAAP8LADDkBQEAwwkAIeUFAQDDCQAh5gUBAMQJACHoBQEAwwkAIekFAQDDCQAh6gVAAMUJACHrBUAAxQkAIewFQADGCQAh_AUBAMQJACH9BQEAxAkAIf4FAQDECQAh_wUQAIQKACEMCQEA8wsAIeQFAQDzCwAh5QUBAPMLACHmBQEA9AsAIegFAQDzCwAh6QUBAPMLACHqBUAA9QsAIesFQAD1CwAh7AVAAPYLACH8BQEA9AsAIf0FAQD0CwAh_wUQAIIMACEFmgcQAAAAAaEHEAAAAAGiBxAAAAABowcQAAAAAaQHEAAAAAENCQEA8wsAITYAAIQMACDkBQEA8wsAIeUFAQDzCwAh5gUBAPQLACHoBQEA8wsAIekFAQDzCwAh6gVAAPULACHrBUAA9QsAIewFQAD2CwAh_AUBAPQLACH9BQEA9AsAIf8FEACCDAAhC1EAAIUMADBSAACKDAAwlwcAAIYMADCYBwAAhwwAMJkHAACIDAAgmgcAAIkMADCbBwAAiQwAMJwHAACJDAAwnQcAAIkMADCeBwAAiwwAMJ8HAACMDAAwES0AAJMMACA0AACUDAAg5AUBAAAAAeoFQAAAAAGLBgEAAAABoAYQAAAAAaEGAQAAAAGiBgEAAAABowYBAAAAAaQGEAAAAAGlBhAAAAABpgYQAAAAAacGEAAAAAGoBgEAAAABqQaAAAAAAaoGgAAAAAGrBgEAAAABAgAAACUAIFEAAJIMACADAAAAJQAgUQAAkgwAIFIAAI8MACABTAAAuRcAMBYtAADjCQAgNAAA0wsAIDcAANQLACDhBQAA0gsAMOIFAAAjABDjBQAA0gsAMOQFAQAAAAHqBUAAxQkAIYsGAQDDCQAhoAYQAIQKACGhBgEAwwkAIaIGAQDDCQAhowYBAMMJACGkBhAAhAoAIaUGEACECgAhpgYQAIQKACGnBhAAhAoAIagGAQDECQAhqQYAALkKACCqBgAAuQoAIKsGAQDECQAhrAYBAMQJACECAAAAJQAgTAAAjwwAIAIAAACNDAAgTAAAjgwAIBPhBQAAjAwAMOIFAACNDAAQ4wUAAIwMADDkBQEAwwkAIeoFQADFCQAhiwYBAMMJACGgBhAAhAoAIaEGAQDDCQAhogYBAMMJACGjBgEAwwkAIaQGEACECgAhpQYQAIQKACGmBhAAhAoAIacGEACECgAhqAYBAMQJACGpBgAAuQoAIKoGAAC5CgAgqwYBAMQJACGsBgEAxAkAIRPhBQAAjAwAMOIFAACNDAAQ4wUAAIwMADDkBQEAwwkAIeoFQADFCQAhiwYBAMMJACGgBhAAhAoAIaEGAQDDCQAhogYBAMMJACGjBgEAwwkAIaQGEACECgAhpQYQAIQKACGmBhAAhAoAIacGEACECgAhqAYBAMQJACGpBgAAuQoAIKoGAAC5CgAgqwYBAMQJACGsBgEAxAkAIQ_kBQEA8wsAIeoFQAD1CwAhiwYBAPMLACGgBhAAggwAIaEGAQDzCwAhogYBAPMLACGjBgEA8wsAIaQGEACCDAAhpQYQAIIMACGmBhAAggwAIacGEACCDAAhqAYBAPQLACGpBoAAAAABqgaAAAAAAasGAQD0CwAhES0AAJAMACA0AACRDAAg5AUBAPMLACHqBUAA9QsAIYsGAQDzCwAhoAYQAIIMACGhBgEA8wsAIaIGAQDzCwAhowYBAPMLACGkBhAAggwAIaUGEACCDAAhpgYQAIIMACGnBhAAggwAIagGAQD0CwAhqQaAAAAAAaoGgAAAAAGrBgEA9AsAIQVRAACxFwAgUgAAtxcAIJcHAACyFwAgmAcAALYXACCdBwAALwAgB1EAAK8XACBSAAC0FwAglwcAALAXACCYBwAAsxcAIJsHAAAZACCcBwAAGQAgnQcAABsAIBEtAACTDAAgNAAAlAwAIOQFAQAAAAHqBUAAAAABiwYBAAAAAaAGEAAAAAGhBgEAAAABogYBAAAAAaMGAQAAAAGkBhAAAAABpQYQAAAAAaYGEAAAAAGnBhAAAAABqAYBAAAAAakGgAAAAAGqBoAAAAABqwYBAAAAAQNRAACxFwAglwcAALIXACCdBwAALwAgA1EAAK8XACCXBwAAsBcAIJ0HAAAbACANCQEAAAABNgAAlgwAIOQFAQAAAAHlBQEAAAAB5gUBAAAAAegFAQAAAAHpBQEAAAAB6gVAAAAAAesFQAAAAAHsBUAAAAAB_AUBAAAAAf0FAQAAAAH_BRAAAAABBFEAAIUMADCXBwAAhgwAMJkHAACIDAAgnQcAAIkMADAEUQAA-AsAMJcHAAD5CwAwmQcAAPsLACCdBwAA_AsAMAAB-AUBAAAAAQAAAAAAB1EAAKoXACBSAACtFwAglwcAAKsXACCYBwAArBcAIJsHAACkAQAgnAcAAKQBACCdBwAAnQkAIANRAACqFwAglwcAAKsXACCdBwAAnQkAIAAAAAVRAAClFwAgUgAAqBcAIJcHAACmFwAgmAcAAKcXACCdBwAAmwEAIANRAAClFwAglwcAAKYXACCdBwAAmwEAIAMtAADWDAAgMgAApxQAIKAHAACoFAAgAfgFAQAAAAEAAAAAAAGaBwAAAIkGAgVRAACgFwAgUgAAoxcAIJcHAAChFwAgmAcAAKIXACCdBwAALwAgB1EAALAMACBSAACzDAAglwcAALEMACCYBwAAsgwAIJsHAACdAQAgnAcAAJ0BACCdBwAA8wgAIAjkBQEAAAAB5gUBAAAAAeoFQAAAAAGABgEAAAABgQYBAAAAAYIGAQAAAAGDBkAAAAABhAYBAAAAAQIAAADzCAAgUQAAsAwAIAMAAACdAQAgUQAAsAwAIFIAALQMACAKAAAAnQEAIEwAALQMACDkBQEA8wsAIeYFAQD0CwAh6gVAAPULACGABgEA8wsAIYEGAQDzCwAhggYBAPMLACGDBkAA9QsAIYQGAQD0CwAhCOQFAQDzCwAh5gUBAPQLACHqBUAA9QsAIYAGAQDzCwAhgQYBAPMLACGCBgEA8wsAIYMGQAD1CwAhhAYBAPQLACEDUQAAoBcAIJcHAAChFwAgnQcAAC8AIANRAACwDAAglwcAALEMACCdBwAA8wgAIAAAAAAABZoHAgAAAAGhBwIAAAABogcCAAAAAaMHAgAAAAGkBwIAAAABAZoHAAAAjgYCAZoHAAAAkQYCBVEAAJsXACBSAACeFwAglwcAAJwXACCYBwAAnRcAIJ0HAAC1CAAgA1EAAJsXACCXBwAAnBcAIJ0HAAC1CAAgAAAAAAAFUQAAlRcAIFIAAJkXACCXBwAAlhcAIJgHAACYFwAgnQcAAC8AIAtRAADIDAAwUgAAzQwAMJcHAADJDAAwmAcAAMoMADCZBwAAywwAIJoHAADMDAAwmwcAAMwMADCcBwAAzAwAMJ0HAADMDAAwngcAAM4MADCfBwAAzwwAMAvkBQEAAAAB6gVAAAAAAYwGAgAAAAGOBgAAAI4GAo8GAQAAAAGRBgAAAJEGApIGgAAAAAGTBoAAAAABlAYBAAAAAZUGQAAAAAGWBkAAAAABAgAAAJUBACBRAADTDAAgAwAAAJUBACBRAADTDAAgUgAA0gwAIAFMAACXFwAwES4AAKELACDhBQAAngsAMOIFAACTAQAQ4wUAAJ4LADDkBQEAAAAB6gVAAMUJACGMBgIA4gkAIY4GAACfC44GIo8GAQAAAAGRBgAAoAuRBiKSBgAAuQoAIJMGAAC5CgAglAYBAMQJACGVBkAAxgkAIZYGQADGCQAhlwYBAMMJACGMBwAAnQsAIAIAAACVAQAgTAAA0gwAIAIAAADQDAAgTAAA0QwAIA_hBQAAzwwAMOIFAADQDAAQ4wUAAM8MADDkBQEAwwkAIeoFQADFCQAhjAYCAOIJACGOBgAAnwuOBiKPBgEAxAkAIZEGAACgC5EGIpIGAAC5CgAgkwYAALkKACCUBgEAxAkAIZUGQADGCQAhlgZAAMYJACGXBgEAwwkAIQ_hBQAAzwwAMOIFAADQDAAQ4wUAAM8MADDkBQEAwwkAIeoFQADFCQAhjAYCAOIJACGOBgAAnwuOBiKPBgEAxAkAIZEGAACgC5EGIpIGAAC5CgAgkwYAALkKACCUBgEAxAkAIZUGQADGCQAhlgZAAMYJACGXBgEAwwkAIQvkBQEA8wsAIeoFQAD1CwAhjAYCALwMACGOBgAAvQyOBiKPBgEA9AsAIZEGAAC-DJEGIpIGgAAAAAGTBoAAAAABlAYBAPQLACGVBkAA9gsAIZYGQAD2CwAhC-QFAQDzCwAh6gVAAPULACGMBgIAvAwAIY4GAAC9DI4GIo8GAQD0CwAhkQYAAL4MkQYikgaAAAAAAZMGgAAAAAGUBgEA9AsAIZUGQAD2CwAhlgZAAPYLACEL5AUBAAAAAeoFQAAAAAGMBgIAAAABjgYAAACOBgKPBgEAAAABkQYAAACRBgKSBoAAAAABkwaAAAAAAZQGAQAAAAGVBkAAAAABlgZAAAAAAQNRAACVFwAglwcAAJYXACCdBwAALwAgBFEAAMgMADCXBwAAyQwAMJkHAADLDAAgnQcAAMwMADAKDQAAoBQAICQAAK8UACAlAADoEQAgLgAAqRQAIDAAAKUUACAzAADIFAAgqAYAAO8LACCwBgAA7wsAILEGAADvCwAgoAcAAMkUACAAAfgFAQAAAAEAAAAAAAdRAACQFwAgUgAAkxcAIJcHAACRFwAgmAcAAJIXACCbBwAAogEAIJwHAACiAQAgnQcAAKcBACADUQAAkBcAIJcHAACRFwAgnQcAAKcBACAAAAAAAAdRAACDFwAgUgAAjhcAIJcHAACEFwAgmAcAAI0XACCbBwAAJwAgnAcAACcAIJ0HAAC5BwAgBVEAAIEXACBSAACLFwAglwcAAIIXACCYBwAAihcAIJ0HAAA0ACAFUQAA_xYAIFIAAIgXACCXBwAAgBcAIJgHAACHFwAgnQcAAA8AIAdRAACADQAgUgAAgw0AIJcHAACBDQAgmAcAAIINACCbBwAAkQEAIJwHAACRAQAgnQcAALUIACALUQAA9wwAMFIAAPsMADCXBwAA-AwAMJgHAAD5DAAwmQcAAPoMACCaBwAAiQwAMJsHAACJDAAwnAcAAIkMADCdBwAAiQwAMJ4HAAD8DAAwnwcAAIwMADALUQAA6wwAMFIAAPAMADCXBwAA7AwAMJgHAADtDAAwmQcAAO4MACCaBwAA7wwAMJsHAADvDAAwnAcAAO8MADCdBwAA7wwAMJ4HAADxDAAwnwcAAPIMADAGMgAAtgwAIOQFAQAAAAHqBUAAAAABhwYQAAAAAYkGAAAAiQYCigZAAAAAAQIAAACbAQAgUQAA9gwAIAMAAACbAQAgUQAA9gwAIFIAAPUMACABTAAAhhcAMAstAADjCQAgMgAAnAsAIOEFAACaCwAw4gUAAJkBABDjBQAAmgsAMOQFAQAAAAHqBUAAxQkAIYcGEACECgAhiQYAAJsLiQYiigZAAMUJACGLBgEAwwkAIQIAAACbAQAgTAAA9QwAIAIAAADzDAAgTAAA9AwAIAnhBQAA8gwAMOIFAADzDAAQ4wUAAPIMADDkBQEAwwkAIeoFQADFCQAhhwYQAIQKACGJBgAAmwuJBiKKBkAAxQkAIYsGAQDDCQAhCeEFAADyDAAw4gUAAPMMABDjBQAA8gwAMOQFAQDDCQAh6gVAAMUJACGHBhAAhAoAIYkGAACbC4kGIooGQADFCQAhiwYBAMMJACEF5AUBAPMLACHqBUAA9QsAIYcGEACCDAAhiQYAAK0MiQYiigZAAPULACEGMgAArwwAIOQFAQDzCwAh6gVAAPULACGHBhAAggwAIYkGAACtDIkGIooGQAD1CwAhBjIAALYMACDkBQEAAAAB6gVAAAAAAYcGEAAAAAGJBgAAAIkGAooGQAAAAAERNAAAlAwAIDcAAN8MACDkBQEAAAAB6gVAAAAAAaAGEAAAAAGhBgEAAAABogYBAAAAAaMGAQAAAAGkBhAAAAABpQYQAAAAAaYGEAAAAAGnBhAAAAABqAYBAAAAAakGgAAAAAGqBoAAAAABqwYBAAAAAawGAQAAAAECAAAAJQAgUQAA_wwAIAMAAAAlACBRAAD_DAAgUgAA_gwAIAFMAACFFwAwAgAAACUAIEwAAP4MACACAAAAjQwAIEwAAP0MACAP5AUBAPMLACHqBUAA9QsAIaAGEACCDAAhoQYBAPMLACGiBgEA8wsAIaMGAQDzCwAhpAYQAIIMACGlBhAAggwAIaYGEACCDAAhpwYQAIIMACGoBgEA9AsAIakGgAAAAAGqBoAAAAABqwYBAPQLACGsBgEA9AsAIRE0AACRDAAgNwAA3gwAIOQFAQDzCwAh6gVAAPULACGgBhAAggwAIaEGAQDzCwAhogYBAPMLACGjBgEA8wsAIaQGEACCDAAhpQYQAIIMACGmBhAAggwAIacGEACCDAAhqAYBAPQLACGpBoAAAAABqgaAAAAAAasGAQD0CwAhrAYBAPQLACERNAAAlAwAIDcAAN8MACDkBQEAAAAB6gVAAAAAAaAGEAAAAAGhBgEAAAABogYBAAAAAaMGAQAAAAGkBhAAAAABpQYQAAAAAaYGEAAAAAGnBhAAAAABqAYBAAAAAakGgAAAAAGqBoAAAAABqwYBAAAAAawGAQAAAAEGLwAA1QwAIOQFAQAAAAHqBUAAAAAB6wVAAAAAAZ4GAgAAAAGfBkAAAAABAgAAALUIACBRAACADQAgAwAAAJEBACBRAACADQAgUgAAhA0AIAgAAACRAQAgLwAAxwwAIEwAAIQNACDkBQEA8wsAIeoFQAD1CwAh6wVAAPULACGeBgIAvAwAIZ8GQAD2CwAhBi8AAMcMACDkBQEA8wsAIeoFQAD1CwAh6wVAAPULACGeBgIAvAwAIZ8GQAD2CwAhA1EAAIMXACCXBwAAhBcAIJ0HAAC5BwAgA1EAAIEXACCXBwAAghcAIJ0HAAA0ACADUQAA_xYAIJcHAACAFwAgnQcAAA8AIANRAACADQAglwcAAIENACCdBwAAtQgAIARRAAD3DAAwlwcAAPgMADCZBwAA-gwAIJ0HAACJDAAwBFEAAOsMADCXBwAA7AwAMJkHAADuDAAgnQcAAO8MADAAAAALUQAAwA0AMFIAAMUNADCXBwAAwQ0AMJgHAADCDQAwmQcAAMMNACCaBwAAxA0AMJsHAADEDQAwnAcAAMQNADCdBwAAxA0AMJ4HAADGDQAwnwcAAMcNADALUQAAkA0AMFIAAJUNADCXBwAAkQ0AMJgHAACSDQAwmQcAAJMNACCaBwAAlA0AMJsHAACUDQAwnAcAAJQNADCdBwAAlA0AMJ4HAACWDQAwnwcAAJcNADALCAAAvg0AICgAAL8NACDkBQEAAAAB5QUBAAAAAeYFAQAAAAHnBQEAAAAB6QUBAAAAAeoFQAAAAAHrBUAAAAAB7AVAAAAAAcQGIAAAAAECAAAAFwAgUQAAvQ0AIAMAAAAXACBRAAC9DQAgUgAAmw0AIAFMAAD-FgAwEAgAAIcKACAoAADeCwAgOAAA3QsAIOEFAADcCwAw4gUAABUAEOMFAADcCwAw5AUBAAAAAeUFAQDDCQAh5gUBAMQJACHnBQEAxAkAIekFAQDECQAh6gVAAMUJACHrBUAAxQkAIewFQADGCQAhxAYgAIYKACHFBgEAxAkAIQIAAAAXACBMAACbDQAgAgAAAJgNACBMAACZDQAgDeEFAACXDQAw4gUAAJgNABDjBQAAlw0AMOQFAQDDCQAh5QUBAMMJACHmBQEAxAkAIecFAQDECQAh6QUBAMQJACHqBUAAxQkAIesFQADFCQAh7AVAAMYJACHEBiAAhgoAIcUGAQDECQAhDeEFAACXDQAw4gUAAJgNABDjBQAAlw0AMOQFAQDDCQAh5QUBAMMJACHmBQEAxAkAIecFAQDECQAh6QUBAMQJACHqBUAAxQkAIesFQADFCQAh7AVAAMYJACHEBiAAhgoAIcUGAQDECQAhCeQFAQDzCwAh5QUBAPMLACHmBQEA9AsAIecFAQD0CwAh6QUBAPQLACHqBUAA9QsAIesFQAD1CwAh7AVAAPYLACHEBiAAmg0AIQGaByAAAAABCwgAAJwNACAoAACdDQAg5AUBAPMLACHlBQEA8wsAIeYFAQD0CwAh5wUBAPQLACHpBQEA9AsAIeoFQAD1CwAh6wVAAPULACHsBUAA9gsAIcQGIACaDQAhC1EAAJ4NADBSAACjDQAwlwcAAJ8NADCYBwAAoA0AMJkHAAChDQAgmgcAAKINADCbBwAAog0AMJwHAACiDQAwnQcAAKINADCeBwAApA0AMJ8HAAClDQAwB1EAAOgWACBSAAD8FgAglwcAAOkWACCYBwAA-xYAIJsHAACvAQAgnAcAAK8BACCdBwAAtgEAIBMJAAC5DQAgCgAAug0AIAwAALsNACA2AAC8DQAg5AUBAAAAAeUFAQAAAAHmBQEAAAAB5wUBAAAAAeoFQAAAAAHrBUAAAAAB7AVAAAAAAfwFAQAAAAH9BQEAAAAB_wUQAAAAAbcGAQAAAAHEBiAAAAABxwYAAADHBgLIBgEAAAAByQYBAAAAAQIAAAAbACBRAAC4DQAgAwAAABsAIFEAALgNACBSAACqDQAgAUwAAPoWADAYCQAA2AsAIAoAANkLACALAADaCwAgDAAA2wsAIDYAAJkLACDhBQAA1QsAMOIFAAAZABDjBQAA1QsAMOQFAQAAAAHlBQEAwwkAIeYFAQDECQAh5wUBAMQJACHqBUAAxQkAIesFQADFCQAh7AVAAMYJACH8BQEAAAAB_QUBAAAAAf4FAQDECQAh_wUQANcLACG3BgEAxAkAIcQGIACGCgAhxwYAANYLxwYiyAYBAMMJACHJBgEAwwkAIQIAAAAbACBMAACqDQAgAgAAAKYNACBMAACnDQAgE-EFAAClDQAw4gUAAKYNABDjBQAApQ0AMOQFAQDDCQAh5QUBAMMJACHmBQEAxAkAIecFAQDECQAh6gVAAMUJACHrBUAAxQkAIewFQADGCQAh_AUBAMQJACH9BQEAxAkAIf4FAQDECQAh_wUQANcLACG3BgEAxAkAIcQGIACGCgAhxwYAANYLxwYiyAYBAMMJACHJBgEAwwkAIRPhBQAApQ0AMOIFAACmDQAQ4wUAAKUNADDkBQEAwwkAIeUFAQDDCQAh5gUBAMQJACHnBQEAxAkAIeoFQADFCQAh6wVAAMUJACHsBUAAxgkAIfwFAQDECQAh_QUBAMQJACH-BQEAxAkAIf8FEADXCwAhtwYBAMQJACHEBiAAhgoAIccGAADWC8cGIsgGAQDDCQAhyQYBAMMJACEP5AUBAPMLACHlBQEA8wsAIeYFAQD0CwAh5wUBAPQLACHqBUAA9QsAIesFQAD1CwAh7AVAAPYLACH8BQEA9AsAIf0FAQD0CwAh_wUQAKkNACG3BgEA9AsAIcQGIACaDQAhxwYAAKgNxwYiyAYBAPMLACHJBgEA8wsAIQGaBwAAAMcGAgWaBxAAAAABoQcQAAAAAaIHEAAAAAGjBxAAAAABpAcQAAAAARMJAACrDQAgCgAArA0AIAwAAK0NACA2AACuDQAg5AUBAPMLACHlBQEA8wsAIeYFAQD0CwAh5wUBAPQLACHqBUAA9QsAIesFQAD1CwAh7AVAAPYLACH8BQEA9AsAIf0FAQD0CwAh_wUQAKkNACG3BgEA9AsAIcQGIACaDQAhxwYAAKgNxwYiyAYBAPMLACHJBgEA8wsAIQVRAADuFgAgUgAA-BYAIJcHAADvFgAgmAcAAPcWACCdBwAAiwcAIAVRAADsFgAgUgAA9RYAIJcHAADtFgAgmAcAAPQWACCdBwAA9AYAIAdRAADqFgAgUgAA8hYAIJcHAADrFgAgmAcAAPEWACCbBwAAEQAgnAcAABEAIJ0HAAATACALUQAArw0AMFIAALMNADCXBwAAsA0AMJgHAACxDQAwmQcAALINACCaBwAAiQwAMJsHAACJDAAwnAcAAIkMADCdBwAAiQwAMJ4HAAC0DQAwnwcAAIwMADARLQAAkwwAIDcAAN8MACDkBQEAAAAB6gVAAAAAAYsGAQAAAAGgBhAAAAABoQYBAAAAAaIGAQAAAAGjBgEAAAABpAYQAAAAAaUGEAAAAAGmBhAAAAABpwYQAAAAAagGAQAAAAGpBoAAAAABqgaAAAAAAawGAQAAAAECAAAAJQAgUQAAtw0AIAMAAAAlACBRAAC3DQAgUgAAtg0AIAFMAADwFgAwAgAAACUAIEwAALYNACACAAAAjQwAIEwAALUNACAP5AUBAPMLACHqBUAA9QsAIYsGAQDzCwAhoAYQAIIMACGhBgEA8wsAIaIGAQDzCwAhowYBAPMLACGkBhAAggwAIaUGEACCDAAhpgYQAIIMACGnBhAAggwAIagGAQD0CwAhqQaAAAAAAaoGgAAAAAGsBgEA9AsAIREtAACQDAAgNwAA3gwAIOQFAQDzCwAh6gVAAPULACGLBgEA8wsAIaAGEACCDAAhoQYBAPMLACGiBgEA8wsAIaMGAQDzCwAhpAYQAIIMACGlBhAAggwAIaYGEACCDAAhpwYQAIIMACGoBgEA9AsAIakGgAAAAAGqBoAAAAABrAYBAPQLACERLQAAkwwAIDcAAN8MACDkBQEAAAAB6gVAAAAAAYsGAQAAAAGgBhAAAAABoQYBAAAAAaIGAQAAAAGjBgEAAAABpAYQAAAAAaUGEAAAAAGmBhAAAAABpwYQAAAAAagGAQAAAAGpBoAAAAABqgaAAAAAAawGAQAAAAETCQAAuQ0AIAoAALoNACAMAAC7DQAgNgAAvA0AIOQFAQAAAAHlBQEAAAAB5gUBAAAAAecFAQAAAAHqBUAAAAAB6wVAAAAAAewFQAAAAAH8BQEAAAAB_QUBAAAAAf8FEAAAAAG3BgEAAAABxAYgAAAAAccGAAAAxwYCyAYBAAAAAckGAQAAAAEDUQAA7hYAIJcHAADvFgAgnQcAAIsHACADUQAA7BYAIJcHAADtFgAgnQcAAPQGACADUQAA6hYAIJcHAADrFgAgnQcAABMAIARRAACvDQAwlwcAALANADCZBwAAsg0AIJ0HAACJDAAwCwgAAL4NACAoAAC_DQAg5AUBAAAAAeUFAQAAAAHmBQEAAAAB5wUBAAAAAekFAQAAAAHqBUAAAAAB6wVAAAAAAewFQAAAAAHEBiAAAAABBFEAAJ4NADCXBwAAnw0AMJkHAAChDQAgnQcAAKINADADUQAA6BYAIJcHAADpFgAgnQcAALYBACAPCAAAlQ8AIBEAAJEPACAbAACSDwAgOgAAkw8AIDsAAJQPACA8AACWDwAgPQAAlw8AIOQFAQAAAAHlBQEAAAAB6gVAAAAAAesFQAAAAAGXBgEAAAABtAYBAAAAAdMGAQAAAAHUBgEAAAABAgAAABMAIFEAAJAPACADAAAAEwAgUQAAkA8AIFIAAMoNACABTAAA5xYAMBUIAACHCgAgEQAAwAsAIBsAALYLACA4AADhCwAgOgAA4gsAIDsAANsKACA8AADjCwAgPQAA5AsAIOEFAADgCwAw4gUAABEAEOMFAADgCwAw5AUBAAAAAeUFAQDDCQAh6gVAAMUJACHrBUAAxQkAIZcGAQDDCQAhtAYBAMMJACHFBgEAwwkAIdMGAQDDCQAh1AYBAMMJACGUBwAA3wsAIAIAAAATACBMAADKDQAgAgAAAMgNACBMAADJDQAgDOEFAADHDQAw4gUAAMgNABDjBQAAxw0AMOQFAQDDCQAh5QUBAMMJACHqBUAAxQkAIesFQADFCQAhlwYBAMMJACG0BgEAwwkAIcUGAQDDCQAh0wYBAMMJACHUBgEAwwkAIQzhBQAAxw0AMOIFAADIDQAQ4wUAAMcNADDkBQEAwwkAIeUFAQDDCQAh6gVAAMUJACHrBUAAxQkAIZcGAQDDCQAhtAYBAMMJACHFBgEAwwkAIdMGAQDDCQAh1AYBAMMJACEI5AUBAPMLACHlBQEA8wsAIeoFQAD1CwAh6wVAAPULACGXBgEA8wsAIbQGAQDzCwAh0wYBAPMLACHUBgEA8wsAIQ8IAADPDQAgEQAAyw0AIBsAAMwNACA6AADNDQAgOwAAzg0AIDwAANANACA9AADRDQAg5AUBAPMLACHlBQEA8wsAIeoFQAD1CwAh6wVAAPULACGXBgEA8wsAIbQGAQDzCwAh0wYBAPMLACHUBgEA8wsAIQVRAACQFgAgUgAA5RYAIJcHAACRFgAgmAcAAOQWACCdBwAA0QUAIAdRAADnDgAgUgAA6g4AIJcHAADoDgAgmAcAAOkOACCbBwAAUAAgnAcAAFAAIJ0HAADxAgAgC1EAAIgOADBSAACNDgAwlwcAAIkOADCYBwAAig4AMJkHAACLDgAgmgcAAIwOADCbBwAAjA4AMJwHAACMDgAwnQcAAIwOADCeBwAAjg4AMJ8HAACPDgAwC1EAAPkNADBSAAD-DQAwlwcAAPoNADCYBwAA-w0AMJkHAAD8DQAgmgcAAP0NADCbBwAA_Q0AMJwHAAD9DQAwnQcAAP0NADCeBwAA_w0AMJ8HAACADgAwC1EAAO4NADBSAADyDQAwlwcAAO8NADCYBwAA8A0AMJkHAADxDQAgmgcAAKINADCbBwAAog0AMJwHAACiDQAwnQcAAKINADCeBwAA8w0AMJ8HAAClDQAwC1EAAOANADBSAADlDQAwlwcAAOENADCYBwAA4g0AMJkHAADjDQAgmgcAAOQNADCbBwAA5A0AMJwHAADkDQAwnQcAAOQNADCeBwAA5g0AMJ8HAADnDQAwC1EAANINADBSAADXDQAwlwcAANMNADCYBwAA1A0AMJkHAADVDQAgmgcAANYNADCbBwAA1g0AMJwHAADWDQAwnQcAANYNADCeBwAA2A0AMJ8HAADZDQAwBg0AAN8NACDlBQEAAAABsQYBAAAAAbQGAQAAAAG1BgEAAAABtgYBAAAAAQIAAAC-AQAgUQAA3g0AIAMAAAC-AQAgUQAA3g0AIFIAANwNACABTAAA4xYAMAwMAAD0CgAgDQAAkwsAIOEFAACSCwAw4gUAACsAEOMFAACSCwAw5QUBAMMJACGxBgEAAAABtAYBAMMJACG1BgEAxAkAIbYGAQDDCQAhtwYBAMMJACGKBwAAkQsAIAIAAAC-AQAgTAAA3A0AIAIAAADaDQAgTAAA2w0AIAnhBQAA2Q0AMOIFAADaDQAQ4wUAANkNADDlBQEAwwkAIbEGAQDDCQAhtAYBAMMJACG1BgEAxAkAIbYGAQDDCQAhtwYBAMMJACEJ4QUAANkNADDiBQAA2g0AEOMFAADZDQAw5QUBAMMJACGxBgEAwwkAIbQGAQDDCQAhtQYBAMQJACG2BgEAwwkAIbcGAQDDCQAhBeUFAQDzCwAhsQYBAPMLACG0BgEA8wsAIbUGAQD0CwAhtgYBAPMLACEGDQAA3Q0AIOUFAQDzCwAhsQYBAPMLACG0BgEA8wsAIbUGAQD0CwAhtgYBAPMLACEFUQAA3hYAIFIAAOEWACCXBwAA3xYAIJgHAADgFgAgnQcAALkHACAGDQAA3w0AIOUFAQAAAAGxBgEAAAABtAYBAAAAAbUGAQAAAAG2BgEAAAABA1EAAN4WACCXBwAA3xYAIJ0HAAC5BwAgCA0AAO0NACCxBgEAAAABtAYBAAAAAbYGAQAAAAG4BgEAAAABuQYBAAAAAboGAQAAAAG7BgEAAAABAgAAALsBACBRAADsDQAgAwAAALsBACBRAADsDQAgUgAA6g0AIAFMAADdFgAwDgwAAPQKACANAACTCwAg4QUAAJULADDiBQAAKQAQ4wUAAJULADCxBgEAAAABtAYBAMQJACG2BgEAwwkAIbcGAQDDCQAhuAYBAMMJACG5BgEAwwkAIboGAQDDCQAhuwYBAMMJACGLBwAAlAsAIAIAAAC7AQAgTAAA6g0AIAIAAADoDQAgTAAA6Q0AIAvhBQAA5w0AMOIFAADoDQAQ4wUAAOcNADCxBgEAwwkAIbQGAQDECQAhtgYBAMMJACG3BgEAwwkAIbgGAQDDCQAhuQYBAMMJACG6BgEAwwkAIbsGAQDDCQAhC-EFAADnDQAw4gUAAOgNABDjBQAA5w0AMLEGAQDDCQAhtAYBAMQJACG2BgEAwwkAIbcGAQDDCQAhuAYBAMMJACG5BgEAwwkAIboGAQDDCQAhuwYBAMMJACEHsQYBAPMLACG0BgEA9AsAIbYGAQDzCwAhuAYBAPMLACG5BgEA8wsAIboGAQDzCwAhuwYBAPMLACEIDQAA6w0AILEGAQDzCwAhtAYBAPQLACG2BgEA8wsAIbgGAQDzCwAhuQYBAPMLACG6BgEA8wsAIbsGAQDzCwAhBVEAANgWACBSAADbFgAglwcAANkWACCYBwAA2hYAIJ0HAAC5BwAgCA0AAO0NACCxBgEAAAABtAYBAAAAAbYGAQAAAAG4BgEAAAABuQYBAAAAAboGAQAAAAG7BgEAAAABA1EAANgWACCXBwAA2RYAIJ0HAAC5BwAgEwkAALkNACAKAAC6DQAgCwAA-A0AIDYAALwNACDkBQEAAAAB5QUBAAAAAeYFAQAAAAHnBQEAAAAB6gVAAAAAAesFQAAAAAHsBUAAAAAB_AUBAAAAAf0FAQAAAAH-BQEAAAAB_wUQAAAAAcQGIAAAAAHHBgAAAMcGAsgGAQAAAAHJBgEAAAABAgAAABsAIFEAAPcNACADAAAAGwAgUQAA9w0AIFIAAPUNACABTAAA1xYAMAIAAAAbACBMAAD1DQAgAgAAAKYNACBMAAD0DQAgD-QFAQDzCwAh5QUBAPMLACHmBQEA9AsAIecFAQD0CwAh6gVAAPULACHrBUAA9QsAIewFQAD2CwAh_AUBAPQLACH9BQEA9AsAIf4FAQD0CwAh_wUQAKkNACHEBiAAmg0AIccGAACoDccGIsgGAQDzCwAhyQYBAPMLACETCQAAqw0AIAoAAKwNACALAAD2DQAgNgAArg0AIOQFAQDzCwAh5QUBAPMLACHmBQEA9AsAIecFAQD0CwAh6gVAAPULACHrBUAA9QsAIewFQAD2CwAh_AUBAPQLACH9BQEA9AsAIf4FAQD0CwAh_wUQAKkNACHEBiAAmg0AIccGAACoDccGIsgGAQDzCwAhyQYBAPMLACEHUQAA0hYAIFIAANUWACCXBwAA0xYAIJgHAADUFgAgmwcAABUAIJwHAAAVACCdBwAAFwAgEwkAALkNACAKAAC6DQAgCwAA-A0AIDYAALwNACDkBQEAAAAB5QUBAAAAAeYFAQAAAAHnBQEAAAAB6gVAAAAAAesFQAAAAAHsBUAAAAAB_AUBAAAAAf0FAQAAAAH-BQEAAAAB_wUQAAAAAcQGIAAAAAHHBgAAAMcGAsgGAQAAAAHJBgEAAAABA1EAANIWACCXBwAA0xYAIJ0HAAAXACAEJgAAhw4AIOQFAQAAAAHbBgAAAPEGAvIGAQAAAAECAAAAiQEAIFEAAIYOACADAAAAiQEAIFEAAIYOACBSAACEDgAgAUwAANEWADAKJgAApQsAICoAAPQKACDhBQAAowsAMOIFAACHAQAQ4wUAAKMLADDkBQEAAAAB2wYAAKQL8QYi8QYBAMMJACHyBgEAwwkAIY0HAACiCwAgAgAAAIkBACBMAACEDgAgAgAAAIEOACBMAACCDgAgB-EFAACADgAw4gUAAIEOABDjBQAAgA4AMOQFAQDDCQAh2wYAAKQL8QYi8QYBAMMJACHyBgEAwwkAIQfhBQAAgA4AMOIFAACBDgAQ4wUAAIAOADDkBQEAwwkAIdsGAACkC_EGIvEGAQDDCQAh8gYBAMMJACED5AUBAPMLACHbBgAAgw7xBiLyBgEA8wsAIQGaBwAAAPEGAgQmAACFDgAg5AUBAPMLACHbBgAAgw7xBiLyBgEA8wsAIQVRAADMFgAgUgAAzxYAIJcHAADNFgAgmAcAAM4WACCdBwAAlgQAIAQmAACHDgAg5AUBAAAAAdsGAAAA8QYC8gYBAAAAAQNRAADMFgAglwcAAM0WACCdBwAAlgQAIAk5AADlDgAgPgAA5A4AID8AAOYOACDkBQEAAAAB5QUBAAAAAeoFQAAAAAHrBUAAAAAB0QYBAAAAAdIGAQAAAAECAAAAtgEAIFEAAOMOACADAAAAtgEAIFEAAOMOACBSAACSDgAgAUwAAMsWADAODAAA9AoAIDkAAOoJACA-AADFCgAgPwAA2goAIOEFAACWCwAw4gUAAK8BABDjBQAAlgsAMOQFAQAAAAHlBQEAwwkAIeoFQADFCQAh6wVAAMUJACG3BgEAwwkAIdEGAQDDCQAh0gYBAMQJACECAAAAtgEAIEwAAJIOACACAAAAkA4AIEwAAJEOACAK4QUAAI8OADDiBQAAkA4AEOMFAACPDgAw5AUBAMMJACHlBQEAwwkAIeoFQADFCQAh6wVAAMUJACG3BgEAwwkAIdEGAQDDCQAh0gYBAMQJACEK4QUAAI8OADDiBQAAkA4AEOMFAACPDgAw5AUBAMMJACHlBQEAwwkAIeoFQADFCQAh6wVAAMUJACG3BgEAwwkAIdEGAQDDCQAh0gYBAMQJACEG5AUBAPMLACHlBQEA8wsAIeoFQAD1CwAh6wVAAPULACHRBgEA8wsAIdIGAQD0CwAhCTkAAJQOACA-AACTDgAgPwAAlQ4AIOQFAQDzCwAh5QUBAPMLACHqBUAA9QsAIesFQAD1CwAh0QYBAPMLACHSBgEA9AsAIQtRAACwDgAwUgAAtQ4AMJcHAACxDgAwmAcAALIOADCZBwAAsw4AIJoHAAC0DgAwmwcAALQOADCcBwAAtA4AMJ0HAAC0DgAwngcAALYOADCfBwAAtw4AMAtRAAClDgAwUgAAqQ4AMJcHAACmDgAwmAcAAKcOADCZBwAAqA4AIJoHAACUDQAwmwcAAJQNADCcBwAAlA0AMJ0HAACUDQAwngcAAKoOADCfBwAAlw0AMAtRAACWDgAwUgAAmw4AMJcHAACXDgAwmAcAAJgOADCZBwAAmQ4AIJoHAACaDgAwmwcAAJoOADCcBwAAmg4AMJ0HAACaDgAwngcAAJwOADCfBwAAnQ4AMAQmAACkDgAg5AUBAAAAAdsGAAAA9AYC8gYBAAAAAQIAAACFAQAgUQAAow4AIAMAAACFAQAgUQAAow4AIFIAAKEOACABTAAAyhYAMAomAAClCwAgKAAAqQsAIOEFAACnCwAw4gUAAIMBABDjBQAApwsAMOQFAQAAAAHpBQEAwwkAIdsGAACoC_QGIvIGAQDDCQAhjgcAAKYLACACAAAAhQEAIEwAAKEOACACAAAAng4AIEwAAJ8OACAH4QUAAJ0OADDiBQAAng4AEOMFAACdDgAw5AUBAMMJACHpBQEAwwkAIdsGAACoC_QGIvIGAQDDCQAhB-EFAACdDgAw4gUAAJ4OABDjBQAAnQ4AMOQFAQDDCQAh6QUBAMMJACHbBgAAqAv0BiLyBgEAwwkAIQPkBQEA8wsAIdsGAACgDvQGIvIGAQDzCwAhAZoHAAAA9AYCBCYAAKIOACDkBQEA8wsAIdsGAACgDvQGIvIGAQDzCwAhBVEAAMUWACBSAADIFgAglwcAAMYWACCYBwAAxxYAIJ0HAACWBAAgBCYAAKQOACDkBQEAAAAB2wYAAAD0BgLyBgEAAAABA1EAAMUWACCXBwAAxhYAIJ0HAACWBAAgCwgAAL4NACA4AACvDgAg5AUBAAAAAeUFAQAAAAHmBQEAAAAB5wUBAAAAAeoFQAAAAAHrBUAAAAAB7AVAAAAAAcQGIAAAAAHFBgEAAAABAgAAABcAIFEAAK4OACADAAAAFwAgUQAArg4AIFIAAKwOACABTAAAxBYAMAIAAAAXACBMAACsDgAgAgAAAJgNACBMAACrDgAgCeQFAQDzCwAh5QUBAPMLACHmBQEA9AsAIecFAQD0CwAh6gVAAPULACHrBUAA9QsAIewFQAD2CwAhxAYgAJoNACHFBgEA9AsAIQsIAACcDQAgOAAArQ4AIOQFAQDzCwAh5QUBAPMLACHmBQEA9AsAIecFAQD0CwAh6gVAAPULACHrBUAA9QsAIewFQAD2CwAhxAYgAJoNACHFBgEA9AsAIQdRAAC_FgAgUgAAwhYAIJcHAADAFgAgmAcAAMEWACCbBwAArQEAIJwHAACtAQAgnQcAAPcHACALCAAAvg0AIDgAAK8OACDkBQEAAAAB5QUBAAAAAeYFAQAAAAHnBQEAAAAB6gVAAAAAAesFQAAAAAHsBUAAAAABxAYgAAAAAcUGAQAAAAEDUQAAvxYAIJcHAADAFgAgnQcAAPcHACAQEAAA4g4AIBQAAOAOACBCAADeDgAgQwAA3w4AIEQAAOEOACDkBQEAAAAB5QUBAAAAAegFAQAAAAHqBUAAAAAB6wVAAAAAAY4GAAAAzQYCygYBAAAAAcsGAQAAAAHOBgAAAM4GAs8GAQAAAAHQBgEAAAABAgAAAA8AIFEAAN0OACADAAAADwAgUQAA3Q4AIFIAALwOACABTAAAvhYAMBUQAAD5CQAgFAAA2AoAICgAAKkLACBCAADoCwAgQwAA6QsAIEQAANkKACDhBQAA5QsAMOIFAAANABDjBQAA5QsAMOQFAQAAAAHlBQEAwwkAIegFAQAAAAHpBQEAwwkAIeoFQADFCQAh6wVAAMUJACGOBgAA5gvNBiLKBgEAxAkAIcsGAQAAAAHOBgAA5wvOBiLPBgEAxAkAIdAGAQDECQAhAgAAAA8AIEwAALwOACACAAAAuA4AIEwAALkOACAP4QUAALcOADDiBQAAuA4AEOMFAAC3DgAw5AUBAMMJACHlBQEAwwkAIegFAQDDCQAh6QUBAMMJACHqBUAAxQkAIesFQADFCQAhjgYAAOYLzQYiygYBAMQJACHLBgEAxAkAIc4GAADnC84GIs8GAQDECQAh0AYBAMQJACEP4QUAALcOADDiBQAAuA4AEOMFAAC3DgAw5AUBAMMJACHlBQEAwwkAIegFAQDDCQAh6QUBAMMJACHqBUAAxQkAIesFQADFCQAhjgYAAOYLzQYiygYBAMQJACHLBgEAxAkAIc4GAADnC84GIs8GAQDECQAh0AYBAMQJACEL5AUBAPMLACHlBQEA8wsAIegFAQDzCwAh6gVAAPULACHrBUAA9QsAIY4GAAC6Ds0GIsoGAQD0CwAhywYBAPQLACHOBgAAuw7OBiLPBgEA9AsAIdAGAQD0CwAhAZoHAAAAzQYCAZoHAAAAzgYCEBAAAMEOACAUAAC_DgAgQgAAvQ4AIEMAAL4OACBEAADADgAg5AUBAPMLACHlBQEA8wsAIegFAQDzCwAh6gVAAPULACHrBUAA9QsAIY4GAAC6Ds0GIsoGAQD0CwAhywYBAPQLACHOBgAAuw7OBiLPBgEA9AsAIdAGAQD0CwAhB1EAAKwWACBSAAC8FgAglwcAAK0WACCYBwAAuxYAIJsHAADLAQAgnAcAAMsBACCdBwAAzgEAIAdRAACqFgAgUgAAuRYAIJcHAACrFgAgmAcAALgWACCbBwAA0wEAIJwHAADTAQAgnQcAAPwEACAFUQAAqBYAIFIAALYWACCXBwAAqRYAIJgHAAC1FgAgnQcAADQAIAtRAADODgAwUgAA0w4AMJcHAADPDgAwmAcAANAOADCZBwAA0Q4AIJoHAADSDgAwmwcAANIOADCcBwAA0g4AMJ0HAADSDgAwngcAANQOADCfBwAA1Q4AMAtRAADCDgAwUgAAxw4AMJcHAADDDgAwmAcAAMQOADCZBwAAxQ4AIJoHAADGDgAwmwcAAMYOADCcBwAAxg4AMJ0HAADGDgAwngcAAMgOADCfBwAAyQ4AMBANAACFDQAgJQAAhg0AIC4AAIgNACAwAACJDQAgMwAAig0AIOQFAQAAAAHqBUAAAAAB6wVAAAAAAaYGEAAAAAGoBgEAAAABrQYBAAAAAa4GAgAAAAGvBkAAAAABsAaAAAAAAbEGAQAAAAGyBgEAAAABAgAAAC8AIFEAAM0OACADAAAALwAgUQAAzQ4AIFIAAMwOACABTAAAtBYAMBYNAADPCwAgJAAArQsAICUAANgKACAuAADQCwAgMAAAmQsAIDMAANELACDhBQAAzgsAMOIFAAAtABDjBQAAzgsAMOQFAQAAAAHqBUAAxQkAIesFQADFCQAhpgYQAIQKACGoBgEAxAkAIa0GAQAAAAGuBgIA4gkAIa8GQADFCQAhsAYAALkKACCxBgEAxAkAIbIGAQDDCQAhswYBAMMJACGTBwAAzQsAIAIAAAAvACBMAADMDgAgAgAAAMoOACBMAADLDgAgD-EFAADJDgAw4gUAAMoOABDjBQAAyQ4AMOQFAQDDCQAh6gVAAMUJACHrBUAAxQkAIaYGEACECgAhqAYBAMQJACGtBgEAwwkAIa4GAgDiCQAhrwZAAMUJACGwBgAAuQoAILEGAQDECQAhsgYBAMMJACGzBgEAwwkAIQ_hBQAAyQ4AMOIFAADKDgAQ4wUAAMkOADDkBQEAwwkAIeoFQADFCQAh6wVAAMUJACGmBhAAhAoAIagGAQDECQAhrQYBAMMJACGuBgIA4gkAIa8GQADFCQAhsAYAALkKACCxBgEAxAkAIbIGAQDDCQAhswYBAMMJACEL5AUBAPMLACHqBUAA9QsAIesFQAD1CwAhpgYQAIIMACGoBgEA9AsAIa0GAQDzCwAhrgYCALwMACGvBkAA9QsAIbAGgAAAAAGxBgEA9AsAIbIGAQDzCwAhEA0AAOUMACAlAADmDAAgLgAA6AwAIDAAAOkMACAzAADqDAAg5AUBAPMLACHqBUAA9QsAIesFQAD1CwAhpgYQAIIMACGoBgEA9AsAIa0GAQDzCwAhrgYCALwMACGvBkAA9QsAIbAGgAAAAAGxBgEA9AsAIbIGAQDzCwAhEA0AAIUNACAlAACGDQAgLgAAiA0AIDAAAIkNACAzAACKDQAg5AUBAAAAAeoFQAAAAAHrBUAAAAABpgYQAAAAAagGAQAAAAGtBgEAAAABrgYCAAAAAa8GQAAAAAGwBoAAAAABsQYBAAAAAbIGAQAAAAEEJgAA3A4AIOQFAQAAAAHbBgAAAPUGAvIGAQAAAAECAAAAgQEAIFEAANsOACADAAAAgQEAIFEAANsOACBSAADZDgAgAUwAALMWADAKJAAArQsAICYAAKULACDhBQAAqwsAMOIFAAB_ABDjBQAAqwsAMOQFAQAAAAGzBgEAwwkAIdsGAACsC_UGIvIGAQDDCQAhjwcAAKoLACACAAAAgQEAIEwAANkOACACAAAA1g4AIEwAANcOACAH4QUAANUOADDiBQAA1g4AEOMFAADVDgAw5AUBAMMJACGzBgEAwwkAIdsGAACsC_UGIvIGAQDDCQAhB-EFAADVDgAw4gUAANYOABDjBQAA1Q4AMOQFAQDDCQAhswYBAMMJACHbBgAArAv1BiLyBgEAwwkAIQPkBQEA8wsAIdsGAADYDvUGIvIGAQDzCwAhAZoHAAAA9QYCBCYAANoOACDkBQEA8wsAIdsGAADYDvUGIvIGAQDzCwAhBVEAAK4WACBSAACxFgAglwcAAK8WACCYBwAAsBYAIJ0HAACWBAAgBCYAANwOACDkBQEAAAAB2wYAAAD1BgLyBgEAAAABA1EAAK4WACCXBwAArxYAIJ0HAACWBAAgEBAAAOIOACAUAADgDgAgQgAA3g4AIEMAAN8OACBEAADhDgAg5AUBAAAAAeUFAQAAAAHoBQEAAAAB6gVAAAAAAesFQAAAAAGOBgAAAM0GAsoGAQAAAAHLBgEAAAABzgYAAADOBgLPBgEAAAAB0AYBAAAAAQNRAACsFgAglwcAAK0WACCdBwAAzgEAIANRAACqFgAglwcAAKsWACCdBwAA_AQAIANRAACoFgAglwcAAKkWACCdBwAANAAgBFEAAM4OADCXBwAAzw4AMJkHAADRDgAgnQcAANIOADAEUQAAwg4AMJcHAADDDgAwmQcAAMUOACCdBwAAxg4AMAk5AADlDgAgPgAA5A4AID8AAOYOACDkBQEAAAAB5QUBAAAAAeoFQAAAAAHrBUAAAAAB0QYBAAAAAdIGAQAAAAEEUQAAsA4AMJcHAACxDgAwmQcAALMOACCdBwAAtA4AMARRAAClDgAwlwcAAKYOADCZBwAAqA4AIJ0HAACUDQAwBFEAAJYOADCXBwAAlw4AMJkHAACZDgAgnQcAAJoOADAJGAAAjQ8AIBkAAI4PACAfAACPDwAg5AUBAAAAAeoFQAAAAAHrBUAAAAAB_wZAAAAAAYEHQAAAAAGCBwEAAAABAgAAAPECACBRAADnDgAgAwAAAFAAIFEAAOcOACBSAADrDgAgCwAAAFAAIBgAAOwOACAZAADtDgAgHwAA7g4AIEwAAOsOACDkBQEA8wsAIeoFQAD1CwAh6wVAAPULACH_BkAA9QsAIYEHQAD1CwAhggcBAPMLACEJGAAA7A4AIBkAAO0OACAfAADuDgAg5AUBAPMLACHqBUAA9QsAIesFQAD1CwAh_wZAAPULACGBB0AA9QsAIYIHAQDzCwAhBVEAAJIWACBSAACmFgAglwcAAJMWACCYBwAApRYAIJ0HAABOACALUQAA_w4AMFIAAIQPADCXBwAAgA8AMJgHAACBDwAwmQcAAIIPACCaBwAAgw8AMJsHAACDDwAwnAcAAIMPADCdBwAAgw8AMJ4HAACFDwAwnwcAAIYPADALUQAA7w4AMFIAAPQOADCXBwAA8A4AMJgHAADxDgAwmQcAAPIOACCaBwAA8w4AMJsHAADzDgAwnAcAAPMOADCdBwAA8w4AMJ4HAAD1DgAwnwcAAPYOADAHFAAA_Q4AIB4AAP4OACDkBQEAAAAB6AUBAAAAAeoFQAAAAAHrBUAAAAAB-gYBAAAAAQIAAABbACBRAAD8DgAgAwAAAFsAIFEAAPwOACBSAAD5DgAgAUwAAKQWADAMFAAAigsAIBsAALYLACAeAAC3CwAg4QUAALULADDiBQAAWQAQ4wUAALULADDkBQEAAAAB6AUBAAAAAeoFQADFCQAh6wVAAMUJACH5BgEAxAkAIfoGAQAAAAECAAAAWwAgTAAA-Q4AIAIAAAD3DgAgTAAA-A4AIAnhBQAA9g4AMOIFAAD3DgAQ4wUAAPYOADDkBQEAwwkAIegFAQDECQAh6gVAAMUJACHrBUAAxQkAIfkGAQDECQAh-gYBAMQJACEJ4QUAAPYOADDiBQAA9w4AEOMFAAD2DgAw5AUBAMMJACHoBQEAxAkAIeoFQADFCQAh6wVAAMUJACH5BgEAxAkAIfoGAQDECQAhBeQFAQDzCwAh6AUBAPQLACHqBUAA9QsAIesFQAD1CwAh-gYBAPQLACEHFAAA-g4AIB4AAPsOACDkBQEA8wsAIegFAQD0CwAh6gVAAPULACHrBUAA9QsAIfoGAQD0CwAhB1EAAJwWACBSAACiFgAglwcAAJ0WACCYBwAAoRYAIJsHAAAyACCcBwAAMgAgnQcAADQAIAdRAACaFgAgUgAAnxYAIJcHAACbFgAgmAcAAJ4WACCbBwAAXwAgnAcAAF8AIJ0HAABkACAHFAAA_Q4AIB4AAP4OACDkBQEAAAAB6AUBAAAAAeoFQAAAAAHrBUAAAAAB-gYBAAAAAQNRAACcFgAglwcAAJ0WACCdBwAANAAgA1EAAJoWACCXBwAAmxYAIJ0HAABkACAGFwAAjA8AIOQFAQAAAAHqBUAAAAAB6wVAAAAAAfsGAQAAAAH_BkAAAAABAgAAAFQAIFEAAIsPACADAAAAVAAgUQAAiw8AIFIAAIkPACABTAAAmRYAMAsXAAC5CwAgGgAAtgsAIOEFAAC4CwAw4gUAAFIAEOMFAAC4CwAw5AUBAAAAAeoFQADFCQAh6wVAAMUJACH7BgEAwwkAIf8GQADFCQAhgAcBAMQJACECAAAAVAAgTAAAiQ8AIAIAAACHDwAgTAAAiA8AIAnhBQAAhg8AMOIFAACHDwAQ4wUAAIYPADDkBQEAwwkAIeoFQADFCQAh6wVAAMUJACH7BgEAwwkAIf8GQADFCQAhgAcBAMQJACEJ4QUAAIYPADDiBQAAhw8AEOMFAACGDwAw5AUBAMMJACHqBUAAxQkAIesFQADFCQAh-wYBAMMJACH_BkAAxQkAIYAHAQDECQAhBeQFAQDzCwAh6gVAAPULACHrBUAA9QsAIfsGAQDzCwAh_wZAAPULACEGFwAAig8AIOQFAQDzCwAh6gVAAPULACHrBUAA9QsAIfsGAQDzCwAh_wZAAPULACEFUQAAlBYAIFIAAJcWACCXBwAAlRYAIJgHAACWFgAgnQcAAHAAIAYXAACMDwAg5AUBAAAAAeoFQAAAAAHrBUAAAAAB-wYBAAAAAf8GQAAAAAEDUQAAlBYAIJcHAACVFgAgnQcAAHAAIANRAACSFgAglwcAAJMWACCdBwAATgAgBFEAAP8OADCXBwAAgA8AMJkHAACCDwAgnQcAAIMPADAEUQAA7w4AMJcHAADwDgAwmQcAAPIOACCdBwAA8w4AMA8IAACVDwAgEQAAkQ8AIBsAAJIPACA6AACTDwAgOwAAlA8AIDwAAJYPACA9AACXDwAg5AUBAAAAAeUFAQAAAAHqBUAAAAAB6wVAAAAAAZcGAQAAAAG0BgEAAAAB0wYBAAAAAdQGAQAAAAEDUQAAkBYAIJcHAACRFgAgnQcAANEFACADUQAA5w4AIJcHAADoDgAgnQcAAPECACAEUQAAiA4AMJcHAACJDgAwmQcAAIsOACCdBwAAjA4AMARRAAD5DQAwlwcAAPoNADCZBwAA_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_AUBAAAAAf0FAQAAAAH-BQEAAAAB_wUQAAAAAbcGAQAAAAHEBiAAAAABxwYAAADHBgLJBgEAAAABAgAAABsAIFEAAN4PACADAAAAGwAgUQAA3g8AIFIAAN0PACABTAAAhBYAMAIAAAAbACBMAADdDwAgAgAAAKYNACBMAADcDwAgD-QFAQDzCwAh5QUBAPMLACHmBQEA9AsAIecFAQD0CwAh6gVAAPULACHrBUAA9QsAIewFQAD2CwAh_AUBAPQLACH9BQEA9AsAIf4FAQD0CwAh_wUQAKkNACG3BgEA9AsAIcQGIACaDQAhxwYAAKgNxwYiyQYBAPMLACETCgAArA0AIAsAAPYNACAMAACtDQAgNgAArg0AIOQFAQDzCwAh5QUBAPMLACHmBQEA9AsAIecFAQD0CwAh6gVAAPULACHrBUAA9QsAIewFQAD2CwAh_AUBAPQLACH9BQEA9AsAIf4FAQD0CwAh_wUQAKkNACG3BgEA9AsAIcQGIACaDQAhxwYAAKgNxwYiyQYBAPMLACETCgAAug0AIAsAAPgNACAMAAC7DQAgNgAAvA0AIOQFAQAAAAHlBQEAAAAB5gUBAAAAAecFAQAAAAHqBUAAAAAB6wVAAAAAAewFQAAAAAH8BQEAAAAB_QUBAAAAAf4FAQAAAAH_BRAAAAABtwYBAAAAAcQGIAAAAAHHBgAAAMcGAskGAQAAAAEEUQAA1g8AMJcHAADXDwAwmQcAANkPACCdBwAAog0AMAAB-AUBAAAAAQAAAAtRAADmDwAwUgAA6g8AMJcHAADnDwAwmAcAAOgPADCZBwAA6Q8AIJoHAACiDQAwmwcAAKINADCcBwAAog0AMJ0HAACiDQAwngcAAOsPADCfBwAApQ0AMBMJAAC5DQAgCwAA-A0AIAwAALsNACA2AAC8DQAg5AUBAAAAAeUFAQAAAAHmBQEAAAAB5wUBAAAAAeoFQAAAAAHrBUAAAAAB7AVAAAAAAfwFAQAAAAH9BQEAAAAB_gUBAAAAAf8FEAAAAAG3BgEAAAABxAYgAAAAAccGAAAAxwYCyAYBAAAAAQIAAAAbACBRAADuDwAgAwAAABsAIFEAAO4PACBSAADtDwAgAUwAAIMWADACAAAAGwAgTAAA7Q8AIAIAAACmDQAgTAAA7A8AIA_kBQEA8wsAIeUFAQDzCwAh5gUBAPQLACHnBQEA9AsAIeoFQAD1CwAh6wVAAPULACHsBUAA9gsAIfwFAQD0CwAh_QUBAPQLACH-BQEA9AsAIf8FEACpDQAhtwYBAPQLACHEBiAAmg0AIccGAACoDccGIsgGAQDzCwAhEwkAAKsNACALAAD2DQAgDAAArQ0AIDYAAK4NACDkBQEA8wsAIeUFAQDzCwAh5gUBAPQLACHnBQEA9AsAIeoFQAD1CwAh6wVAAPULACHsBUAA9gsAIfwFAQD0CwAh_QUBAPQLACH-BQEA9AsAIf8FEACpDQAhtwYBAPQLACHEBiAAmg0AIccGAACoDccGIsgGAQDzCwAhEwkAALkNACALAAD4DQAgDAAAuw0AIDYAALwNACDkBQEAAAAB5QUBAAAAAeYFAQAAAAHnBQEAAAAB6gVAAAAAAesFQAAAAAHsBUAAAAAB_AUBAAAAAf0FAQAAAAH-BQEAAAAB_wUQAAAAAbcGAQAAAAHEBiAAAAABxwYAAADHBgLIBgEAAAABBFEAAOYPADCXBwAA5w8AMJkHAADpDwAgnQcAAKINADAB-AUBAAAAAQAAAAAAAAAAAAAABVEAAP4VACBSAACBFgAglwcAAP8VACCYBwAAgBYAIJ0HAAC2AQAgA1EAAP4VACCXBwAA_xUAIJ0HAAC2AQAgAAAABVEAAPkVACBSAAD8FQAglwcAAPoVACCYBwAA-xUAIJ0HAAATACADUQAA-RUAIJcHAAD6FQAgnQcAABMAIAAAAAVRAAD0FQAgUgAA9xUAIJcHAAD1FQAgmAcAAPYVACCdBwAA9wcAIANRAAD0FQAglwcAAPUVACCdBwAA9wcAIAAAAAVRAADsFQAgUgAA8hUAIJcHAADtFQAgmAcAAPEVACCdBwAA_wMAIAVRAADqFQAgUgAA7xUAIJcHAADrFQAgmAcAAO4VACCdBwAA0QUAIANRAADsFQAglwcAAO0VACCdBwAA_wMAIANRAADqFQAglwcAAOsVACCdBwAA0QUAIAAAAAVRAADiFQAgUgAA6BUAIJcHAADjFQAgmAcAAOcVACCdBwAA_wMAIAVRAADgFQAgUgAA5RUAIJcHAADhFQAgmAcAAOQVACCdBwAA0QUAIANRAADiFQAglwcAAOMVACCdBwAA_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_xAAMFIAAIMRADCXBwAAgBEAMJgHAACBEQAwmQcAAIIRACCaBwAA0g4AMJsHAADSDgAwnAcAANIOADCdBwAA0g4AMJ4HAACEEQAwnwcAANUOADALUQAA9BAAMFIAAPgQADCXBwAA9RAAMJgHAAD2EAAwmQcAAPcQACCaBwAAmg4AMJsHAACaDgAwnAcAAJoOADCdBwAAmg4AMJ4HAAD5EAAwnwcAAJ0OADALUQAA6RAAMFIAAO0QADCXBwAA6hAAMJgHAADrEAAwmQcAAOwQACCaBwAA_Q0AMJsHAAD9DQAwnAcAAP0NADCdBwAA_Q0AMJ4HAADuEAAwnwcAAIAOADAEKgAA8xAAIOQFAQAAAAHbBgAAAPEGAvEGAQAAAAECAAAAiQEAIFEAAPIQACADAAAAiQEAIFEAAPIQACBSAADwEAAgAUwAANMVADACAAAAiQEAIEwAAPAQACACAAAAgQ4AIEwAAO8QACAD5AUBAPMLACHbBgAAgw7xBiLxBgEA8wsAIQQqAADxEAAg5AUBAPMLACHbBgAAgw7xBiLxBgEA8wsAIQVRAADOFQAgUgAA0RUAIJcHAADPFQAgmAcAANAVACCdBwAAEwAgBCoAAPMQACDkBQEAAAAB2wYAAADxBgLxBgEAAAABA1EAAM4VACCXBwAAzxUAIJ0HAAATACAEKAAA_hAAIOQFAQAAAAHpBQEAAAAB2wYAAAD0BgICAAAAhQEAIFEAAP0QACADAAAAhQEAIFEAAP0QACBSAAD7EAAgAUwAAM0VADACAAAAhQEAIEwAAPsQACACAAAAng4AIEwAAPoQACAD5AUBAPMLACHpBQEA8wsAIdsGAACgDvQGIgQoAAD8EAAg5AUBAPMLACHpBQEA8wsAIdsGAACgDvQGIgVRAADIFQAgUgAAyxUAIJcHAADJFQAgmAcAAMoVACCdBwAAtgEAIAQoAAD-EAAg5AUBAAAAAekFAQAAAAHbBgAAAPQGAgNRAADIFQAglwcAAMkVACCdBwAAtgEAIAQkAACJEQAg5AUBAAAAAbMGAQAAAAHbBgAAAPUGAgIAAACBAQAgUQAAiBEAIAMAAACBAQAgUQAAiBEAIFIAAIYRACABTAAAxxUAMAIAAACBAQAgTAAAhhEAIAIAAADWDgAgTAAAhREAIAPkBQEA8wsAIbMGAQDzCwAh2wYAANgO9QYiBCQAAIcRACDkBQEA8wsAIbMGAQDzCwAh2wYAANgO9QYiBVEAAMIVACBSAADFFQAglwcAAMMVACCYBwAAxBUAIJ0HAAAPACAEJAAAiREAIOQFAQAAAAGzBgEAAAAB2wYAAAD1BgIDUQAAwhUAIJcHAADDFQAgnQcAAA8AIARRAAD_EAAwlwcAAIARADCZBwAAghEAIJ0HAADSDgAwBFEAAPQQADCXBwAA9RAAMJkHAAD3EAAgnQcAAJoOADAEUQAA6RAAMJcHAADqEAAwmQcAAOwQACCdBwAA_Q0AMBAQAADiDgAgKAAA_Q8AIEIAAN4OACBDAADfDgAgRAAA4Q4AIOQFAQAAAAHlBQEAAAAB6QUBAAAAAeoFQAAAAAHrBUAAAAABjgYAAADNBgLKBgEAAAABywYBAAAAAc4GAAAAzgYCzwYBAAAAAdAGAQAAAAECAAAADwAgUQAAjREAIAMAAAANACBRAACNEQAgUgAAkREAIBIAAAANACAQAADBDgAgKAAA_A8AIEIAAL0OACBDAAC-DgAgRAAAwA4AIEwAAJERACDkBQEA8wsAIeUFAQDzCwAh6QUBAPMLACHqBUAA9QsAIesFQAD1CwAhjgYAALoOzQYiygYBAPQLACHLBgEA9AsAIc4GAAC7Ds4GIs8GAQD0CwAh0AYBAPQLACEQEAAAwQ4AICgAAPwPACBCAAC9DgAgQwAAvg4AIEQAAMAOACDkBQEA8wsAIeUFAQDzCwAh6QUBAPMLACHqBUAA9QsAIesFQAD1CwAhjgYAALoOzQYiygYBAPQLACHLBgEA9AsAIc4GAAC7Ds4GIs8GAQD0CwAh0AYBAPQLACEKEAAAlxEAIBQAAJMRACAkAACUEQAgJgAAlREAICwAAJYRACDkBQEAAAAB6AUBAAAAAeoFQAAAAAHrBUAAAAAB2wYAAADbBgIDUQAAwBUAIJcHAADBFQAgnQcAAIcCACADUQAAjREAIJcHAACOEQAgnQcAAA8AIANRAADhEAAglwcAAOIQACCdBwAAlgQAIANRAADaEAAglwcAANsQACCdBwAAWwAgBFEAANEQADCXBwAA0hAAMJkHAADUEAAgnQcAAMYOADAEUQAAwBAAMJcHAADBEAAwmQcAAMMQACCdBwAAxBAAMARRAAC3EAAwlwcAALgQADCZBwAAuhAAIJ0HAADEDQAwBFEAAKoQADCXBwAAqxAAMJkHAACtEAAgnQcAAK4QADADUQAApRAAIJcHAACmEAAgnQcAAEIAIANRAACgEAAglwcAAKEQACCdBwAARgAgAAADEQAAwRQAIBMAALEUACCgBwAAwxQAIAMRAADBFAAgEwAAsRQAIKAHAADCFAAgAfgFAQAAAAEAAAAFUQAAuxUAIFIAAL4VACCXBwAAvBUAIJgHAAC9FQAgnQcAANEFACADUQAAuxUAIJcHAAC8FQAgnQcAANEFACAAAAABmgcAAADgBgIBmgcAAADiBgIB-AUBAAAAAQAAAAVRAAC2FQAgUgAAuRUAIJcHAAC3FQAgmAcAALgVACCdBwAA0QUAIANRAAC2FQAglwcAALcVACCdBwAA0QUAIAAAAAGaBwAAAO8GAgtRAADBEQAwUgAAxhEAMJcHAADCEQAwmAcAAMMRADCZBwAAxBEAIJoHAADFEQAwmwcAAMURADCcBwAAxREAMJ0HAADFEQAwngcAAMcRADCfBwAAyBEAMAtRAAC4EQAwUgAAvBEAMJcHAAC5EQAwmAcAALoRADCZBwAAuxEAIJoHAAC0DgAwmwcAALQOADCcBwAAtA4AMJ0HAAC0DgAwngcAAL0RADCfBwAAtw4AMBAQAADiDgAgFAAA4A4AICgAAP0PACBCAADeDgAgRAAA4Q4AIOQFAQAAAAHlBQEAAAAB6AUBAAAAAekFAQAAAAHqBUAAAAAB6wVAAAAAAY4GAAAAzQYCygYBAAAAAcsGAQAAAAHOBgAAAM4GAs8GAQAAAAECAAAADwAgUQAAwBEAIAMAAAAPACBRAADAEQAgUgAAvxEAIAFMAAC1FQAwAgAAAA8AIEwAAL8RACACAAAAuA4AIEwAAL4RACAL5AUBAPMLACHlBQEA8wsAIegFAQDzCwAh6QUBAPMLACHqBUAA9QsAIesFQAD1CwAhjgYAALoOzQYiygYBAPQLACHLBgEA9AsAIc4GAAC7Ds4GIs8GAQD0CwAhEBAAAMEOACAUAAC_DgAgKAAA_A8AIEIAAL0OACBEAADADgAg5AUBAPMLACHlBQEA8wsAIegFAQDzCwAh6QUBAPMLACHqBUAA9QsAIesFQAD1CwAhjgYAALoOzQYiygYBAPQLACHLBgEA9AsAIc4GAAC7Ds4GIs8GAQD0CwAhEBAAAOIOACAUAADgDgAgKAAA_Q8AIEIAAN4OACBEAADhDgAg5AUBAAAAAeUFAQAAAAHoBQEAAAAB6QUBAAAAAeoFQAAAAAHrBUAAAAABjgYAAADNBgLKBgEAAAABywYBAAAAAc4GAAAAzgYCzwYBAAAAAQYUAADPEQAg5AUBAAAAAegFAQAAAAHqBUAAAAAB6wVAAAAAAdsGAAAA8AYCAgAAAAsAIFEAAM4RACADAAAACwAgUQAAzhEAIFIAAMwRACABTAAAtBUAMAsUAADGCwAgQwAA7AsAIOEFAADqCwAw4gUAAAgAEOMFAADqCwAw5AUBAAAAAegFAQAAAAHqBUAAxQkAIesFQADFCQAh0AYBAMMJACHbBgAA6wvwBiICAAAACwAgTAAAzBEAIAIAAADJEQAgTAAAyhEAIAnhBQAAyBEAMOIFAADJEQAQ4wUAAMgRADDkBQEAwwkAIegFAQDDCQAh6gVAAMUJACHrBUAAxQkAIdAGAQDDCQAh2wYAAOsL8AYiCeEFAADIEQAw4gUAAMkRABDjBQAAyBEAMOQFAQDDCQAh6AUBAMMJACHqBUAAxQkAIesFQADFCQAh0AYBAMMJACHbBgAA6wvwBiIF5AUBAPMLACHoBQEA8wsAIeoFQAD1CwAh6wVAAPULACHbBgAAyxHwBiIBmgcAAADwBgIGFAAAzREAIOQFAQDzCwAh6AUBAPMLACHqBUAA9QsAIesFQAD1CwAh2wYAAMsR8AYiBVEAAK8VACBSAACyFQAglwcAALAVACCYBwAAsRUAIJ0HAACHAgAgBhQAAM8RACDkBQEAAAAB6AUBAAAAAeoFQAAAAAHrBUAAAAAB2wYAAADwBgIDUQAArxUAIJcHAACwFQAgnQcAAIcCACAEUQAAwREAMJcHAADCEQAwmQcAAMQRACCdBwAAxREAMARRAAC4EQAwlwcAALkRADCZBwAAuxEAIJ0HAAC0DgAwAAAB-AUBAAAAAQAAAAVRAACqFQAgUgAArRUAIJcHAACrFQAgmAcAAKwVACCdBwAA_AQAIANRAACqFQAglwcAAKsVACCdBwAA_AQAIAAAAAAAAAAAAAAAAAVRAAClFQAgUgAAqBUAIJcHAACmFQAgmAcAAKcVACCdBwAANAAgA1EAAKUVACCXBwAAphUAIJ0HAAA0ACAHEAAAxw8AIBEAAMEUACAUAADEFAAgJAAArxQAICYAAKsUACAsAAC2FAAgoAcAAMcUACAAAAAB-AUBAAAAAQAAAAGaBwAAAPYGAgtRAADsEgAwUgAA8RIAMJcHAADtEgAwmAcAAO4SADCZBwAA7xIAIJoHAADwEgAwmwcAAPASADCcBwAA8BIAMJ0HAADwEgAwngcAAPISADCfBwAA8xIAMAtRAADgEgAwUgAA5RIAMJcHAADhEgAwmAcAAOISADCZBwAA4xIAIJoHAADkEgAwmwcAAOQSADCcBwAA5BIAMJ0HAADkEgAwngcAAOYSADCfBwAA5xIAMAtRAADUEgAwUgAA2RIAMJcHAADVEgAwmAcAANYSADCZBwAA1xIAIJoHAADYEgAwmwcAANgSADCcBwAA2BIAMJ0HAADYEgAwngcAANoSADCfBwAA2xIAMAtRAACxEgAwUgAAthIAMJcHAACyEgAwmAcAALMSADCZBwAAtBIAIJoHAAC1EgAwmwcAALUSADCcBwAAtRIAMJ0HAAC1EgAwngcAALcSADCfBwAAuBIAMAtRAACQEgAwUgAAlRIAMJcHAACREgAwmAcAAJISADCZBwAAkxIAIJoHAACUEgAwmwcAAJQSADCcBwAAlBIAMJ0HAACUEgAwngcAAJYSADCfBwAAlxIAMAtRAAD3EQAwUgAA_BEAMJcHAAD4EQAwmAcAAPkRADCZBwAA-hEAIJoHAAD7EQAwmwcAAPsRADCcBwAA-xEAMJ0HAAD7EQAwngcAAP0RADCfBwAA_hEAMAcZAACPEgAg5AUBAAAAAeoFQAAAAAHrBUAAAAAB_AZAAAAAAf0GAQAAAAH-BgIAAAABAgAAAHAAIFEAAI4SACADAAAAcAAgUQAAjhIAIFIAAIESACABTAAApBUAMAwTAACvCwAgGQAA9QoAIOEFAACuCwAw4gUAAG4AEOMFAACuCwAw5AUBAAAAAeoFQADFCQAh6wVAAMUJACHWBgEAwwkAIfwGQADFCQAh_QYBAAAAAf4GAgDiCQAhAgAAAHAAIEwAAIESACACAAAA_xEAIEwAAIASACAK4QUAAP4RADDiBQAA_xEAEOMFAAD-EQAw5AUBAMMJACHqBUAAxQkAIesFQADFCQAh1gYBAMMJACH8BkAAxQkAIf0GAQDDCQAh_gYCAOIJACEK4QUAAP4RADDiBQAA_xEAEOMFAAD-EQAw5AUBAMMJACHqBUAAxQkAIesFQADFCQAh1gYBAMMJACH8BkAAxQkAIf0GAQDDCQAh_gYCAOIJACEG5AUBAPMLACHqBUAA9QsAIesFQAD1CwAh_AZAAPULACH9BgEA8wsAIf4GAgC8DAAhBxkAAIISACDkBQEA8wsAIeoFQAD1CwAh6wVAAPULACH8BkAA9QsAIf0GAQDzCwAh_gYCALwMACELUQAAgxIAMFIAAIcSADCXBwAAhBIAMJgHAACFEgAwmQcAAIYSACCaBwAAgw8AMJsHAACDDwAwnAcAAIMPADCdBwAAgw8AMJ4HAACIEgAwnwcAAIYPADAGGgAAjRIAIOQFAQAAAAHqBUAAAAAB6wVAAAAAAf8GQAAAAAGABwEAAAABAgAAAFQAIFEAAIwSACADAAAAVAAgUQAAjBIAIFIAAIoSACABTAAAoxUAMAIAAABUACBMAACKEgAgAgAAAIcPACBMAACJEgAgBeQFAQDzCwAh6gVAAPULACHrBUAA9QsAIf8GQAD1CwAhgAcBAPQLACEGGgAAixIAIOQFAQDzCwAh6gVAAPULACHrBUAA9QsAIf8GQAD1CwAhgAcBAPQLACEHUQAAnhUAIFIAAKEVACCXBwAAnxUAIJgHAACgFQAgmwcAAFAAIJwHAABQACCdBwAA8QIAIAYaAACNEgAg5AUBAAAAAeoFQAAAAAHrBUAAAAAB_wZAAAAAAYAHAQAAAAEDUQAAnhUAIJcHAACfFQAgnQcAAPECACAHGQAAjxIAIOQFAQAAAAHqBUAAAAAB6wVAAAAAAfwGQAAAAAH9BgEAAAAB_gYCAAAAAQRRAACDEgAwlwcAAIQSADCZBwAAhhIAIJ0HAACDDwAwBxwAALASACDkBQEAAAAB6gVAAAAAAesFQAAAAAH8BkAAAAAB_QYBAAAAAf4GAgAAAAECAAAAbAAgUQAArxIAIAMAAABsACBRAACvEgAgUgAAmhIAIAFMAACdFQAwDBMAAK8LACAcAACxCwAg4QUAALALADDiBQAAYQAQ4wUAALALADDkBQEAAAAB6gVAAMUJACHrBUAAxQkAIdYGAQDDCQAh_AZAAMUJACH9BgEAAAAB_gYCAOIJACECAAAAbAAgTAAAmhIAIAIAAACYEgAgTAAAmRIAIArhBQAAlxIAMOIFAACYEgAQ4wUAAJcSADDkBQEAwwkAIeoFQADFCQAh6wVAAMUJACHWBgEAwwkAIfwGQADFCQAh_QYBAMMJACH-BgIA4gkAIQrhBQAAlxIAMOIFAACYEgAQ4wUAAJcSADDkBQEAwwkAIeoFQADFCQAh6wVAAMUJACHWBgEAwwkAIfwGQADFCQAh_QYBAMMJACH-BgIA4gkAIQbkBQEA8wsAIeoFQAD1CwAh6wVAAPULACH8BkAA9QsAIf0GAQDzCwAh_gYCALwMACEHHAAAmxIAIOQFAQDzCwAh6gVAAPULACHrBUAA9QsAIfwGQAD1CwAh_QYBAPMLACH-BgIAvAwAIQtRAACcEgAwUgAAoRIAMJcHAACdEgAwmAcAAJ4SADCZBwAAnxIAIJoHAACgEgAwmwcAAKASADCcBwAAoBIAMJ0HAACgEgAwngcAAKISADCfBwAAoxIAMAQdAACuEgAg5AUBAAAAAeoFQAAAAAHrBUAAAAABAgAAAGQAIFEAAK0SACADAAAAZAAgUQAArRIAIFIAAKYSACABTAAAnBUAMAkXAACzCwAgHQAAtAsAIOEFAACyCwAw4gUAAF8AEOMFAACyCwAw5AUBAAAAAeoFQADFCQAh6wVAAMUJACH7BgEAxAkAIQIAAABkACBMAACmEgAgAgAAAKQSACBMAAClEgAgB-EFAACjEgAw4gUAAKQSABDjBQAAoxIAMOQFAQDDCQAh6gVAAMUJACHrBUAAxQkAIfsGAQDECQAhB-EFAACjEgAw4gUAAKQSABDjBQAAoxIAMOQFAQDDCQAh6gVAAMUJACHrBUAAxQkAIfsGAQDECQAhA-QFAQDzCwAh6gVAAPULACHrBUAA9QsAIQQdAACnEgAg5AUBAPMLACHqBUAA9QsAIesFQAD1CwAhB1EAAKgSACBSAACrEgAglwcAAKkSACCYBwAAqhIAIJsHAABZACCcBwAAWQAgnQcAAFsAIAcUAAD9DgAgGwAA4BAAIOQFAQAAAAHoBQEAAAAB6gVAAAAAAesFQAAAAAH5BgEAAAABAgAAAFsAIFEAAKgSACADAAAAWQAgUQAAqBIAIFIAAKwSACAJAAAAWQAgFAAA-g4AIBsAAN8QACBMAACsEgAg5AUBAPMLACHoBQEA9AsAIeoFQAD1CwAh6wVAAPULACH5BgEA9AsAIQcUAAD6DgAgGwAA3xAAIOQFAQDzCwAh6AUBAPQLACHqBUAA9QsAIesFQAD1CwAh-QYBAPQLACEEHQAArhIAIOQFAQAAAAHqBUAAAAAB6wVAAAAAAQNRAACoEgAglwcAAKkSACCdBwAAWwAgBxwAALASACDkBQEAAAAB6gVAAAAAAesFQAAAAAH8BkAAAAAB_QYBAAAAAf4GAgAAAAEEUQAAnBIAMJcHAACdEgAwmQcAAJ8SACCdBwAAoBIAMAcgAADTEgAg5AUBAAAAAeoFQAAAAAHrBUAAAAAB_AZAAAAAAf0GAQAAAAH-BgIAAAABAgAAAEoAIFEAANISACADAAAASgAgUQAA0hIAIFIAALsSACABTAAAmxUAMAwTAACvCwAgIAAAvQsAIOEFAAC8CwAw4gUAAEgAEOMFAAC8CwAw5AUBAAAAAeoFQADFCQAh6wVAAMUJACHWBgEAwwkAIfwGQADFCQAh_QYBAAAAAf4GAgDiCQAhAgAAAEoAIEwAALsSACACAAAAuRIAIEwAALoSACAK4QUAALgSADDiBQAAuRIAEOMFAAC4EgAw5AUBAMMJACHqBUAAxQkAIesFQADFCQAh1gYBAMMJACH8BkAAxQkAIf0GAQDDCQAh_gYCAOIJACEK4QUAALgSADDiBQAAuRIAEOMFAAC4EgAw5AUBAMMJACHqBUAAxQkAIesFQADFCQAh1gYBAMMJACH8BkAAxQkAIf0GAQDDCQAh_gYCAOIJACEG5AUBAPMLACHqBUAA9QsAIesFQAD1CwAh_AZAAPULACH9BgEA8wsAIf4GAgC8DAAhByAAALwSACDkBQEA8wsAIeoFQAD1CwAh6wVAAPULACH8BkAA9QsAIf0GAQDzCwAh_gYCALwMACELUQAAvRIAMFIAAMISADCXBwAAvhIAMJgHAAC_EgAwmQcAAMASACCaBwAAwRIAMJsHAADBEgAwnAcAAMESADCdBwAAwRIAMJ4HAADDEgAwnwcAAMQSADAFGgAA0RIAIOQFAQAAAAHqBUAAAAAB6wVAAAAAAYMHAgAAAAECAAAATgAgUQAA0BIAIAMAAABOACBRAADQEgAgUgAAxxIAIAFMAACaFQAwChcAALsLACAaAAC2CwAg4QUAALoLADDiBQAATAAQ4wUAALoLADDkBQEAAAAB6gVAAMUJACHrBUAAxQkAIfsGAQDDCQAhgwcCAOIJACECAAAATgAgTAAAxxIAIAIAAADFEgAgTAAAxhIAIAjhBQAAxBIAMOIFAADFEgAQ4wUAAMQSADDkBQEAwwkAIeoFQADFCQAh6wVAAMUJACH7BgEAwwkAIYMHAgDiCQAhCOEFAADEEgAw4gUAAMUSABDjBQAAxBIAMOQFAQDDCQAh6gVAAMUJACHrBUAAxQkAIfsGAQDDCQAhgwcCAOIJACEE5AUBAPMLACHqBUAA9QsAIesFQAD1CwAhgwcCALwMACEFGgAAyBIAIOQFAQDzCwAh6gVAAPULACHrBUAA9QsAIYMHAgC8DAAhB1EAAMkSACBSAADMEgAglwcAAMoSACCYBwAAyxIAIJsHAABQACCcBwAAUAAgnQcAAPECACAJDAAAzxIAIBkAAI4PACAfAACPDwAg5AUBAAAAAeoFQAAAAAHrBUAAAAABtwYBAAAAAf8GQAAAAAGBB0AAAAABAgAAAPECACBRAADJEgAgAwAAAFAAIFEAAMkSACBSAADNEgAgCwAAAFAAIAwAAM4SACAZAADtDgAgHwAA7g4AIEwAAM0SACDkBQEA8wsAIeoFQAD1CwAh6wVAAPULACG3BgEA8wsAIf8GQAD1CwAhgQdAAPULACEJDAAAzhIAIBkAAO0OACAfAADuDgAg5AUBAPMLACHqBUAA9QsAIesFQAD1CwAhtwYBAPMLACH_BkAA9QsAIYEHQAD1CwAhBVEAAJUVACBSAACYFQAglwcAAJYVACCYBwAAlxUAIJ0HAAATACADUQAAlRUAIJcHAACWFQAgnQcAABMAIAUaAADREgAg5AUBAAAAAeoFQAAAAAHrBUAAAAABgwcCAAAAAQNRAADJEgAglwcAAMoSACCdBwAA8QIAIAcgAADTEgAg5AUBAAAAAeoFQAAAAAHrBUAAAAAB_AZAAAAAAf0GAQAAAAH-BgIAAAABBFEAAL0SADCXBwAAvhIAMJkHAADAEgAgnQcAAMESADAGEQAAjhAAIOUFAQAAAAHqBUAAAAAB6wVAAAAAAdQGAQAAAAHVBgEAAAABAgAAAEYAIFEAAN8SACADAAAARgAgUQAA3xIAIFIAAN4SACABTAAAlBUAMAwRAADACwAgEwAArwsAIOEFAAC_CwAw4gUAAEQAEOMFAAC_CwAw5QUBAMMJACHqBUAAxQkAIesFQADFCQAh1AYBAAAAAdUGAQDDCQAh1gYBAMMJACGQBwAAvgsAIAIAAABGACBMAADeEgAgAgAAANwSACBMAADdEgAgCeEFAADbEgAw4gUAANwSABDjBQAA2xIAMOUFAQDDCQAh6gVAAMUJACHrBUAAxQkAIdQGAQDDCQAh1QYBAMMJACHWBgEAwwkAIQnhBQAA2xIAMOIFAADcEgAQ4wUAANsSADDlBQEAwwkAIeoFQADFCQAh6wVAAMUJACHUBgEAwwkAIdUGAQDDCQAh1gYBAMMJACEF5QUBAPMLACHqBUAA9QsAIesFQAD1CwAh1AYBAPMLACHVBgEA8wsAIQYRAACMEAAg5QUBAPMLACHqBUAA9QsAIesFQAD1CwAh1AYBAPMLACHVBgEA8wsAIQYRAACOEAAg5QUBAAAAAeoFQAAAAAHrBUAAAAAB1AYBAAAAAdUGAQAAAAEIEQAAlRAAIOoFQAAAAAHrBUAAAAABuAYBAAAAAbkGAQAAAAG7BgEAAAAB1AYBAAAAAdcGAQAAAAECAAAAQgAgUQAA6xIAIAMAAABCACBRAADrEgAgUgAA6hIAIAFMAACTFQAwDxEAAMALACATAACvCwAg4QUAAMMLADDiBQAAOwAQ4wUAAMMLADDqBUAAxQkAIesFQADFCQAhuAYBAMMJACG5BgEAwwkAIbsGAQDDCQAh1AYBAAAAAdYGAQDDCQAh1wYBAMMJACGRBwAAwQsAIJIHAADCCwAgAgAAAEIAIEwAAOoSACACAAAA6BIAIEwAAOkSACAL4QUAAOcSADDiBQAA6BIAEOMFAADnEgAw6gVAAMUJACHrBUAAxQkAIbgGAQDDCQAhuQYBAMMJACG7BgEAwwkAIdQGAQDDCQAh1gYBAMMJACHXBgEAwwkAIQvhBQAA5xIAMOIFAADoEgAQ4wUAAOcSADDqBUAAxQkAIesFQADFCQAhuAYBAMMJACG5BgEAwwkAIbsGAQDDCQAh1AYBAMMJACHWBgEAwwkAIdcGAQDDCQAhB-oFQAD1CwAh6wVAAPULACG4BgEA8wsAIbkGAQDzCwAhuwYBAPMLACHUBgEA8wsAIdcGAQDzCwAhCBEAAJMQACDqBUAA9QsAIesFQAD1CwAhuAYBAPMLACG5BgEA8wsAIbsGAQDzCwAh1AYBAPMLACHXBgEA8wsAIQgRAACVEAAg6gVAAAAAAesFQAAAAAG4BgEAAAABuQYBAAAAAbsGAQAAAAHUBgEAAAAB1wYBAAAAAQYUAAD6EgAg5AUBAAAAAegFAQAAAAHqBUAAAAAB6wVAAAAAAdsGAAAA-QYCAgAAAD8AIFEAAPkSACADAAAAPwAgUQAA-RIAIFIAAPcSACABTAAAkhUAMAsTAACvCwAgFAAAxgsAIOEFAADECwAw4gUAAD0AEOMFAADECwAw5AUBAAAAAegFAQAAAAHqBUAAxQkAIesFQADFCQAh1gYBAMMJACHbBgAAxQv5BiICAAAAPwAgTAAA9xIAIAIAAAD0EgAgTAAA9RIAIAnhBQAA8xIAMOIFAAD0EgAQ4wUAAPMSADDkBQEAwwkAIegFAQDDCQAh6gVAAMUJACHrBUAAxQkAIdYGAQDDCQAh2wYAAMUL-QYiCeEFAADzEgAw4gUAAPQSABDjBQAA8xIAMOQFAQDDCQAh6AUBAMMJACHqBUAAxQkAIesFQADFCQAh1gYBAMMJACHbBgAAxQv5BiIF5AUBAPMLACHoBQEA8wsAIeoFQAD1CwAh6wVAAPULACHbBgAA9hL5BiIBmgcAAAD5BgIGFAAA-BIAIOQFAQDzCwAh6AUBAPMLACHqBUAA9QsAIesFQAD1CwAh2wYAAPYS-QYiBVEAAI0VACBSAACQFQAglwcAAI4VACCYBwAAjxUAIJ0HAACHAgAgBhQAAPoSACDkBQEAAAAB6AUBAAAAAeoFQAAAAAHrBUAAAAAB2wYAAAD5BgIDUQAAjRUAIJcHAACOFQAgnQcAAIcCACAEUQAA7BIAMJcHAADtEgAwmQcAAO8SACCdBwAA8BIAMARRAADgEgAwlwcAAOESADCZBwAA4xIAIJ0HAADkEgAwBFEAANQSADCXBwAA1RIAMJkHAADXEgAgnQcAANgSADAEUQAAsRIAMJcHAACyEgAwmQcAALQSACCdBwAAtRIAMARRAACQEgAwlwcAAJESADCZBwAAkxIAIJ0HAACUEgAwBFEAAPcRADCXBwAA-BEAMJkHAAD6EQAgnQcAAPsRADAAAAAAAAAB-AUBAAAAAQAAAAVRAACIFQAgUgAAixUAIJcHAACJFQAgmAcAAIoVACCdBwAA_wMAIANRAACIFQAglwcAAIkVACCdBwAA_wMAIAAAAAAAAAdRAACDFQAgUgAAhhUAIJcHAACEFQAgmAcAAIUVACCbBwAAYQAgnAcAAGEAIJ0HAABsACADUQAAgxUAIJcHAACEFQAgnQcAAGwAIAAAAAAABVEAAP4UACBSAACBFQAglwcAAP8UACCYBwAAgBUAIJ0HAAD_AwAgA1EAAP4UACCXBwAA_xQAIJ0HAAD_AwAgAAAAAAAAAAAFUQAA-RQAIFIAAPwUACCXBwAA-hQAIJgHAAD7FAAgnQcAAP8DACADUQAA-RQAIJcHAAD6FAAgnQcAAP8DACAAAAADFwAAvRQAIBoAALgUACCgBwAAvhQAIAkIAADgDwAgEQAAwRQAIBsAALgUACA4AADRFAAgOgAA0xQAIDsAAOsRACA8AADUFAAgPQAA1RQAIKAHAADWFAAgAAAB-AUBAAAAAQAAAAAABVEAAPQUACBSAAD3FAAglwcAAPUUACCYBwAA9hQAIJ0HAABKACADUQAA9BQAIJcHAAD1FAAgnQcAAEoAIAAAAAAABVEAAO8UACBSAADyFAAglwcAAPAUACCYBwAA8RQAIJ0HAAD_AwAgA1EAAO8UACCXBwAA8BQAIJ0HAAD_AwAgAAAABVEAAOkUACBSAADtFAAglwcAAOoUACCYBwAA7BQAIJ0HAACeAgAgC1EAAMETADBSAADFEwAwlwcAAMITADCYBwAAwxMAMJkHAADEEwAgmgcAALQOADCbBwAAtA4AMJwHAAC0DgAwnQcAALQOADCeBwAAxhMAMJ8HAAC3DgAwEBAAAOIOACAUAADgDgAgKAAA_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_ACBRAADtEwAgAwAAAD0AIFEAAO0TACBSAADxEwAgCAAAAD0AIBMAAIsTACBMAADxEwAg5AUBAPMLACHqBUAA9QsAIesFQAD1CwAh1gYBAPMLACHbBgAA9hL5BiIGEwAAixMAIOQFAQDzCwAh6gVAAPULACHrBUAA9QsAIdYGAQDzCwAh2wYAAPYS-QYiBkMAANkRACDkBQEAAAAB6gVAAAAAAesFQAAAAAHQBgEAAAAB2wYAAADwBgICAAAACwAgUQAA8hMAIAMAAAAIACBRAADyEwAgUgAA9hMAIAgAAAAIACBDAADYEQAgTAAA9hMAIOQFAQDzCwAh6gVAAPULACHrBUAA9QsAIdAGAQDzCwAh2wYAAMsR8AYiBkMAANgRACDkBQEA8wsAIeoFQAD1CwAh6wVAAPULACHQBgEA8wsAIdsGAADLEfAGIgUFAAD9EwAg5AUBAAAAAeoFQAAAAAHrBUAAAAABiQcBAAAAAQIAAAABACBRAAD3EwAgAwAAAAMAIFEAAPcTACBSAAD7EwAgBwAAAAMAIAUAAPwTACBMAAD7EwAg5AUBAPMLACHqBUAA9QsAIesFQAD1CwAhiQcBAPMLACEFBQAA_BMAIOQFAQDzCwAh6gVAAPULACHrBUAA9QsAIYkHAQDzCwAhBVEAAOMUACBSAADmFAAglwcAAOQUACCYBwAA5RQAIJ0HAADwAQAgA1EAAOMUACCXBwAA5BQAIJ0HAADwAQAgA1EAAPcTACCXBwAA-BMAIJ0HAAABACADUQAA8hMAIJcHAADzEwAgnQcAAAsAIANRAADtEwAglwcAAO4TACCdBwAAPwAgA1EAAOgTACCXBwAA6RMAIJ0HAAA0ACADBQAA2xQAIBQAAMQUACCgBwAA3BQAIAMUAADEFAAgQwAA2BQAIKAHAADaFAAgAxMAALEUACAUAADEFAAgoAcAAMUUACAB-AUBAAAAAQAAAAtRAACKFAAwUgAAjxQAMJcHAACLFAAwmAcAAIwUADCZBwAAjRQAIJoHAACOFAAwmwcAAI4UADCcBwAAjhQAMJ0HAACOFAAwngcAAJAUADCfBwAAkRQAMAUUAACXFAAg5AUBAAAAAegFAQAAAAHqBUAAAAAB6wVAAAAAAQIAAAABACBRAACWFAAgAwAAAAEAIFEAAJYUACBSAACUFAAgAUwAAOIUADAKBQAA7gsAIBQAAMYLACDhBQAA7QsAMOIFAAADABDjBQAA7QsAMOQFAQAAAAHoBQEAAAAB6gVAAMUJACHrBUAAxQkAIYkHAQDDCQAhAgAAAAEAIEwAAJQUACACAAAAkhQAIEwAAJMUACAI4QUAAJEUADDiBQAAkhQAEOMFAACRFAAw5AUBAMMJACHoBQEAwwkAIeoFQADFCQAh6wVAAMUJACGJBwEAwwkAIQjhBQAAkRQAMOIFAACSFAAQ4wUAAJEUADDkBQEAwwkAIegFAQDDCQAh6gVAAMUJACHrBUAAxQkAIYkHAQDDCQAhBOQFAQDzCwAh6AUBAPMLACHqBUAA9QsAIesFQAD1CwAhBRQAAJUUACDkBQEA8wsAIegFAQDzCwAh6gVAAPULACHrBUAA9QsAIQVRAADdFAAgUgAA4BQAIJcHAADeFAAgmAcAAN8UACCdBwAAhwIAIAUUAACXFAAg5AUBAAAAAegFAQAAAAHqBUAAAAAB6wVAAAAAAQNRAADdFAAglwcAAN4UACCdBwAAhwIAIARRAACKFAAwlwcAAIsUADCZBwAAjRQAIJ0HAACOFAAwAAH4BQEAAAABAAAAAhIAAN0TACCgBwAA3hMAIAH4BQEAAAABBg4AAMUPACAPAADGDwAgEAAAxw8AIOwFAADvCwAgvAYAAO8LACCgBwAAyA8AIAH4BQEAAAABAfgFAQAAAAEB-AUBAAAAAQU1AACYDAAg5gUAAO8LACDnBQAA7wsAIOwFAADvCwAgoAcAAJkMACAAAfgFAQAAAAEEMQAApgwAIOYFAADvCwAghAYAAO8LACCgBwAApwwAIAH4BQEAAAABBC0AANYMACAvAADXDAAgnwYAAO8LACCgBwAA2AwAIAH4BQEAAAABBSUAAOgRACAnAADpEQAgKQAA6hEAICsAAOsRACCgBwAA7BEAIAH4BQEAAAABBgwAAKoTACA5AACbDwAgPgAA0xEAID8AAOoRACDSBgAA7wsAIKAHAACjFAAgAfgFAQAAAAELEAAAxw8AIBQAAOgRACAoAACtFAAgQgAA1xQAIEMAANgUACBEAADpEQAgygYAAO8LACDLBgAA7wsAIM8GAADvCwAg0AYAAO8LACCgBwAA2RQAIAH4BQEAAAABCAMAAIETACAVAACCEwAgFgAAgxMAICEAAIQTACAiAACFEwAgIwAAhhMAIPcGAADvCwAgoAcAAIcTACAB-AUBAAAAAQAB-AUBAAAAAQMTAACxFAAgHAAAsxQAIKAHAAC0FAAgBxQAAOgRACAbAAC4FAAgHgAAuRQAIOgFAADvCwAg-QYAAO8LACD6BgAA7wsAIKAHAAC6FAAgAfgFAQAAAAEFDAAAqhMAIBgAAKkTACAZAACrEwAgHwAArBMAIKAHAACtEwAgBBcAALUUACAdAAC2FAAg-wYAAO8LACCgBwAAtxQAIAH4BQEAAAABAxMAALEUACAZAACrEwAgoAcAALIUACAB-AUBAAAAAQMTAACxFAAgIAAAvxQAIKAHAADAFAAgAfgFAQAAAAEAAfgFAQAAAAEGAwAAnREAIAcAAJoPACAOAACfEQAgDwAAoBEAIBIAAJ4RACCgBwAAoREAIAH4BQEAAAABAfgFAQAAAAEFBgAAghQAICUAAOgRACBFAACDFAAgRgAAhBQAIKAHAACFFAAgAfgFAQAAAAEB-AUBAAAAAQH4BQEAAAABAAH4BQEAAAABDgkAAM0UACAKAADOFAAgCwAAzxQAIAwAAKoTACA2AAClFAAg5gUAAO8LACDnBQAA7wsAIOwFAADvCwAg_AUAAO8LACD9BQAA7wsAIP4FAADvCwAg_wUAAO8LACC3BgAA7wsAIKAHAADQFAAgCAsAAKQUACA2AAClFAAg5gUAAO8LACDsBQAA7wsAIPwFAADvCwAg_QUAAO8LACD-BQAA7wsAIKAHAACmFAAgAfgFAQAAAAECCAAA4A8AIKAHAADhDwAgAggAAOAPACCgBwAA8A8AIAkIAADgDwAgKAAArRQAIDgAANEUACDmBQAA7wsAIOcFAADvCwAg6QUAAO8LACDsBQAA7wsAIMUGAADvCwAgoAcAANIUACAB-AUBAAAAAQQHAACaDwAgOQAAmw8AIK0GAADvCwAgoAcAAJwPACAB-AUBAAAAAQAAAAH4BQEAAAABBEAAAJ4UACBBAADTEQAg6AYAAO8LACCgBwAAnxQAIAMDAADSEQAgPgAA0xEAIKAHAADUEQAgAfgFAQAAAAEB-AUBAAAAAQMDAACZFAAg1wYAAO8LACCgBwAAmhQAIAH4BQEAAAABCCUAAIEUACBFAAD_EwAgRgAAgBQAIOQFAQAAAAGOBgAAAIgHApEGAAAAiQcChQcBAAAAAYYHAQAAAAECAAAAhwIAIFEAAN0UACADAAAAigIAIFEAAN0UACBSAADhFAAgCgAAAIoCACAlAADnEwAgRQAA5RMAIEYAAOYTACBMAADhFAAg5AUBAPMLACGOBgAA4hOIByKRBgAA4xOJByKFBwEA8wsAIYYHAQDzCwAhCCUAAOcTACBFAADlEwAgRgAA5hMAIOQFAQDzCwAhjgYAAOITiAcikQYAAOMTiQcihQcBAPMLACGGBwEA8wsAIQTkBQEAAAAB6AUBAAAAAeoFQAAAAAHrBUAAAAABB-QFAQAAAAHqBUAAAAAB6wVAAAAAAbgGAQAAAAG5BgEAAAABuwYBAAAAAdcGAQAAAAECAAAA8AEAIFEAAOMUACADAAAA8wEAIFEAAOMUACBSAADnFAAgCQAAAPMBACBMAADnFAAg5AUBAPMLACHqBUAA9QsAIesFQAD1CwAhuAYBAPMLACG5BgEA8wsAIbsGAQDzCwAh1wYBAPQLACEH5AUBAPMLACHqBUAA9QsAIesFQAD1CwAhuAYBAPMLACG5BgEA8wsAIbsGAQDzCwAh1wYBAPQLACEF5AUBAAAAAeUFAQAAAAHqBUAAAAAB6wVAAAAAAegGAQAAAAEE5AUBAAAAAeUFAQAAAAHqBUAAAAAB6wVAAAAAAQIAAACeAgAgUQAA6RQAIAvkBQEAAAAB5QUBAAAAAegFAQAAAAHpBQEAAAAB6gVAAAAAAesFQAAAAAGOBgAAAM0GAsoGAQAAAAHLBgEAAAABzgYAAADOBgLQBgEAAAABAwAAAKECACBRAADpFAAgUgAA7hQAIAYAAAChAgAgTAAA7hQAIOQFAQDzCwAh5QUBAPMLACHqBUAA9QsAIesFQAD1CwAhBOQFAQDzCwAh5QUBAPMLACHqBUAA9QsAIesFQAD1CwAhDQMAAPsSACAVAAD8EgAgFgAA_RIAICIAAP8SACAjAACAEwAg5AUBAAAAAeUFAQAAAAHqBUAAAAAB6wVAAAAAAY4GAAAA7wYCrQYBAAAAAfYGAAAA9gYC9wYBAAAAAQIAAAD_AwAgUQAA7xQAIAMAAACCBAAgUQAA7xQAIFIAAPMUACAPAAAAggQAIAMAAPERACAVAADyEQAgFgAA8xEAICIAAPURACAjAAD2EQAgTAAA8xQAIOQFAQDzCwAh5QUBAPMLACHqBUAA9QsAIesFQAD1CwAhjgYAALUR7wYirQYBAPMLACH2BgAA8BH2BiL3BgEA9AsAIQ0DAADxEQAgFQAA8hEAIBYAAPMRACAiAAD1EQAgIwAA9hEAIOQFAQDzCwAh5QUBAPMLACHqBUAA9QsAIesFQAD1CwAhjgYAALUR7wYirQYBAPMLACH2BgAA8BH2BiL3BgEA9AsAIQgTAAC7EwAg5AUBAAAAAeoFQAAAAAHrBUAAAAAB1gYBAAAAAfwGQAAAAAH9BgEAAAAB_gYCAAAAAQIAAABKACBRAAD0FAAgAwAAAEgAIFEAAPQUACBSAAD4FAAgCgAAAEgAIBMAALoTACBMAAD4FAAg5AUBAPMLACHqBUAA9QsAIesFQAD1CwAh1gYBAPMLACH8BkAA9QsAIf0GAQDzCwAh_gYCALwMACEIEwAAuhMAIOQFAQDzCwAh6gVAAPULACHrBUAA9QsAIdYGAQDzCwAh_AZAAPULACH9BgEA8wsAIf4GAgC8DAAhDQMAAPsSACAVAAD8EgAgFgAA_RIAICEAAP4SACAiAAD_EgAg5AUBAAAAAeUFAQAAAAHqBUAAAAAB6wVAAAAAAY4GAAAA7wYCrQYBAAAAAfYGAAAA9gYC9wYBAAAAAQIAAAD_AwAgUQAA-RQAIAMAAACCBAAgUQAA-RQAIFIAAP0UACAPAAAAggQAIAMAAPERACAVAADyEQAgFgAA8xEAICEAAPQRACAiAAD1EQAgTAAA_RQAIOQFAQDzCwAh5QUBAPMLACHqBUAA9QsAIesFQAD1CwAhjgYAALUR7wYirQYBAPMLACH2BgAA8BH2BiL3BgEA9AsAIQ0DAADxEQAgFQAA8hEAIBYAAPMRACAhAAD0EQAgIgAA9REAIOQFAQDzCwAh5QUBAPMLACHqBUAA9QsAIesFQAD1CwAhjgYAALUR7wYirQYBAPMLACH2BgAA8BH2BiL3BgEA9AsAIQ0DAAD7EgAgFQAA_BIAIBYAAP0SACAhAAD-EgAgIwAAgBMAIOQFAQAAAAHlBQEAAAAB6gVAAAAAAesFQAAAAAGOBgAAAO8GAq0GAQAAAAH2BgAAAPYGAvcGAQAAAAECAAAA_wMAIFEAAP4UACADAAAAggQAIFEAAP4UACBSAACCFQAgDwAAAIIEACADAADxEQAgFQAA8hEAIBYAAPMRACAhAAD0EQAgIwAA9hEAIEwAAIIVACDkBQEA8wsAIeUFAQDzCwAh6gVAAPULACHrBUAA9QsAIY4GAAC1Ee8GIq0GAQDzCwAh9gYAAPAR9gYi9wYBAPQLACENAwAA8REAIBUAAPIRACAWAADzEQAgIQAA9BEAICMAAPYRACDkBQEA8wsAIeUFAQDzCwAh6gVAAPULACHrBUAA9QsAIY4GAAC1Ee8GIq0GAQDzCwAh9gYAAPAR9gYi9wYBAPQLACEIEwAAmxMAIOQFAQAAAAHqBUAAAAAB6wVAAAAAAdYGAQAAAAH8BkAAAAAB_QYBAAAAAf4GAgAAAAECAAAAbAAgUQAAgxUAIAMAAABhACBRAACDFQAgUgAAhxUAIAoAAABhACATAACaEwAgTAAAhxUAIOQFAQDzCwAh6gVAAPULACHrBUAA9QsAIdYGAQDzCwAh_AZAAPULACH9BgEA8wsAIf4GAgC8DAAhCBMAAJoTACDkBQEA8wsAIeoFQAD1CwAh6wVAAPULACHWBgEA8wsAIfwGQAD1CwAh_QYBAPMLACH-BgIAvAwAIQ0VAAD8EgAgFgAA_RIAICEAAP4SACAiAAD_EgAgIwAAgBMAIOQFAQAAAAHlBQEAAAAB6gVAAAAAAesFQAAAAAGOBgAAAO8GAq0GAQAAAAH2BgAAAPYGAvcGAQAAAAECAAAA_wMAIFEAAIgVACADAAAAggQAIFEAAIgVACBSAACMFQAgDwAAAIIEACAVAADyEQAgFgAA8xEAICEAAPQRACAiAAD1EQAgIwAA9hEAIEwAAIwVACDkBQEA8wsAIeUFAQDzCwAh6gVAAPULACHrBUAA9QsAIY4GAAC1Ee8GIq0GAQDzCwAh9gYAAPAR9gYi9wYBAPQLACENFQAA8hEAIBYAAPMRACAhAAD0EQAgIgAA9REAICMAAPYRACDkBQEA8wsAIeUFAQDzCwAh6gVAAPULACHrBUAA9QsAIY4GAAC1Ee8GIq0GAQDzCwAh9gYAAPAR9gYi9wYBAPQLACEIBgAA_hMAICUAAIEUACBFAAD_EwAg5AUBAAAAAY4GAAAAiAcCkQYAAACJBwKFBwEAAAABhgcBAAAAAQIAAACHAgAgUQAAjRUAIAMAAACKAgAgUQAAjRUAIFIAAJEVACAKAAAAigIAIAYAAOQTACAlAADnEwAgRQAA5RMAIEwAAJEVACDkBQEA8wsAIY4GAADiE4gHIpEGAADjE4kHIoUHAQDzCwAhhgcBAPMLACEIBgAA5BMAICUAAOcTACBFAADlEwAg5AUBAPMLACGOBgAA4hOIByKRBgAA4xOJByKFBwEA8wsAIYYHAQDzCwAhBeQFAQAAAAHoBQEAAAAB6gVAAAAAAesFQAAAAAHbBgAAAPkGAgfqBUAAAAAB6wVAAAAAAbgGAQAAAAG5BgEAAAABuwYBAAAAAdQGAQAAAAHXBgEAAAABBeUFAQAAAAHqBUAAAAAB6wVAAAAAAdQGAQAAAAHVBgEAAAABEAgAAJUPACARAACRDwAgOAAAhxAAIDoAAJMPACA7AACUDwAgPAAAlg8AID0AAJcPACDkBQEAAAAB5QUBAAAAAeoFQAAAAAHrBUAAAAABlwYBAAAAAbQGAQAAAAHFBgEAAAAB0wYBAAAAAdQGAQAAAAECAAAAEwAgUQAAlRUAIAMAAAARACBRAACVFQAgUgAAmRUAIBIAAAARACAIAADPDQAgEQAAyw0AIDgAAIYQACA6AADNDQAgOwAAzg0AIDwAANANACA9AADRDQAgTAAAmRUAIOQFAQDzCwAh5QUBAPMLACHqBUAA9QsAIesFQAD1CwAhlwYBAPMLACG0BgEA8wsAIcUGAQDzCwAh0wYBAPMLACHUBgEA8wsAIRAIAADPDQAgEQAAyw0AIDgAAIYQACA6AADNDQAgOwAAzg0AIDwAANANACA9AADRDQAg5AUBAPMLACHlBQEA8wsAIeoFQAD1CwAh6wVAAPULACGXBgEA8wsAIbQGAQDzCwAhxQYBAPMLACHTBgEA8wsAIdQGAQDzCwAhBOQFAQAAAAHqBUAAAAAB6wVAAAAAAYMHAgAAAAEG5AUBAAAAAeoFQAAAAAHrBUAAAAAB_AZAAAAAAf0GAQAAAAH-BgIAAAABA-QFAQAAAAHqBUAAAAAB6wVAAAAAAQbkBQEAAAAB6gVAAAAAAesFQAAAAAH8BkAAAAAB_QYBAAAAAf4GAgAAAAEKDAAAzxIAIBgAAI0PACAfAACPDwAg5AUBAAAAAeoFQAAAAAHrBUAAAAABtwYBAAAAAf8GQAAAAAGBB0AAAAABggcBAAAAAQIAAADxAgAgUQAAnhUAIAMAAABQACBRAACeFQAgUgAAohUAIAwAAABQACAMAADOEgAgGAAA7A4AIB8AAO4OACBMAACiFQAg5AUBAPMLACHqBUAA9QsAIesFQAD1CwAhtwYBAPMLACH_BkAA9QsAIYEHQAD1CwAhggcBAPMLACEKDAAAzhIAIBgAAOwOACAfAADuDgAg5AUBAPMLACHqBUAA9QsAIesFQAD1CwAhtwYBAPMLACH_BkAA9QsAIYEHQAD1CwAhggcBAPMLACEF5AUBAAAAAeoFQAAAAAHrBUAAAAAB_wZAAAAAAYAHAQAAAAEG5AUBAAAAAeoFQAAAAAHrBUAAAAAB_AZAAAAAAf0GAQAAAAH-BgIAAAABCxAAAJcRACARAACmEQAgFAAAkxEAICQAAJQRACAsAACWEQAg5AUBAAAAAegFAQAAAAHqBUAAAAAB6wVAAAAAAdQGAQAAAAHbBgAAANsGAgIAAAA0ACBRAAClFQAgAwAAADIAIFEAAKUVACBSAACpFQAgDQAAADIAIBAAANAQACARAAClEQAgFAAAzBAAICQAAM0QACAsAADPEAAgTAAAqRUAIOQFAQDzCwAh6AUBAPMLACHqBUAA9QsAIesFQAD1CwAh1AYBAPMLACHbBgAAyhDbBiILEAAA0BAAIBEAAKURACAUAADMEAAgJAAAzRAAICwAAM8QACDkBQEA8wsAIegFAQDzCwAh6gVAAPULACHrBUAA9QsAIdQGAQDzCwAh2wYAAMoQ2wYiBz4AANERACDkBQEAAAAB5QUBAAAAAeoFQAAAAAHrBUAAAAABjgYAAADvBgKtBgEAAAABAgAAAPwEACBRAACqFQAgAwAAANMBACBRAACqFQAgUgAArhUAIAkAAADTAQAgPgAAtxEAIEwAAK4VACDkBQEA8wsAIeUFAQDzCwAh6gVAAPULACHrBUAA9QsAIY4GAAC1Ee8GIq0GAQDzCwAhBz4AALcRACDkBQEA8wsAIeUFAQDzCwAh6gVAAPULACHrBUAA9QsAIY4GAAC1Ee8GIq0GAQDzCwAhCAYAAP4TACAlAACBFAAgRgAAgBQAIOQFAQAAAAGOBgAAAIgHApEGAAAAiQcChQcBAAAAAYYHAQAAAAECAAAAhwIAIFEAAK8VACADAAAAigIAIFEAAK8VACBSAACzFQAgCgAAAIoCACAGAADkEwAgJQAA5xMAIEYAAOYTACBMAACzFQAg5AUBAPMLACGOBgAA4hOIByKRBgAA4xOJByKFBwEA8wsAIYYHAQDzCwAhCAYAAOQTACAlAADnEwAgRgAA5hMAIOQFAQDzCwAhjgYAAOITiAcikQYAAOMTiQcihQcBAPMLACGGBwEA8wsAIQXkBQEAAAAB6AUBAAAAAeoFQAAAAAHrBUAAAAAB2wYAAADwBgIL5AUBAAAAAeUFAQAAAAHoBQEAAAAB6QUBAAAAAeoFQAAAAAHrBUAAAAABjgYAAADNBgLKBgEAAAABywYBAAAAAc4GAAAAzgYCzwYBAAAAAQkDAACYEQAgBwAAmREAIA4AAJsRACAPAACcEQAg5AUBAAAAAeoFQAAAAAHrBUAAAAABjgYAAADaBgKRBgAAANkGAgIAAADRBQAgUQAAthUAIAMAAADUBQAgUQAAthUAIFIAALoVACALAAAA1AUAIAMAAJsQACAHAACcEAAgDgAAnhAAIA8AAJ8QACBMAAC6FQAg5AUBAPMLACHqBUAA9QsAIesFQAD1CwAhjgYAAJoQ2gYikQYAAJkQ2QYiCQMAAJsQACAHAACcEAAgDgAAnhAAIA8AAJ8QACDkBQEA8wsAIeoFQAD1CwAh6wVAAPULACGOBgAAmhDaBiKRBgAAmRDZBiIJBwAAmREAIA4AAJsRACAPAACcEQAgEgAAmhEAIOQFAQAAAAHqBUAAAAAB6wVAAAAAAY4GAAAA2gYCkQYAAADZBgICAAAA0QUAIFEAALsVACADAAAA1AUAIFEAALsVACBSAAC_FQAgCwAAANQFACAHAACcEAAgDgAAnhAAIA8AAJ8QACASAACdEAAgTAAAvxUAIOQFAQDzCwAh6gVAAPULACHrBUAA9QsAIY4GAACaENoGIpEGAACZENkGIgkHAACcEAAgDgAAnhAAIA8AAJ8QACASAACdEAAg5AUBAPMLACHqBUAA9QsAIesFQAD1CwAhjgYAAJoQ2gYikQYAAJkQ2QYiCAYAAP4TACBFAAD_EwAgRgAAgBQAIOQFAQAAAAGOBgAAAIgHApEGAAAAiQcChQcBAAAAAYYHAQAAAAECAAAAhwIAIFEAAMAVACAREAAA4g4AIBQAAOAOACAoAAD9DwAgQgAA3g4AIEMAAN8OACDkBQEAAAAB5QUBAAAAAegFAQAAAAHpBQEAAAAB6gVAAAAAAesFQAAAAAGOBgAAAM0GAsoGAQAAAAHLBgEAAAABzgYAAADOBgLPBgEAAAAB0AYBAAAAAQIAAAAPACBRAADCFQAgAwAAAA0AIFEAAMIVACBSAADGFQAgEwAAAA0AIBAAAMEOACAUAAC_DgAgKAAA_A8AIEIAAL0OACBDAAC-DgAgTAAAxhUAIOQFAQDzCwAh5QUBAPMLACHoBQEA8wsAIekFAQDzCwAh6gVAAPULACHrBUAA9QsAIY4GAAC6Ds0GIsoGAQD0CwAhywYBAPQLACHOBgAAuw7OBiLPBgEA9AsAIdAGAQD0CwAhERAAAMEOACAUAAC_DgAgKAAA_A8AIEIAAL0OACBDAAC-DgAg5AUBAPMLACHlBQEA8wsAIegFAQDzCwAh6QUBAPMLACHqBUAA9QsAIesFQAD1CwAhjgYAALoOzQYiygYBAPQLACHLBgEA9AsAIc4GAAC7Ds4GIs8GAQD0CwAh0AYBAPQLACED5AUBAAAAAbMGAQAAAAHbBgAAAPUGAgoMAACCEAAgOQAA5Q4AID4AAOQOACDkBQEAAAAB5QUBAAAAAeoFQAAAAAHrBUAAAAABtwYBAAAAAdEGAQAAAAHSBgEAAAABAgAAALYBACBRAADIFQAgAwAAAK8BACBRAADIFQAgUgAAzBUAIAwAAACvAQAgDAAAgRAAIDkAAJQOACA-AACTDgAgTAAAzBUAIOQFAQDzCwAh5QUBAPMLACHqBUAA9QsAIesFQAD1CwAhtwYBAPMLACHRBgEA8wsAIdIGAQD0CwAhCgwAAIEQACA5AACUDgAgPgAAkw4AIOQFAQDzCwAh5QUBAPMLACHqBUAA9QsAIesFQAD1CwAhtwYBAPMLACHRBgEA8wsAIdIGAQD0CwAhA-QFAQAAAAHpBQEAAAAB2wYAAAD0BgIQCAAAlQ8AIBEAAJEPACAbAACSDwAgOAAAhxAAIDoAAJMPACA8AACWDwAgPQAAlw8AIOQFAQAAAAHlBQEAAAAB6gVAAAAAAesFQAAAAAGXBgEAAAABtAYBAAAAAcUGAQAAAAHTBgEAAAAB1AYBAAAAAQIAAAATACBRAADOFQAgAwAAABEAIFEAAM4VACBSAADSFQAgEgAAABEAIAgAAM8NACARAADLDQAgGwAAzA0AIDgAAIYQACA6AADNDQAgPAAA0A0AID0AANENACBMAADSFQAg5AUBAPMLACHlBQEA8wsAIeoFQAD1CwAh6wVAAPULACGXBgEA8wsAIbQGAQDzCwAhxQYBAPMLACHTBgEA8wsAIdQGAQDzCwAhEAgAAM8NACARAADLDQAgGwAAzA0AIDgAAIYQACA6AADNDQAgPAAA0A0AID0AANENACDkBQEA8wsAIeUFAQDzCwAh6gVAAPULACHrBUAA9QsAIZcGAQDzCwAhtAYBAPMLACHFBgEA8wsAIdMGAQDzCwAh1AYBAPMLACED5AUBAAAAAdsGAAAA8QYC8QYBAAAAAQoMAADPEgAgGAAAjQ8AIBkAAI4PACDkBQEAAAAB6gVAAAAAAesFQAAAAAG3BgEAAAAB_wZAAAAAAYEHQAAAAAGCBwEAAAABAgAAAPECACBRAADUFQAgAwAAAFAAIFEAANQVACBSAADYFQAgDAAAAFAAIAwAAM4SACAYAADsDgAgGQAA7Q4AIEwAANgVACDkBQEA8wsAIeoFQAD1CwAh6wVAAPULACG3BgEA8wsAIf8GQAD1CwAhgQdAAPULACGCBwEA8wsAIQoMAADOEgAgGAAA7A4AIBkAAO0OACDkBQEA8wsAIeoFQAD1CwAh6wVAAPULACG3BgEA8wsAIf8GQAD1CwAhgQdAAPULACGCBwEA8wsAIQvkBQEAAAAB6gVAAAAAAesFQAAAAAGmBhAAAAABqAYBAAAAAa0GAQAAAAGuBgIAAAABrwZAAAAAAbAGgAAAAAGxBgEAAAABswYBAAAAAQMAAACKAgAgUQAAwBUAIFIAANwVACAKAAAAigIAIAYAAOQTACBFAADlEwAgRgAA5hMAIEwAANwVACDkBQEA8wsAIY4GAADiE4gHIpEGAADjE4kHIoUHAQDzCwAhhgcBAPMLACEIBgAA5BMAIEUAAOUTACBGAADmEwAg5AUBAPMLACGOBgAA4hOIByKRBgAA4xOJByKFBwEA8wsAIYYHAQDzCwAhBeQFAQAAAAHoBQEAAAAB6gVAAAAAAesFQAAAAAHbBgAAANsGAgjkBQEAAAAB5QUBAAAAAeoFQAAAAAHrBUAAAAABlwYBAAAAAbQGAQAAAAHFBgEAAAAB0wYBAAAAARBAAQAAAAFCAQAAAAHqBUAAAAAB6wVAAAAAAcoGAQAAAAHdBgEAAAAB4gYBAAAAAeQGAQAAAAHlBgEAAAAB5wYAAADnBgLoBgEAAAAB6QYBAAAAAeoGAQAAAAHrBgEAAAAB7AYBAAAAAe0GAQAAAAEJAwAAmBEAIAcAAJkRACAPAACcEQAgEgAAmhEAIOQFAQAAAAHqBUAAAAAB6wVAAAAAAY4GAAAA2gYCkQYAAADZBgICAAAA0QUAIFEAAOAVACANAwAA-xIAIBYAAP0SACAhAAD-EgAgIgAA_xIAICMAAIATACDkBQEAAAAB5QUBAAAAAeoFQAAAAAHrBUAAAAABjgYAAADvBgKtBgEAAAAB9gYAAAD2BgL3BgEAAAABAgAAAP8DACBRAADiFQAgAwAAANQFACBRAADgFQAgUgAA5hUAIAsAAADUBQAgAwAAmxAAIAcAAJwQACAPAACfEAAgEgAAnRAAIEwAAOYVACDkBQEA8wsAIeoFQAD1CwAh6wVAAPULACGOBgAAmhDaBiKRBgAAmRDZBiIJAwAAmxAAIAcAAJwQACAPAACfEAAgEgAAnRAAIOQFAQDzCwAh6gVAAPULACHrBUAA9QsAIY4GAACaENoGIpEGAACZENkGIgMAAACCBAAgUQAA4hUAIFIAAOkVACAPAAAAggQAIAMAAPERACAWAADzEQAgIQAA9BEAICIAAPURACAjAAD2EQAgTAAA6RUAIOQFAQDzCwAh5QUBAPMLACHqBUAA9QsAIesFQAD1CwAhjgYAALUR7wYirQYBAPMLACH2BgAA8BH2BiL3BgEA9AsAIQ0DAADxEQAgFgAA8xEAICEAAPQRACAiAAD1EQAgIwAA9hEAIOQFAQDzCwAh5QUBAPMLACHqBUAA9QsAIesFQAD1CwAhjgYAALUR7wYirQYBAPMLACH2BgAA8BH2BiL3BgEA9AsAIQkDAACYEQAgBwAAmREAIA4AAJsRACASAACaEQAg5AUBAAAAAeoFQAAAAAHrBUAAAAABjgYAAADaBgKRBgAAANkGAgIAAADRBQAgUQAA6hUAIA0DAAD7EgAgFQAA_BIAICEAAP4SACAiAAD_EgAgIwAAgBMAIOQFAQAAAAHlBQEAAAAB6gVAAAAAAesFQAAAAAGOBgAAAO8GAq0GAQAAAAH2BgAAAPYGAvcGAQAAAAECAAAA_wMAIFEAAOwVACADAAAA1AUAIFEAAOoVACBSAADwFQAgCwAAANQFACADAACbEAAgBwAAnBAAIA4AAJ4QACASAACdEAAgTAAA8BUAIOQFAQDzCwAh6gVAAPULACHrBUAA9QsAIY4GAACaENoGIpEGAACZENkGIgkDAACbEAAgBwAAnBAAIA4AAJ4QACASAACdEAAg5AUBAPMLACHqBUAA9QsAIesFQAD1CwAhjgYAAJoQ2gYikQYAAJkQ2QYiAwAAAIIEACBRAADsFQAgUgAA8xUAIA8AAACCBAAgAwAA8REAIBUAAPIRACAhAAD0EQAgIgAA9REAICMAAPYRACBMAADzFQAg5AUBAPMLACHlBQEA8wsAIeoFQAD1CwAh6wVAAPULACGOBgAAtRHvBiKtBgEA8wsAIfYGAADwEfYGIvcGAQD0CwAhDQMAAPERACAVAADyEQAgIQAA9BEAICIAAPURACAjAAD2EQAg5AUBAPMLACHlBQEA8wsAIeoFQAD1CwAh6wVAAPULACGOBgAAtRHvBiKtBgEA8wsAIfYGAADwEfYGIvcGAQD0CwAhBjkAAJkPACDkBQEAAAAB5QUBAAAAAeoFQAAAAAHrBUAAAAABrQYBAAAAAQIAAAD3BwAgUQAA9BUAIAMAAACtAQAgUQAA9BUAIFIAAPgVACAIAAAArQEAIDkAAI8NACBMAAD4FQAg5AUBAPMLACHlBQEA8wsAIeoFQAD1CwAh6wVAAPULACGtBgEA9AsAIQY5AACPDQAg5AUBAPMLACHlBQEA8wsAIeoFQAD1CwAh6wVAAPULACGtBgEA9AsAIRAIAACVDwAgEQAAkQ8AIBsAAJIPACA4AACHEAAgOwAAlA8AIDwAAJYPACA9AACXDwAg5AUBAAAAAeUFAQAAAAHqBUAAAAAB6wVAAAAAAZcGAQAAAAG0BgEAAAABxQYBAAAAAdMGAQAAAAHUBgEAAAABAgAAABMAIFEAAPkVACADAAAAEQAgUQAA-RUAIFIAAP0VACASAAAAEQAgCAAAzw0AIBEAAMsNACAbAADMDQAgOAAAhhAAIDsAAM4NACA8AADQDQAgPQAA0Q0AIEwAAP0VACDkBQEA8wsAIeUFAQDzCwAh6gVAAPULACHrBUAA9QsAIZcGAQDzCwAhtAYBAPMLACHFBgEA8wsAIdMGAQDzCwAh1AYBAPMLACEQCAAAzw0AIBEAAMsNACAbAADMDQAgOAAAhhAAIDsAAM4NACA8AADQDQAgPQAA0Q0AIOQFAQDzCwAh5QUBAPMLACHqBUAA9QsAIesFQAD1CwAhlwYBAPMLACG0BgEA8wsAIcUGAQDzCwAh0wYBAPMLACHUBgEA8wsAIQoMAACCEAAgOQAA5Q4AID8AAOYOACDkBQEAAAAB5QUBAAAAAeoFQAAAAAHrBUAAAAABtwYBAAAAAdEGAQAAAAHSBgEAAAABAgAAALYBACBRAAD-FQAgAwAAAK8BACBRAAD-FQAgUgAAghYAIAwAAACvAQAgDAAAgRAAIDkAAJQOACA_AACVDgAgTAAAghYAIOQFAQDzCwAh5QUBAPMLACHqBUAA9QsAIesFQAD1CwAhtwYBAPMLACHRBgEA8wsAIdIGAQD0CwAhCgwAAIEQACA5AACUDgAgPwAAlQ4AIOQFAQDzCwAh5QUBAPMLACHqBUAA9QsAIesFQAD1CwAhtwYBAPMLACHRBgEA8wsAIdIGAQD0CwAhD-QFAQAAAAHlBQEAAAAB5gUBAAAAAecFAQAAAAHqBUAAAAAB6wVAAAAAAewFQAAAAAH8BQEAAAAB_QUBAAAAAf4FAQAAAAH_BRAAAAABtwYBAAAAAcQGIAAAAAHHBgAAAMcGAsgGAQAAAAEP5AUBAAAAAeUFAQAAAAHmBQEAAAAB5wUBAAAAAeoFQAAAAAHrBUAAAAAB7AVAAAAAAfwFAQAAAAH9BQEAAAAB_gUBAAAAAf8FEAAAAAG3BgEAAAABxAYgAAAAAccGAAAAxwYCyQYBAAAAAQvkBQEAAAAB6gVAAAAAAesFQAAAAAGmBhAAAAABqAYBAAAAAa0GAQAAAAGuBgIAAAABrwZAAAAAAbAGgAAAAAGyBgEAAAABswYBAAAAARAIAACVDwAgEQAAkQ8AIBsAAJIPACA4AACHEAAgOgAAkw8AIDsAAJQPACA9AACXDwAg5AUBAAAAAeUFAQAAAAHqBUAAAAAB6wVAAAAAAZcGAQAAAAG0BgEAAAABxQYBAAAAAdMGAQAAAAHUBgEAAAABAgAAABMAIFEAAIYWACADAAAAEQAgUQAAhhYAIFIAAIoWACASAAAAEQAgCAAAzw0AIBEAAMsNACAbAADMDQAgOAAAhhAAIDoAAM0NACA7AADODQAgPQAA0Q0AIEwAAIoWACDkBQEA8wsAIeUFAQDzCwAh6gVAAPULACHrBUAA9QsAIZcGAQDzCwAhtAYBAPMLACHFBgEA8wsAIdMGAQDzCwAh1AYBAPMLACEQCAAAzw0AIBEAAMsNACAbAADMDQAgOAAAhhAAIDoAAM0NACA7AADODQAgPQAA0Q0AIOQFAQDzCwAh5QUBAPMLACHqBUAA9QsAIesFQAD1CwAhlwYBAPMLACG0BgEA8wsAIcUGAQDzCwAh0wYBAPMLACHUBgEA8wsAIRAIAACVDwAgEQAAkQ8AIBsAAJIPACA4AACHEAAgOgAAkw8AIDsAAJQPACA8AACWDwAg5AUBAAAAAeUFAQAAAAHqBUAAAAAB6wVAAAAAAZcGAQAAAAG0BgEAAAABxQYBAAAAAdMGAQAAAAHUBgEAAAABAgAAABMAIFEAAIsWACADAAAAEQAgUQAAixYAIFIAAI8WACASAAAAEQAgCAAAzw0AIBEAAMsNACAbAADMDQAgOAAAhhAAIDoAAM0NACA7AADODQAgPAAA0A0AIEwAAI8WACDkBQEA8wsAIeUFAQDzCwAh6gVAAPULACHrBUAA9QsAIZcGAQDzCwAhtAYBAPMLACHFBgEA8wsAIdMGAQDzCwAh1AYBAPMLACEQCAAAzw0AIBEAAMsNACAbAADMDQAgOAAAhhAAIDoAAM0NACA7AADODQAgPAAA0A0AIOQFAQDzCwAh5QUBAPMLACHqBUAA9QsAIesFQAD1CwAhlwYBAPMLACG0BgEA8wsAIcUGAQDzCwAh0wYBAPMLACHUBgEA8wsAIQkDAACYEQAgDgAAmxEAIA8AAJwRACASAACaEQAg5AUBAAAAAeoFQAAAAAHrBUAAAAABjgYAAADaBgKRBgAAANkGAgIAAADRBQAgUQAAkBYAIAYXAAC0EwAg5AUBAAAAAeoFQAAAAAHrBUAAAAAB-wYBAAAAAYMHAgAAAAECAAAATgAgUQAAkhYAIAgTAAClEwAg5AUBAAAAAeoFQAAAAAHrBUAAAAAB1gYBAAAAAfwGQAAAAAH9BgEAAAAB_gYCAAAAAQIAAABwACBRAACUFgAgAwAAAG4AIFEAAJQWACBSAACYFgAgCgAAAG4AIBMAAKQTACBMAACYFgAg5AUBAPMLACHqBUAA9QsAIesFQAD1CwAh1gYBAPMLACH8BkAA9QsAIf0GAQDzCwAh_gYCALwMACEIEwAApBMAIOQFAQDzCwAh6gVAAPULACHrBUAA9QsAIdYGAQDzCwAh_AZAAPULACH9BgEA8wsAIf4GAgC8DAAhBeQFAQAAAAHqBUAAAAAB6wVAAAAAAfsGAQAAAAH_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_kBQEAAAAB5QUBAAAAAeYFAQAAAAHnBQEAAAAB6gVAAAAAAesFQAAAAAHsBUAAAAAB_AUBAAAAAf0FAQAAAAH-BQEAAAAB_wUQAAAAAcQGIAAAAAHHBgAAAMcGAsgGAQAAAAHJBgEAAAABCA8AAMMPACAQAADEDwAg5AUBAAAAAeoFQAAAAAHrBUAAAAAB7AVAAAAAAZEGAAAAvgYCvAYgAAAAAQIAAAC5BwAgUQAA2BYAIAMAAAAnACBRAADYFgAgUgAA3BYAIAoAAAAnACAPAACtDwAgEAAArg8AIEwAANwWACDkBQEA8wsAIeoFQAD1CwAh6wVAAPULACHsBUAA9gsAIZEGAACrD74GIrwGIACqDwAhCA8AAK0PACAQAACuDwAg5AUBAPMLACHqBUAA9QsAIesFQAD1CwAh7AVAAPYLACGRBgAAqw--BiK8BiAAqg8AIQexBgEAAAABtAYBAAAAAbYGAQAAAAG4BgEAAAABuQYBAAAAAboGAQAAAAG7BgEAAAABCA4AAMIPACAQAADEDwAg5AUBAAAAAeoFQAAAAAHrBUAAAAAB7AVAAAAAAZEGAAAAvgYCvAYgAAAAAQIAAAC5BwAgUQAA3hYAIAMAAAAnACBRAADeFgAgUgAA4hYAIAoAAAAnACAOAACsDwAgEAAArg8AIEwAAOIWACDkBQEA8wsAIeoFQAD1CwAh6wVAAPULACHsBUAA9gsAIZEGAACrD74GIrwGIACqDwAhCA4AAKwPACAQAACuDwAg5AUBAPMLACHqBUAA9QsAIesFQAD1CwAh7AVAAPYLACGRBgAAqw--BiK8BiAAqg8AIQXlBQEAAAABsQYBAAAAAbQGAQAAAAG1BgEAAAABtgYBAAAAAQMAAADUBQAgUQAAkBYAIFIAAOYWACALAAAA1AUAIAMAAJsQACAOAACeEAAgDwAAnxAAIBIAAJ0QACBMAADmFgAg5AUBAPMLACHqBUAA9QsAIesFQAD1CwAhjgYAAJoQ2gYikQYAAJkQ2QYiCQMAAJsQACAOAACeEAAgDwAAnxAAIBIAAJ0QACDkBQEA8wsAIeoFQAD1CwAh6wVAAPULACGOBgAAmhDaBiKRBgAAmRDZBiII5AUBAAAAAeUFAQAAAAHqBUAAAAAB6wVAAAAAAZcGAQAAAAG0BgEAAAAB0wYBAAAAAdQGAQAAAAEKDAAAghAAID4AAOQOACA_AADmDgAg5AUBAAAAAeUFAQAAAAHqBUAAAAAB6wVAAAAAAbcGAQAAAAHRBgEAAAAB0gYBAAAAAQIAAAC2AQAgUQAA6BYAIBARAACRDwAgGwAAkg8AIDgAAIcQACA6AACTDwAgOwAAlA8AIDwAAJYPACA9AACXDwAg5AUBAAAAAeUFAQAAAAHqBUAAAAAB6wVAAAAAAZcGAQAAAAG0BgEAAAABxQYBAAAAAdMGAQAAAAHUBgEAAAABAgAAABMAIFEAAOoWACAF5AUBAAAAAeUFAQAAAAHqBUAAAAAB6wVAAAAAAa0GAQAAAAECAAAA9AYAIFEAAOwWACAJ5AUBAAAAAeUFAQAAAAHqBUAAAAAB6wVAAAAAAZEGAAAAwgYCrQYBAAAAAcAGEAAAAAHCBiAAAAABwwYgAAAAAQIAAACLBwAgUQAA7hYAIA_kBQEAAAAB6gVAAAAAAYsGAQAAAAGgBhAAAAABoQYBAAAAAaIGAQAAAAGjBgEAAAABpAYQAAAAAaUGEAAAAAGmBhAAAAABpwYQAAAAAagGAQAAAAGpBoAAAAABqgaAAAAAAawGAQAAAAEDAAAAEQAgUQAA6hYAIFIAAPMWACASAAAAEQAgEQAAyw0AIBsAAMwNACA4AACGEAAgOgAAzQ0AIDsAAM4NACA8AADQDQAgPQAA0Q0AIEwAAPMWACDkBQEA8wsAIeUFAQDzCwAh6gVAAPULACHrBUAA9QsAIZcGAQDzCwAhtAYBAPMLACHFBgEA8wsAIdMGAQDzCwAh1AYBAPMLACEQEQAAyw0AIBsAAMwNACA4AACGEAAgOgAAzQ0AIDsAAM4NACA8AADQDQAgPQAA0Q0AIOQFAQDzCwAh5QUBAPMLACHqBUAA9QsAIesFQAD1CwAhlwYBAPMLACG0BgEA8wsAIcUGAQDzCwAh0wYBAPMLACHUBgEA8wsAIQMAAAD3BgAgUQAA7BYAIFIAAPYWACAHAAAA9wYAIEwAAPYWACDkBQEA8wsAIeUFAQDzCwAh6gVAAPULACHrBUAA9QsAIa0GAQDzCwAhBeQFAQDzCwAh5QUBAPMLACHqBUAA9QsAIesFQAD1CwAhrQYBAPMLACEDAAAAjgcAIFEAAO4WACBSAAD5FgAgCwAAAI4HACBMAAD5FgAg5AUBAPMLACHlBQEA8wsAIeoFQAD1CwAh6wVAAPULACGRBgAA1A_CBiKtBgEA8wsAIcAGEACCDAAhwgYgAJoNACHDBiAAmg0AIQnkBQEA8wsAIeUFAQDzCwAh6gVAAPULACHrBUAA9QsAIZEGAADUD8IGIq0GAQDzCwAhwAYQAIIMACHCBiAAmg0AIcMGIACaDQAhD-QFAQAAAAHlBQEAAAAB5gUBAAAAAecFAQAAAAHqBUAAAAAB6wVAAAAAAewFQAAAAAH8BQEAAAAB_QUBAAAAAf8FEAAAAAG3BgEAAAABxAYgAAAAAccGAAAAxwYCyAYBAAAAAckGAQAAAAEDAAAArwEAIFEAAOgWACBSAAD9FgAgDAAAAK8BACAMAACBEAAgPgAAkw4AID8AAJUOACBMAAD9FgAg5AUBAPMLACHlBQEA8wsAIeoFQAD1CwAh6wVAAPULACG3BgEA8wsAIdEGAQDzCwAh0gYBAPQLACEKDAAAgRAAID4AAJMOACA_AACVDgAg5AUBAPMLACHlBQEA8wsAIeoFQAD1CwAh6wVAAPULACG3BgEA8wsAIdEGAQDzCwAh0gYBAPQLACEJ5AUBAAAAAeUFAQAAAAHmBQEAAAAB5wUBAAAAAekFAQAAAAHqBUAAAAAB6wVAAAAAAewFQAAAAAHEBiAAAAABERQAAOAOACAoAAD9DwAgQgAA3g4AIEMAAN8OACBEAADhDgAg5AUBAAAAAeUFAQAAAAHoBQEAAAAB6QUBAAAAAeoFQAAAAAHrBUAAAAABjgYAAADNBgLKBgEAAAABywYBAAAAAc4GAAAAzgYCzwYBAAAAAdAGAQAAAAECAAAADwAgUQAA_xYAIAsRAACmEQAgFAAAkxEAICQAAJQRACAmAACVEQAgLAAAlhEAIOQFAQAAAAHoBQEAAAAB6gVAAAAAAesFQAAAAAHUBgEAAAAB2wYAAADbBgICAAAANAAgUQAAgRcAIAgOAADCDwAgDwAAww8AIOQFAQAAAAHqBUAAAAAB6wVAAAAAAewFQAAAAAGRBgAAAL4GArwGIAAAAAECAAAAuQcAIFEAAIMXACAP5AUBAAAAAeoFQAAAAAGgBhAAAAABoQYBAAAAAaIGAQAAAAGjBgEAAAABpAYQAAAAAaUGEAAAAAGmBhAAAAABpwYQAAAAAagGAQAAAAGpBoAAAAABqgaAAAAAAasGAQAAAAGsBgEAAAABBeQFAQAAAAHqBUAAAAABhwYQAAAAAYkGAAAAiQYCigZAAAAAAQMAAAANACBRAAD_FgAgUgAAiRcAIBMAAAANACAUAAC_DgAgKAAA_A8AIEIAAL0OACBDAAC-DgAgRAAAwA4AIEwAAIkXACDkBQEA8wsAIeUFAQDzCwAh6AUBAPMLACHpBQEA8wsAIeoFQAD1CwAh6wVAAPULACGOBgAAug7NBiLKBgEA9AsAIcsGAQD0CwAhzgYAALsOzgYizwYBAPQLACHQBgEA9AsAIREUAAC_DgAgKAAA_A8AIEIAAL0OACBDAAC-DgAgRAAAwA4AIOQFAQDzCwAh5QUBAPMLACHoBQEA8wsAIekFAQDzCwAh6gVAAPULACHrBUAA9QsAIY4GAAC6Ds0GIsoGAQD0CwAhywYBAPQLACHOBgAAuw7OBiLPBgEA9AsAIdAGAQD0CwAhAwAAADIAIFEAAIEXACBSAACMFwAgDQAAADIAIBEAAKURACAUAADMEAAgJAAAzRAAICYAAM4QACAsAADPEAAgTAAAjBcAIOQFAQDzCwAh6AUBAPMLACHqBUAA9QsAIesFQAD1CwAh1AYBAPMLACHbBgAAyhDbBiILEQAApREAIBQAAMwQACAkAADNEAAgJgAAzhAAICwAAM8QACDkBQEA8wsAIegFAQDzCwAh6gVAAPULACHrBUAA9QsAIdQGAQDzCwAh2wYAAMoQ2wYiAwAAACcAIFEAAIMXACBSAACPFwAgCgAAACcAIA4AAKwPACAPAACtDwAgTAAAjxcAIOQFAQDzCwAh6gVAAPULACHrBUAA9QsAIewFQAD2CwAhkQYAAKsPvgYivAYgAKoPACEIDgAArA8AIA8AAK0PACDkBQEA8wsAIeoFQAD1CwAh6wVAAPULACHsBUAA9gsAIZEGAACrD74GIrwGIACqDwAhDgkBAAAAAQsAAKAMACDkBQEAAAAB5QUBAAAAAeYFAQAAAAHoBQEAAAAB6QUBAAAAAeoFQAAAAAHrBUAAAAAB7AVAAAAAAfwFAQAAAAH9BQEAAAAB_gUBAAAAAf8FEAAAAAECAAAApwEAIFEAAJAXACADAAAAogEAIFEAAJAXACBSAACUFwAgEAAAAKIBACAJAQDzCwAhCwAAnwwAIEwAAJQXACDkBQEA8wsAIeUFAQDzCwAh5gUBAPQLACHoBQEA8wsAIekFAQDzCwAh6gVAAPULACHrBUAA9QsAIewFQAD2CwAh_AUBAPQLACH9BQEA9AsAIf4FAQD0CwAh_wUQAIIMACEOCQEA8wsAIQsAAJ8MACDkBQEA8wsAIeUFAQDzCwAh5gUBAPQLACHoBQEA8wsAIekFAQDzCwAh6gVAAPULACHrBUAA9QsAIewFQAD2CwAh_AUBAPQLACH9BQEA9AsAIf4FAQD0CwAh_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_AUBAAAAAf0FAQAAAAH-BQEAAAAB_wUQAAAAAbcGAQAAAAHEBiAAAAABxwYAAADHBgLIBgEAAAAByQYBAAAAAQIAAAAbACBRAACvFwAgEQ0AAIUNACAkAACHDQAgJQAAhg0AIC4AAIgNACAzAACKDQAg5AUBAAAAAeoFQAAAAAHrBUAAAAABpgYQAAAAAagGAQAAAAGtBgEAAAABrgYCAAAAAa8GQAAAAAGwBoAAAAABsQYBAAAAAbIGAQAAAAGzBgEAAAABAgAAAC8AIFEAALEXACADAAAAGQAgUQAArxcAIFIAALUXACAWAAAAGQAgCQAAqw0AIAoAAKwNACALAAD2DQAgDAAArQ0AIEwAALUXACDkBQEA8wsAIeUFAQDzCwAh5gUBAPQLACHnBQEA9AsAIeoFQAD1CwAh6wVAAPULACHsBUAA9gsAIfwFAQD0CwAh_QUBAPQLACH-BQEA9AsAIf8FEACpDQAhtwYBAPQLACHEBiAAmg0AIccGAACoDccGIsgGAQDzCwAhyQYBAPMLACEUCQAAqw0AIAoAAKwNACALAAD2DQAgDAAArQ0AIOQFAQDzCwAh5QUBAPMLACHmBQEA9AsAIecFAQD0CwAh6gVAAPULACHrBUAA9QsAIewFQAD2CwAh_AUBAPQLACH9BQEA9AsAIf4FAQD0CwAh_wUQAKkNACG3BgEA9AsAIcQGIACaDQAhxwYAAKgNxwYiyAYBAPMLACHJBgEA8wsAIQMAAAAtACBRAACxFwAgUgAAuBcAIBMAAAAtACANAADlDAAgJAAA5wwAICUAAOYMACAuAADoDAAgMwAA6gwAIEwAALgXACDkBQEA8wsAIeoFQAD1CwAh6wVAAPULACGmBhAAggwAIagGAQD0CwAhrQYBAPMLACGuBgIAvAwAIa8GQAD1CwAhsAaAAAAAAbEGAQD0CwAhsgYBAPMLACGzBgEA8wsAIRENAADlDAAgJAAA5wwAICUAAOYMACAuAADoDAAgMwAA6gwAIOQFAQDzCwAh6gVAAPULACHrBUAA9QsAIaYGEACCDAAhqAYBAPQLACGtBgEA8wsAIa4GAgC8DAAhrwZAAPULACGwBoAAAAABsQYBAPQLACGyBgEA8wsAIbMGAQDzCwAhD-QFAQAAAAHqBUAAAAABiwYBAAAAAaAGEAAAAAGhBgEAAAABogYBAAAAAaMGAQAAAAGkBhAAAAABpQYQAAAAAaYGEAAAAAGnBhAAAAABqAYBAAAAAakGgAAAAAGqBoAAAAABqwYBAAAAAQwJAQAAAAHkBQEAAAAB5QUBAAAAAeYFAQAAAAHoBQEAAAAB6QUBAAAAAeoFQAAAAAHrBUAAAAAB7AVAAAAAAfwFAQAAAAH9BQEAAAAB_wUQAAAAAQIFAAIUAAQCAwUBBAADAQMGAAQGBwEl3AEXRQkFRtsBHAIUAARDAAYDAwwFBABGPhAHBwQARRDWARIUABcoAAhCzAFBQ9QBBkTVAS0FBABADAAJOcYBCz7FAQc_xwEuCQQAPwi5AQwRABgbtAEgOAAKOrcBCDu4AS88vAEUPb8BFQMEAD4HFAk5GAsEBAA9CBwMKLABCDiuAQoGBAA8CQANCgAPCyELDCIJNiYRAgQADggdDAEIHgACBAAQCB8MAQggAAMtABI0oQEMN6MBOAcEADcNKBMkAAclABcukgEyMJgBETOcATUEBAAWDioUDywVEDASAgwACQ0AEwIMAAkNABMBEDEABwQAMRCPARIRABgUAAQkfAcmfiwsjgEkBgM1FwQAKwc2CQ48Gg94HRI6GQERABgCEQAYEwAbBwNAHAQAKhVDGhZHHSFLHiJtJiNxIgITABsUAAQCEQAYEwAbAwQAKRMAGyBPHwIXAB4aUSAFBAAoDAAJGAAfGVUhH1wkAhcAIhpYIAMEACMTABsZViEBGVcAAxReFxtdIB5gJQIXYiYdZyQDBAAnEwAbHGUlARxmAAIZaAAfaQABIGoABgNyABVzABZ0ACF1ACJ2ACN3AAMDeQAHegASewAFBAAwJQAXJ4IBLSmGAS4rigEvAiQAByYALAImACwoAAgCJgAsKgAJAyeLAQApjAEAK40BAAEQkAEAAwQANC0AEi-WATMBLgAyAS-XAQACLQASMp4BNgExADUCMJ8BADOgAQADBAA7C6UBOTaqARECBAA6NagBOAE1qQEAATarAQABNqwBAAEIsQEAAgeyAQA5swEABQjCAQA6wAEAO8EBADzDAQA9xAEAAznJAQA-yAEAP8oBAAMEAERAAEJB0QEHAgQAQxLPAUEBEtABAAFB0gEAAhDYAQBE1wEAAgPZAQA-2gEAAAMEAElXAEpYAEsAAAADBABJVwBKWABLAwQATlcAT1gAUAAAAAMEAE5XAE9YAFADBABTVwBUWABVAAAAAwQAU1cAVFgAVQMEAFhXAFlYAFoAAAADBABYVwBZWABaAwQAXVcAXlgAXwAAAAMEAF1XAF5YAF8FBABiVwBlWABmnwEAY6ABAGQAAAAAAAUEAGJXAGVYAGafAQBjoAEAZAUEAGlXAGxYAG2fAQBqoAEAawAAAAAABQQAaVcAbFgAbZ8BAGqgAQBrAwQAcFcAcVgAcgAAAAMEAHBXAHFYAHIFBAB1VwB4WAB5nwEAdqABAHcAAAAAAAUEAHVXAHhYAHmfAQB2oAEAdwMEAHxXAH1YAH4AAAADBAB8VwB9WAB-BQQAgQFXAIQBWACFAZ8BAIIBoAEAgwEAAAAAAAUEAIEBVwCEAVgAhQGfAQCCAaABAIMBAwQAiAFXAIkBWACKAQAAAAMEAIgBVwCJAVgAigEDBACNAVcAjgFYAI8BAAAAAwQAjQFXAI4BWACPAQMEAJIBVwCTAVgAlAEAAAADBACSAVcAkwFYAJQBAwQAlwFXAJgBWACZAQAAAAMEAJcBVwCYAVgAmQEDBACcAVcAnQFYAJ4BAAAAAwQAnAFXAJ0BWACeAQMEAKEBVwCiAVgAowEAAAADBAChAVcAogFYAKMBAwQApgFXAKcBWACoAQAAAAMEAKYBVwCnAVgAqAEDBACrAVcArAFYAK0BAAAAAwQAqwFXAKwBWACtAQMEALABVwCxAVgAsgEAAAADBACwAVcAsQFYALIBAwQAtQFXALYBWAC3AQAAAAMEALUBVwC2AVgAtwEDBAC6AVcAuwFYALwBAAAAAwQAugFXALsBWAC8AQADBADAAVcAwQFYAMIBAAAAAwQAwAFXAMEBWADCAQMEAMUBVwDGAVgAxwEAAAADBADFAVcAxgFYAMcBAwQAygFXAMsBWADMAQAAAAMEAMoBVwDLAVgAzAEDBADPAVcA0AFYANEBAAAAAwQAzwFXANABWADRAQMEANQBVwDVAVgA1gEAAAADBADUAVcA1QFYANYBAwQA2QFXANoBWADbAQAAAAMEANkBVwDaAVgA2wEDBADeAVcA3wFYAOABAAAAAwQA3gFXAN8BWADgAQMEAOMBVwDkAVgA5QEAAAADBADjAVcA5AFYAOUBBQQA6AFXAOsBWADsAZ8BAOkBoAEA6gEAAAAAAAUEAOgBVwDrAVgA7AGfAQDpAaABAOoBAwQA7wFXAPABWADxAQAAAAMEAO8BVwDwAVgA8QEDBAD0AVcA9QFYAPYBAAAAAwQA9AFXAPUBWAD2AQUEAPkBVwD8AVgA_QGfAQD6AaABAPsBAAAAAAAFBAD5AVcA_AFYAP0BnwEA-gGgAQD7AQAFBACBAlcAhAJYAIUCnwEAggKgAQCDAgAAAAAABQQAgQJXAIQCWACFAp8BAIICoAEAgwIDBACIAlcAiQJYAIoCAAAAAwQAiAJXAIkCWACKAgMEAI0CVwCOAlgAjwIAAAADBACNAlcAjgJYAI8CAwQAkgJXAJMCWACUAgAAAAMEAJICVwCTAlgAlAIDBACXAlcAmAJYAJkCAAAAAwQAlwJXAJgCWACZAgUEAJwCVwCfAlgAoAKfAQCdAqABAJ4CAAAAAAAFBACcAlcAnwJYAKACnwEAnQKgAQCeAgUEAKMCVwCmAlgApwKfAQCkAqABAKUCAAAAAAAFBACjAlcApgJYAKcCnwEApAKgAQClAgUEAKoCVwCtAlgArgKfAQCrAqABAKwCAAAAAAAFBACqAlcArQJYAK4CnwEAqwKgAQCsAgUEALECVwC0AlgAtQKfAQCyAqABALMCAAAAAAAFBACxAlcAtAJYALUCnwEAsgKgAQCzAgUEALgCVwC7AlgAvAKfAQC5AqABALoCAAAAAAAFBAC4AlcAuwJYALwCnwEAuQKgAQC6AgMEAL8CVwDAAlgAwQIAAAADBAC_AlcAwAJYAMECBQQAxAJXAMcCWADIAp8BAMUCoAEAxgIAAAAAAAUEAMQCVwDHAlgAyAKfAQDFAqABAMYCAwQAywJXAMwCWADNAgAAAAMEAMsCVwDMAlgAzQJHAgFI3QEBSd4BAUrfAQFL4AEBTeIBAU7kAUdP5gEBUOgBR1PpAQFU6gEBVesBR1nuAUha7wFMW_EBAlzyAQJd9QECXvYBAl_3AQJg-QECYfsBR2L9AQJj_wFHZIACAmWBAgJmggJHZ4UCTWiGAlFpiAIEaokCBGuMAgRsjQIEbY4CBG6QAgRvkgJHcJQCBHGWAkdylwIEc5gCBHSZAkd1nAJSdp0CVnefAkJ4oAJCeaMCQnqkAkJ7pQJCfKcCQn2pAkd-qwJCf60CR4ABrgJCgQGvAkKCAbACR4MBswJXhAG0AluFAbUCQYYBtgJBhwG3AkGIAbgCQYkBuQJBigG7AkGLAb0CR4wBvwJBjQHBAkeOAcICQY8BwwJBkAHEAkeRAccCXJIByAJgkwHJAh6UAcoCHpUBywIelgHMAh6XAc0CHpgBzwIemQHRAkeaAdMCHpsB1QJHnAHWAh6dAdcCHp4B2AJHoQHbAmGiAdwCZ6MB3QIfpAHeAh-lAd8CH6YB4AIfpwHhAh-oAeMCH6kB5QJHqgHnAh-rAekCR6wB6gIfrQHrAh-uAewCR68B7wJosAHwAm6xAfICILIB8wIgswH1AiC0AfYCILUB9wIgtgH5AiC3AfsCR7gB_QIguQH_Ake6AYADILsBgQMgvAGCA0e9AYUDb74BhgNzvwGHAyLAAYgDIsEBiQMiwgGKAyLDAYsDIsQBjQMixQGPA0fGAZEDIscBkwNHyAGUAyLJAZUDIsoBlgNHywGZA3TMAZoDes0BmwMhzgGcAyHPAZ0DIdABngMh0QGfAyHSAaEDIdMBowNH1AGlAyHVAacDR9YBqAMh1wGpAyHYAaoDR9kBrQN72gGuA3_bAa8DJtwBsAMm3QGxAybeAbIDJt8BswMm4AG1AybhAbcDR-IBuQMm4wG7A0fkAbwDJuUBvQMm5gG-A0fnAcEDgAHoAcIDhgHpAcMDJeoBxAMl6wHFAyXsAcYDJe0BxwMl7gHJAyXvAcsDR_ABzQMl8QHPA0fyAdADJfMB0QMl9AHSA0f1AdUDhwH2AdYDiwH3AdcDJPgB2AMk-QHZAyT6AdoDJPsB2wMk_AHdAyT9Ad8DR_4B4QMk_wHjA0eAAuQDJIEC5QMkggLmA0eDAukDjAGEAuoDkAGFAusDHIYC7AMchwLtAxyIAu4DHIkC7wMcigLxAxyLAvMDR4wC9QMcjQL3A0eOAvgDHI8C-QMckAL6A0eRAv0DkQGSAv4DlQGTAoAEG5QCgQQblQKEBBuWAoUEG5cChgQbmAKIBBuZAooER5oCjAQbmwKOBEecAo8EG50CkAQbngKRBEefApQElgGgApUEmgGhApcELKICmAQsowKaBCykApsELKUCnAQspgKeBCynAqAER6gCogQsqQKkBEeqAqUELKsCpgQsrAKnBEetAqoEmwGuAqsEnwGvAqwELbACrQQtsQKuBC2yAq8ELbMCsAQttAKyBC21ArQER7YCtgQttwK4BEe4ArkELbkCugQtugK7BEe7Ar4EoAG8Ar8EpAG9AsAELr4CwQQuvwLCBC7AAsMELsECxAQuwgLGBC7DAsgER8QCygQuxQLMBEfGAs0ELscCzgQuyALPBEfJAtIEpQHKAtMEqQHLAtQEL8wC1QQvzQLWBC_OAtcEL88C2AQv0ALaBC_RAtwER9IC3gQv0wLgBEfUAuEEL9UC4gQv1gLjBEfXAuYEqgHYAucErgHZAugEBdoC6QQF2wLqBAXcAusEBd0C7AQF3gLuBAXfAvAER-AC8gQF4QL0BEfiAvUEBeMC9gQF5AL3BEflAvoErwHmAvsEswHnAv0EBugC_gQG6QKABQbqAoEFBusCggUG7AKEBQbtAoYFR-4CiAUG7wKKBUfwAosFBvECjAUG8gKNBUfzApAFtAH0ApEFuAH1ApIFGfYCkwUZ9wKUBRn4ApUFGfkClgUZ-gKYBRn7ApoFR_wCnAUZ_QKeBUf-Ap8FGf8CoAUZgAOhBUeBA6QFuQGCA6UFvQGDA6cFvgGEA6gFvgGFA6sFvgGGA6wFvgGHA60FvgGIA68FvgGJA7EFR4oDswW-AYsDtQVHjAO2Bb4BjQO3Bb4BjgO4BUePA7sFvwGQA7wFwwGRA70FF5IDvgUXkwO_BReUA8AFF5UDwQUXlgPDBReXA8UFR5gDxwUXmQPJBUeaA8oFF5sDywUXnAPMBUedA88FxAGeA9AFyAGfA9IFGKAD0wUYoQPWBRiiA9cFGKMD2AUYpAPaBRilA9wFR6YD3gUYpwPgBUeoA-EFGKkD4gUYqgPjBUerA-YFyQGsA-cFzQGtA-gFGq4D6QUarwPqBRqwA-sFGrED7AUasgPuBRqzA_AFR7QD8gUatQP0BUe2A_UFGrcD9gUauAP3BUe5A_oFzgG6A_sF0gG7A_wFHbwD_QUdvQP-BR2-A_8FHb8DgAYdwAOCBh3BA4QGR8IDhgYdwwOIBkfEA4kGHcUDigYdxgOLBkfHA44G0wHIA48G1wHJA5AGCcoDkQYJywOSBgnMA5MGCc0DlAYJzgOWBgnPA5gGR9ADmgYJ0QOcBkfSA50GCdMDngYJ1AOfBkfVA6IG2AHWA6MG3AHXA6QGCNgDpQYI2QOmBgjaA6cGCNsDqAYI3AOqBgjdA6wGR94DrgYI3wOwBkfgA7EGCOEDsgYI4gOzBkfjA7YG3QHkA7cG4QHlA7gGB-YDuQYH5wO6BgfoA7sGB-kDvAYH6gO-BgfrA8AGR-wDwgYH7QPEBkfuA8UGB-8DxgYH8APHBkfxA8oG4gHyA8sG5gHzA8wGDPQDzQYM9QPOBgz2A88GDPcD0AYM-APSBgz5A9QGR_oD1gYM-wPYBkf8A9kGDP0D2gYM_gPbBkf_A94G5wGABN8G7QGBBOAGC4IE4QYLgwTiBguEBOMGC4UE5AYLhgTmBguHBOgGR4gE6gYLiQTsBkeKBO0GC4sE7gYLjATvBkeNBPIG7gGOBPMG8gGPBPUGD5AE9gYPkQT5Bg-SBPoGD5ME-wYPlAT9Bg-VBP8GR5YEgQcPlwSDB0eYBIQHD5kEhQcPmgSGB0ebBIkH8wGcBIoH9wGdBIwHDZ4EjQcNnwSQBw2gBJEHDaEEkgcNogSUBw2jBJYHR6QEmAcNpQSaB0emBJsHDacEnAcNqASdB0epBKAH-AGqBKEH_gGrBKMH_wGsBKQH_wGtBKcH_wGuBKgH_wGvBKkH_wGwBKsH_wGxBK0HR7IErwf_AbMEsQdHtASyB_8BtQSzB_8BtgS0B0e3BLcHgAK4BLgHhgK5BLoHE7oEuwcTuwS9BxO8BL4HE70EvwcTvgTBBxO_BMMHR8AExQcTwQTHB0fCBMgHE8MEyQcTxATKB0fFBM0HhwLGBM4HiwLHBM8HFMgE0AcUyQTRBxTKBNIHFMsE0wcUzATVBxTNBNcHR84E2QcUzwTbB0fQBNwHFNEE3QcU0gTeB0fTBOEHjALUBOIHkALVBOMHFdYE5AcV1wTlBxXYBOYHFdkE5wcV2gTpBxXbBOsHR9wE7QcV3QTvB0feBPAHFd8E8QcV4ATyB0fhBPUHkQLiBPYHlQLjBPgHCuQE-QcK5QT7BwrmBPwHCucE_QcK6AT_BwrpBIEIR-oEgwgK6wSFCEfsBIYICu0EhwgK7gSICEfvBIsIlgLwBIwImgLxBI0IEvIEjggS8wSPCBL0BJAIEvUEkQgS9gSTCBL3BJUIR_gElwgS-QSZCEf6BJoIEvsEmwgS_AScCEf9BJ8ImwL-BKAIoQL_BKEIEYAFoggRgQWjCBGCBaQIEYMFpQgRhAWnCBGFBakIR4YFqwgRhwWtCEeIBa4IEYkFrwgRigWwCEeLBbMIogKMBbQIqAKNBbYIMo4FtwgyjwW5CDKQBboIMpEFuwgykgW9CDKTBb8IR5QFwQgylQXDCEeWBcQIMpcFxQgymAXGCEeZBckIqQKaBcoIrwKbBcsIM5wFzAgznQXNCDOeBc4IM58FzwgzoAXRCDOhBdMIR6IF1QgzowXXCEekBdgIM6UF2QgzpgXaCEenBd0IsAKoBd4ItgKpBd8INaoF4Ag1qwXhCDWsBeIINa0F4wg1rgXlCDWvBecIR7AF6Qg1sQXrCEeyBewINbMF7Qg1tAXuCEe1BfEItwK2BfIIvQK3BfQINrgF9Qg2uQX3CDa6BfgINrsF-Qg2vAX7CDa9Bf0IR74F_wg2vwWBCUfABYIJNsEFgwk2wgWECUfDBYcJvgLEBYgJwgLFBYkJOMYFigk4xwWLCTjIBYwJOMkFjQk4ygWPCTjLBZEJR8wFkwk4zQWVCUfOBZYJOM8Flwk40AWYCUfRBZsJwwLSBZwJyQLTBZ4JOdQFnwk51QWhCTnWBaIJOdcFowk52AWlCTnZBacJR9oFqQk52wWrCUfcBawJOd0FrQk53gWuCUffBbEJygLgBbIJzgI" } async function decodeBase64AsWasm(wasmBase64: string): Promise { @@ -490,6 +490,46 @@ export interface PrismaClient< */ get pos(): Prisma.PosDelegate; + /** + * `prisma.good`: Exposes CRUD operations for the **Good** model. + * Example usage: + * ```ts + * // Fetch zero or more Goods + * const goods = await prisma.good.findMany() + * ``` + */ + get good(): Prisma.GoodDelegate; + + /** + * `prisma.goodCategory`: Exposes CRUD operations for the **GoodCategory** model. + * Example usage: + * ```ts + * // Fetch zero or more GoodCategories + * const goodCategories = await prisma.goodCategory.findMany() + * ``` + */ + get goodCategory(): Prisma.GoodCategoryDelegate; + + /** + * `prisma.measureUnits`: Exposes CRUD operations for the **MeasureUnits** model. + * Example usage: + * ```ts + * // Fetch zero or more MeasureUnits + * const measureUnits = await prisma.measureUnits.findMany() + * ``` + */ + get measureUnits(): Prisma.MeasureUnitsDelegate; + + /** + * `prisma.stockKeepingUnits`: Exposes CRUD operations for the **StockKeepingUnits** model. + * Example usage: + * ```ts + * // Fetch zero or more StockKeepingUnits + * const stockKeepingUnits = await prisma.stockKeepingUnits.findMany() + * ``` + */ + get stockKeepingUnits(): Prisma.StockKeepingUnitsDelegate; + /** * `prisma.triggerLog`: Exposes CRUD operations for the **TriggerLog** model. * Example usage: @@ -530,26 +570,6 @@ export interface PrismaClient< */ get customerLegal(): Prisma.CustomerLegalDelegate; - /** - * `prisma.good`: Exposes CRUD operations for the **Good** model. - * Example usage: - * ```ts - * // Fetch zero or more Goods - * const goods = await prisma.good.findMany() - * ``` - */ - get good(): Prisma.GoodDelegate; - - /** - * `prisma.goodCategory`: Exposes CRUD operations for the **GoodCategory** model. - * Example usage: - * ```ts - * // Fetch zero or more GoodCategories - * const goodCategories = await prisma.goodCategory.findMany() - * ``` - */ - get goodCategory(): Prisma.GoodCategoryDelegate; - /** * `prisma.guild`: Exposes CRUD operations for the **Guild** model. * Example usage: diff --git a/src/generated/prisma/internal/prismaNamespace.ts b/src/generated/prisma/internal/prismaNamespace.ts index dba9f42..00e4e40 100644 --- a/src/generated/prisma/internal/prismaNamespace.ts +++ b/src/generated/prisma/internal/prismaNamespace.ts @@ -414,12 +414,14 @@ export const ModelName = { BusinessActivity: 'BusinessActivity', Complex: 'Complex', Pos: 'Pos', + Good: 'Good', + GoodCategory: 'GoodCategory', + MeasureUnits: 'MeasureUnits', + StockKeepingUnits: 'StockKeepingUnits', TriggerLog: 'TriggerLog', Customer: 'Customer', CustomerIndividual: 'CustomerIndividual', CustomerLegal: 'CustomerLegal', - Good: 'Good', - GoodCategory: 'GoodCategory', Guild: 'Guild', SalesInvoice: 'SalesInvoice', SalesInvoiceItem: 'SalesInvoiceItem', @@ -444,7 +446,7 @@ export type TypeMap + fields: Prisma.GoodFieldRefs + operations: { + findUnique: { + args: Prisma.GoodFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.GoodFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.GoodFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.GoodFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.GoodFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.GoodCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.GoodCreateManyArgs + result: BatchPayload + } + delete: { + args: Prisma.GoodDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.GoodUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.GoodDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.GoodUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.GoodUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.GoodAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.GoodGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.GoodCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + GoodCategory: { + payload: Prisma.$GoodCategoryPayload + fields: Prisma.GoodCategoryFieldRefs + operations: { + findUnique: { + args: Prisma.GoodCategoryFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.GoodCategoryFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.GoodCategoryFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.GoodCategoryFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.GoodCategoryFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.GoodCategoryCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.GoodCategoryCreateManyArgs + result: BatchPayload + } + delete: { + args: Prisma.GoodCategoryDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.GoodCategoryUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.GoodCategoryDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.GoodCategoryUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.GoodCategoryUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.GoodCategoryAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.GoodCategoryGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.GoodCategoryCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + MeasureUnits: { + payload: Prisma.$MeasureUnitsPayload + fields: Prisma.MeasureUnitsFieldRefs + operations: { + findUnique: { + args: Prisma.MeasureUnitsFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.MeasureUnitsFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.MeasureUnitsFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.MeasureUnitsFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.MeasureUnitsFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.MeasureUnitsCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.MeasureUnitsCreateManyArgs + result: BatchPayload + } + delete: { + args: Prisma.MeasureUnitsDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.MeasureUnitsUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.MeasureUnitsDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.MeasureUnitsUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.MeasureUnitsUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.MeasureUnitsAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.MeasureUnitsGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.MeasureUnitsCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } + StockKeepingUnits: { + payload: Prisma.$StockKeepingUnitsPayload + fields: Prisma.StockKeepingUnitsFieldRefs + operations: { + findUnique: { + args: Prisma.StockKeepingUnitsFindUniqueArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.StockKeepingUnitsFindUniqueOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findFirst: { + args: Prisma.StockKeepingUnitsFindFirstArgs + result: runtime.Types.Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.StockKeepingUnitsFindFirstOrThrowArgs + result: runtime.Types.Utils.PayloadToResult + } + findMany: { + args: Prisma.StockKeepingUnitsFindManyArgs + result: runtime.Types.Utils.PayloadToResult[] + } + create: { + args: Prisma.StockKeepingUnitsCreateArgs + result: runtime.Types.Utils.PayloadToResult + } + createMany: { + args: Prisma.StockKeepingUnitsCreateManyArgs + result: BatchPayload + } + delete: { + args: Prisma.StockKeepingUnitsDeleteArgs + result: runtime.Types.Utils.PayloadToResult + } + update: { + args: Prisma.StockKeepingUnitsUpdateArgs + result: runtime.Types.Utils.PayloadToResult + } + deleteMany: { + args: Prisma.StockKeepingUnitsDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.StockKeepingUnitsUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.StockKeepingUnitsUpsertArgs + result: runtime.Types.Utils.PayloadToResult + } + aggregate: { + args: Prisma.StockKeepingUnitsAggregateArgs + result: runtime.Types.Utils.Optional + } + groupBy: { + args: Prisma.StockKeepingUnitsGroupByArgs + result: runtime.Types.Utils.Optional[] + } + count: { + args: Prisma.StockKeepingUnitsCountArgs + result: runtime.Types.Utils.Optional | number + } + } + } TriggerLog: { payload: Prisma.$TriggerLogPayload fields: Prisma.TriggerLogFieldRefs @@ -2692,138 +2958,6 @@ export type TypeMap - fields: Prisma.GoodFieldRefs - operations: { - findUnique: { - args: Prisma.GoodFindUniqueArgs - result: runtime.Types.Utils.PayloadToResult | null - } - findUniqueOrThrow: { - args: Prisma.GoodFindUniqueOrThrowArgs - result: runtime.Types.Utils.PayloadToResult - } - findFirst: { - args: Prisma.GoodFindFirstArgs - result: runtime.Types.Utils.PayloadToResult | null - } - findFirstOrThrow: { - args: Prisma.GoodFindFirstOrThrowArgs - result: runtime.Types.Utils.PayloadToResult - } - findMany: { - args: Prisma.GoodFindManyArgs - result: runtime.Types.Utils.PayloadToResult[] - } - create: { - args: Prisma.GoodCreateArgs - result: runtime.Types.Utils.PayloadToResult - } - createMany: { - args: Prisma.GoodCreateManyArgs - result: BatchPayload - } - delete: { - args: Prisma.GoodDeleteArgs - result: runtime.Types.Utils.PayloadToResult - } - update: { - args: Prisma.GoodUpdateArgs - result: runtime.Types.Utils.PayloadToResult - } - deleteMany: { - args: Prisma.GoodDeleteManyArgs - result: BatchPayload - } - updateMany: { - args: Prisma.GoodUpdateManyArgs - result: BatchPayload - } - upsert: { - args: Prisma.GoodUpsertArgs - result: runtime.Types.Utils.PayloadToResult - } - aggregate: { - args: Prisma.GoodAggregateArgs - result: runtime.Types.Utils.Optional - } - groupBy: { - args: Prisma.GoodGroupByArgs - result: runtime.Types.Utils.Optional[] - } - count: { - args: Prisma.GoodCountArgs - result: runtime.Types.Utils.Optional | number - } - } - } - GoodCategory: { - payload: Prisma.$GoodCategoryPayload - fields: Prisma.GoodCategoryFieldRefs - operations: { - findUnique: { - args: Prisma.GoodCategoryFindUniqueArgs - result: runtime.Types.Utils.PayloadToResult | null - } - findUniqueOrThrow: { - args: Prisma.GoodCategoryFindUniqueOrThrowArgs - result: runtime.Types.Utils.PayloadToResult - } - findFirst: { - args: Prisma.GoodCategoryFindFirstArgs - result: runtime.Types.Utils.PayloadToResult | null - } - findFirstOrThrow: { - args: Prisma.GoodCategoryFindFirstOrThrowArgs - result: runtime.Types.Utils.PayloadToResult - } - findMany: { - args: Prisma.GoodCategoryFindManyArgs - result: runtime.Types.Utils.PayloadToResult[] - } - create: { - args: Prisma.GoodCategoryCreateArgs - result: runtime.Types.Utils.PayloadToResult - } - createMany: { - args: Prisma.GoodCategoryCreateManyArgs - result: BatchPayload - } - delete: { - args: Prisma.GoodCategoryDeleteArgs - result: runtime.Types.Utils.PayloadToResult - } - update: { - args: Prisma.GoodCategoryUpdateArgs - result: runtime.Types.Utils.PayloadToResult - } - deleteMany: { - args: Prisma.GoodCategoryDeleteManyArgs - result: BatchPayload - } - updateMany: { - args: Prisma.GoodCategoryUpdateManyArgs - result: BatchPayload - } - upsert: { - args: Prisma.GoodCategoryUpsertArgs - result: runtime.Types.Utils.PayloadToResult - } - aggregate: { - args: Prisma.GoodCategoryAggregateArgs - result: runtime.Types.Utils.Optional - } - groupBy: { - args: Prisma.GoodCategoryGroupByArgs - result: runtime.Types.Utils.Optional[] - } - count: { - args: Prisma.GoodCategoryCountArgs - result: runtime.Types.Utils.Optional | number - } - } - } Guild: { payload: Prisma.$GuildPayload fields: Prisma.GuildFieldRefs @@ -3833,6 +3967,70 @@ export const PosScalarFieldEnum = { export type PosScalarFieldEnum = (typeof PosScalarFieldEnum)[keyof typeof PosScalarFieldEnum] +export const GoodScalarFieldEnum = { + id: 'id', + name: 'name', + is_default_guild_good: 'is_default_guild_good', + pricing_model: 'pricing_model', + description: 'description', + local_sku: 'local_sku', + barcode: 'barcode', + base_sale_price: 'base_sale_price', + image_url: 'image_url', + created_at: 'created_at', + updated_at: 'updated_at', + deleted_at: 'deleted_at', + sku_id: 'sku_id', + measure_unit_id: 'measure_unit_id', + category_id: 'category_id', + business_activity_id: 'business_activity_id' +} as const + +export type GoodScalarFieldEnum = (typeof GoodScalarFieldEnum)[keyof typeof GoodScalarFieldEnum] + + +export const GoodCategoryScalarFieldEnum = { + id: 'id', + name: 'name', + description: 'description', + image_url: 'image_url', + complex_id: 'complex_id', + is_default_guild_good: 'is_default_guild_good', + guild_id: 'guild_id', + created_at: 'created_at', + updated_at: 'updated_at', + deleted_at: 'deleted_at' +} as const + +export type GoodCategoryScalarFieldEnum = (typeof GoodCategoryScalarFieldEnum)[keyof typeof GoodCategoryScalarFieldEnum] + + +export const MeasureUnitsScalarFieldEnum = { + id: 'id', + code: 'code', + name: 'name', + created_at: 'created_at', + updated_at: 'updated_at' +} as const + +export type MeasureUnitsScalarFieldEnum = (typeof MeasureUnitsScalarFieldEnum)[keyof typeof MeasureUnitsScalarFieldEnum] + + +export const StockKeepingUnitsScalarFieldEnum = { + id: 'id', + code: 'code', + name: 'name', + VAT: 'VAT', + type: 'type', + is_public: 'is_public', + is_domestic: 'is_domestic', + created_at: 'created_at', + updated_at: 'updated_at' +} as const + +export type StockKeepingUnitsScalarFieldEnum = (typeof StockKeepingUnitsScalarFieldEnum)[keyof typeof StockKeepingUnitsScalarFieldEnum] + + export const TriggerLogScalarFieldEnum = { id: 'id', message: 'message', @@ -3870,7 +4068,7 @@ export type CustomerIndividualScalarFieldEnum = (typeof CustomerIndividualScalar export const CustomerLegalScalarFieldEnum = { - company_name: 'company_name', + name: 'name', economic_code: 'economic_code', registration_number: 'registration_number', postal_code: 'postal_code', @@ -3881,44 +4079,6 @@ export const CustomerLegalScalarFieldEnum = { export type CustomerLegalScalarFieldEnum = (typeof CustomerLegalScalarFieldEnum)[keyof typeof CustomerLegalScalarFieldEnum] -export const GoodScalarFieldEnum = { - id: 'id', - name: 'name', - is_default_guild_good: 'is_default_guild_good', - sku: 'sku', - unit_type: 'unit_type', - pricing_model: 'pricing_model', - description: 'description', - local_sku: 'local_sku', - barcode: 'barcode', - base_sale_price: 'base_sale_price', - image_url: 'image_url', - created_at: 'created_at', - updated_at: 'updated_at', - deleted_at: 'deleted_at', - category_id: 'category_id', - business_activity_id: 'business_activity_id' -} as const - -export type GoodScalarFieldEnum = (typeof GoodScalarFieldEnum)[keyof typeof GoodScalarFieldEnum] - - -export const GoodCategoryScalarFieldEnum = { - id: 'id', - name: 'name', - description: 'description', - image_url: 'image_url', - complex_id: 'complex_id', - is_default_guild_good: 'is_default_guild_good', - guild_id: 'guild_id', - created_at: 'created_at', - updated_at: 'updated_at', - deleted_at: 'deleted_at' -} as const - -export type GoodCategoryScalarFieldEnum = (typeof GoodCategoryScalarFieldEnum)[keyof typeof GoodCategoryScalarFieldEnum] - - export const GuildScalarFieldEnum = { id: 'id', name: 'name', @@ -3951,7 +4111,10 @@ export type SalesInvoiceScalarFieldEnum = (typeof SalesInvoiceScalarFieldEnum)[k export const SalesInvoiceItemScalarFieldEnum = { id: 'id', quantity: 'quantity', - unit_type: 'unit_type', + measure_unit_text: 'measure_unit_text', + measure_unit_code: 'measure_unit_code', + sku_code: 'sku_code', + sku_vat: 'sku_vat', unit_price: 'unit_price', total_amount: 'total_amount', created_at: 'created_at', @@ -3984,6 +4147,7 @@ export const SaleInvoiceFiscalAttemptsScalarFieldEnum = { attempt_no: 'attempt_no', status: 'status', tax_id: 'tax_id', + type: 'type', request_payload: 'request_payload', response_payload: 'response_payload', error_message: 'error_message', @@ -4393,6 +4557,52 @@ export const PosOrderByRelevanceFieldEnum = { export type PosOrderByRelevanceFieldEnum = (typeof PosOrderByRelevanceFieldEnum)[keyof typeof PosOrderByRelevanceFieldEnum] +export const GoodOrderByRelevanceFieldEnum = { + id: 'id', + name: 'name', + description: 'description', + local_sku: 'local_sku', + barcode: 'barcode', + image_url: 'image_url', + sku_id: 'sku_id', + measure_unit_id: 'measure_unit_id', + category_id: 'category_id', + business_activity_id: 'business_activity_id' +} as const + +export type GoodOrderByRelevanceFieldEnum = (typeof GoodOrderByRelevanceFieldEnum)[keyof typeof GoodOrderByRelevanceFieldEnum] + + +export const GoodCategoryOrderByRelevanceFieldEnum = { + id: 'id', + name: 'name', + description: 'description', + image_url: 'image_url', + complex_id: 'complex_id', + guild_id: 'guild_id' +} as const + +export type GoodCategoryOrderByRelevanceFieldEnum = (typeof GoodCategoryOrderByRelevanceFieldEnum)[keyof typeof GoodCategoryOrderByRelevanceFieldEnum] + + +export const MeasureUnitsOrderByRelevanceFieldEnum = { + id: 'id', + code: 'code', + name: 'name' +} as const + +export type MeasureUnitsOrderByRelevanceFieldEnum = (typeof MeasureUnitsOrderByRelevanceFieldEnum)[keyof typeof MeasureUnitsOrderByRelevanceFieldEnum] + + +export const StockKeepingUnitsOrderByRelevanceFieldEnum = { + id: 'id', + code: 'code', + name: 'name' +} as const + +export type StockKeepingUnitsOrderByRelevanceFieldEnum = (typeof StockKeepingUnitsOrderByRelevanceFieldEnum)[keyof typeof StockKeepingUnitsOrderByRelevanceFieldEnum] + + export const TriggerLogOrderByRelevanceFieldEnum = { message: 'message', name: 'name' @@ -4423,7 +4633,7 @@ export type CustomerIndividualOrderByRelevanceFieldEnum = (typeof CustomerIndivi export const CustomerLegalOrderByRelevanceFieldEnum = { - company_name: 'company_name', + name: 'name', economic_code: 'economic_code', registration_number: 'registration_number', postal_code: 'postal_code', @@ -4434,33 +4644,6 @@ export const CustomerLegalOrderByRelevanceFieldEnum = { export type CustomerLegalOrderByRelevanceFieldEnum = (typeof CustomerLegalOrderByRelevanceFieldEnum)[keyof typeof CustomerLegalOrderByRelevanceFieldEnum] -export const GoodOrderByRelevanceFieldEnum = { - id: 'id', - name: 'name', - sku: 'sku', - description: 'description', - local_sku: 'local_sku', - barcode: 'barcode', - image_url: 'image_url', - category_id: 'category_id', - business_activity_id: 'business_activity_id' -} as const - -export type GoodOrderByRelevanceFieldEnum = (typeof GoodOrderByRelevanceFieldEnum)[keyof typeof GoodOrderByRelevanceFieldEnum] - - -export const GoodCategoryOrderByRelevanceFieldEnum = { - id: 'id', - name: 'name', - description: 'description', - image_url: 'image_url', - complex_id: 'complex_id', - guild_id: 'guild_id' -} as const - -export type GoodCategoryOrderByRelevanceFieldEnum = (typeof GoodCategoryOrderByRelevanceFieldEnum)[keyof typeof GoodCategoryOrderByRelevanceFieldEnum] - - export const GuildOrderByRelevanceFieldEnum = { id: 'id', name: 'name', @@ -4484,6 +4667,9 @@ export type SalesInvoiceOrderByRelevanceFieldEnum = (typeof SalesInvoiceOrderByR export const SalesInvoiceItemOrderByRelevanceFieldEnum = { id: 'id', + measure_unit_text: 'measure_unit_text', + measure_unit_code: 'measure_unit_code', + sku_code: 'sku_code', notes: 'notes', invoice_id: 'invoice_id', good_id: 'good_id', @@ -4503,7 +4689,6 @@ export type SaleInvoiceFiscalsOrderByRelevanceFieldEnum = (typeof SaleInvoiceFis export const SaleInvoiceFiscalAttemptsOrderByRelevanceFieldEnum = { id: 'id', - status: 'status', tax_id: 'tax_id', error_message: 'error_message', fiscal_id: 'fiscal_id' @@ -4727,20 +4912,6 @@ export type EnumPOSTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaMo -/** - * Reference to a field of type 'CustomerType' - */ -export type EnumCustomerTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CustomerType'> - - - -/** - * Reference to a field of type 'UnitType' - */ -export type EnumUnitTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'UnitType'> - - - /** * Reference to a field of type 'GoodPricingModel' */ @@ -4755,6 +4926,34 @@ export type DecimalFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, +/** + * Reference to a field of type 'SKUGuildType' + */ +export type EnumSKUGuildTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'SKUGuildType'> + + + +/** + * Reference to a field of type 'CustomerType' + */ +export type EnumCustomerTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CustomerType'> + + + +/** + * Reference to a field of type 'FiscalResponseStatus' + */ +export type EnumFiscalResponseStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'FiscalResponseStatus'> + + + +/** + * Reference to a field of type 'FiscalRequestType' + */ +export type EnumFiscalRequestTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'FiscalRequestType'> + + + /** * Reference to a field of type 'PaymentMethodType' */ @@ -4893,12 +5092,14 @@ export type GlobalOmitConfig = { businessActivity?: Prisma.BusinessActivityOmit complex?: Prisma.ComplexOmit pos?: Prisma.PosOmit + good?: Prisma.GoodOmit + goodCategory?: Prisma.GoodCategoryOmit + measureUnits?: Prisma.MeasureUnitsOmit + stockKeepingUnits?: Prisma.StockKeepingUnitsOmit triggerLog?: Prisma.TriggerLogOmit customer?: Prisma.CustomerOmit customerIndividual?: Prisma.CustomerIndividualOmit customerLegal?: Prisma.CustomerLegalOmit - good?: Prisma.GoodOmit - goodCategory?: Prisma.GoodCategoryOmit guild?: Prisma.GuildOmit salesInvoice?: Prisma.SalesInvoiceOmit salesInvoiceItem?: Prisma.SalesInvoiceItemOmit diff --git a/src/generated/prisma/internal/prismaNamespaceBrowser.ts b/src/generated/prisma/internal/prismaNamespaceBrowser.ts index eb6fa1f..58e6847 100644 --- a/src/generated/prisma/internal/prismaNamespaceBrowser.ts +++ b/src/generated/prisma/internal/prismaNamespaceBrowser.ts @@ -81,12 +81,14 @@ export const ModelName = { BusinessActivity: 'BusinessActivity', Complex: 'Complex', Pos: 'Pos', + Good: 'Good', + GoodCategory: 'GoodCategory', + MeasureUnits: 'MeasureUnits', + StockKeepingUnits: 'StockKeepingUnits', TriggerLog: 'TriggerLog', Customer: 'Customer', CustomerIndividual: 'CustomerIndividual', CustomerLegal: 'CustomerLegal', - Good: 'Good', - GoodCategory: 'GoodCategory', Guild: 'Guild', SalesInvoice: 'SalesInvoice', SalesInvoiceItem: 'SalesInvoiceItem', @@ -490,6 +492,70 @@ export const PosScalarFieldEnum = { export type PosScalarFieldEnum = (typeof PosScalarFieldEnum)[keyof typeof PosScalarFieldEnum] +export const GoodScalarFieldEnum = { + id: 'id', + name: 'name', + is_default_guild_good: 'is_default_guild_good', + pricing_model: 'pricing_model', + description: 'description', + local_sku: 'local_sku', + barcode: 'barcode', + base_sale_price: 'base_sale_price', + image_url: 'image_url', + created_at: 'created_at', + updated_at: 'updated_at', + deleted_at: 'deleted_at', + sku_id: 'sku_id', + measure_unit_id: 'measure_unit_id', + category_id: 'category_id', + business_activity_id: 'business_activity_id' +} as const + +export type GoodScalarFieldEnum = (typeof GoodScalarFieldEnum)[keyof typeof GoodScalarFieldEnum] + + +export const GoodCategoryScalarFieldEnum = { + id: 'id', + name: 'name', + description: 'description', + image_url: 'image_url', + complex_id: 'complex_id', + is_default_guild_good: 'is_default_guild_good', + guild_id: 'guild_id', + created_at: 'created_at', + updated_at: 'updated_at', + deleted_at: 'deleted_at' +} as const + +export type GoodCategoryScalarFieldEnum = (typeof GoodCategoryScalarFieldEnum)[keyof typeof GoodCategoryScalarFieldEnum] + + +export const MeasureUnitsScalarFieldEnum = { + id: 'id', + code: 'code', + name: 'name', + created_at: 'created_at', + updated_at: 'updated_at' +} as const + +export type MeasureUnitsScalarFieldEnum = (typeof MeasureUnitsScalarFieldEnum)[keyof typeof MeasureUnitsScalarFieldEnum] + + +export const StockKeepingUnitsScalarFieldEnum = { + id: 'id', + code: 'code', + name: 'name', + VAT: 'VAT', + type: 'type', + is_public: 'is_public', + is_domestic: 'is_domestic', + created_at: 'created_at', + updated_at: 'updated_at' +} as const + +export type StockKeepingUnitsScalarFieldEnum = (typeof StockKeepingUnitsScalarFieldEnum)[keyof typeof StockKeepingUnitsScalarFieldEnum] + + export const TriggerLogScalarFieldEnum = { id: 'id', message: 'message', @@ -527,7 +593,7 @@ export type CustomerIndividualScalarFieldEnum = (typeof CustomerIndividualScalar export const CustomerLegalScalarFieldEnum = { - company_name: 'company_name', + name: 'name', economic_code: 'economic_code', registration_number: 'registration_number', postal_code: 'postal_code', @@ -538,44 +604,6 @@ export const CustomerLegalScalarFieldEnum = { export type CustomerLegalScalarFieldEnum = (typeof CustomerLegalScalarFieldEnum)[keyof typeof CustomerLegalScalarFieldEnum] -export const GoodScalarFieldEnum = { - id: 'id', - name: 'name', - is_default_guild_good: 'is_default_guild_good', - sku: 'sku', - unit_type: 'unit_type', - pricing_model: 'pricing_model', - description: 'description', - local_sku: 'local_sku', - barcode: 'barcode', - base_sale_price: 'base_sale_price', - image_url: 'image_url', - created_at: 'created_at', - updated_at: 'updated_at', - deleted_at: 'deleted_at', - category_id: 'category_id', - business_activity_id: 'business_activity_id' -} as const - -export type GoodScalarFieldEnum = (typeof GoodScalarFieldEnum)[keyof typeof GoodScalarFieldEnum] - - -export const GoodCategoryScalarFieldEnum = { - id: 'id', - name: 'name', - description: 'description', - image_url: 'image_url', - complex_id: 'complex_id', - is_default_guild_good: 'is_default_guild_good', - guild_id: 'guild_id', - created_at: 'created_at', - updated_at: 'updated_at', - deleted_at: 'deleted_at' -} as const - -export type GoodCategoryScalarFieldEnum = (typeof GoodCategoryScalarFieldEnum)[keyof typeof GoodCategoryScalarFieldEnum] - - export const GuildScalarFieldEnum = { id: 'id', name: 'name', @@ -608,7 +636,10 @@ export type SalesInvoiceScalarFieldEnum = (typeof SalesInvoiceScalarFieldEnum)[k export const SalesInvoiceItemScalarFieldEnum = { id: 'id', quantity: 'quantity', - unit_type: 'unit_type', + measure_unit_text: 'measure_unit_text', + measure_unit_code: 'measure_unit_code', + sku_code: 'sku_code', + sku_vat: 'sku_vat', unit_price: 'unit_price', total_amount: 'total_amount', created_at: 'created_at', @@ -641,6 +672,7 @@ export const SaleInvoiceFiscalAttemptsScalarFieldEnum = { attempt_no: 'attempt_no', status: 'status', tax_id: 'tax_id', + type: 'type', request_payload: 'request_payload', response_payload: 'response_payload', error_message: 'error_message', @@ -1050,6 +1082,52 @@ export const PosOrderByRelevanceFieldEnum = { export type PosOrderByRelevanceFieldEnum = (typeof PosOrderByRelevanceFieldEnum)[keyof typeof PosOrderByRelevanceFieldEnum] +export const GoodOrderByRelevanceFieldEnum = { + id: 'id', + name: 'name', + description: 'description', + local_sku: 'local_sku', + barcode: 'barcode', + image_url: 'image_url', + sku_id: 'sku_id', + measure_unit_id: 'measure_unit_id', + category_id: 'category_id', + business_activity_id: 'business_activity_id' +} as const + +export type GoodOrderByRelevanceFieldEnum = (typeof GoodOrderByRelevanceFieldEnum)[keyof typeof GoodOrderByRelevanceFieldEnum] + + +export const GoodCategoryOrderByRelevanceFieldEnum = { + id: 'id', + name: 'name', + description: 'description', + image_url: 'image_url', + complex_id: 'complex_id', + guild_id: 'guild_id' +} as const + +export type GoodCategoryOrderByRelevanceFieldEnum = (typeof GoodCategoryOrderByRelevanceFieldEnum)[keyof typeof GoodCategoryOrderByRelevanceFieldEnum] + + +export const MeasureUnitsOrderByRelevanceFieldEnum = { + id: 'id', + code: 'code', + name: 'name' +} as const + +export type MeasureUnitsOrderByRelevanceFieldEnum = (typeof MeasureUnitsOrderByRelevanceFieldEnum)[keyof typeof MeasureUnitsOrderByRelevanceFieldEnum] + + +export const StockKeepingUnitsOrderByRelevanceFieldEnum = { + id: 'id', + code: 'code', + name: 'name' +} as const + +export type StockKeepingUnitsOrderByRelevanceFieldEnum = (typeof StockKeepingUnitsOrderByRelevanceFieldEnum)[keyof typeof StockKeepingUnitsOrderByRelevanceFieldEnum] + + export const TriggerLogOrderByRelevanceFieldEnum = { message: 'message', name: 'name' @@ -1080,7 +1158,7 @@ export type CustomerIndividualOrderByRelevanceFieldEnum = (typeof CustomerIndivi export const CustomerLegalOrderByRelevanceFieldEnum = { - company_name: 'company_name', + name: 'name', economic_code: 'economic_code', registration_number: 'registration_number', postal_code: 'postal_code', @@ -1091,33 +1169,6 @@ export const CustomerLegalOrderByRelevanceFieldEnum = { export type CustomerLegalOrderByRelevanceFieldEnum = (typeof CustomerLegalOrderByRelevanceFieldEnum)[keyof typeof CustomerLegalOrderByRelevanceFieldEnum] -export const GoodOrderByRelevanceFieldEnum = { - id: 'id', - name: 'name', - sku: 'sku', - description: 'description', - local_sku: 'local_sku', - barcode: 'barcode', - image_url: 'image_url', - category_id: 'category_id', - business_activity_id: 'business_activity_id' -} as const - -export type GoodOrderByRelevanceFieldEnum = (typeof GoodOrderByRelevanceFieldEnum)[keyof typeof GoodOrderByRelevanceFieldEnum] - - -export const GoodCategoryOrderByRelevanceFieldEnum = { - id: 'id', - name: 'name', - description: 'description', - image_url: 'image_url', - complex_id: 'complex_id', - guild_id: 'guild_id' -} as const - -export type GoodCategoryOrderByRelevanceFieldEnum = (typeof GoodCategoryOrderByRelevanceFieldEnum)[keyof typeof GoodCategoryOrderByRelevanceFieldEnum] - - export const GuildOrderByRelevanceFieldEnum = { id: 'id', name: 'name', @@ -1141,6 +1192,9 @@ export type SalesInvoiceOrderByRelevanceFieldEnum = (typeof SalesInvoiceOrderByR export const SalesInvoiceItemOrderByRelevanceFieldEnum = { id: 'id', + measure_unit_text: 'measure_unit_text', + measure_unit_code: 'measure_unit_code', + sku_code: 'sku_code', notes: 'notes', invoice_id: 'invoice_id', good_id: 'good_id', @@ -1160,7 +1214,6 @@ export type SaleInvoiceFiscalsOrderByRelevanceFieldEnum = (typeof SaleInvoiceFis export const SaleInvoiceFiscalAttemptsOrderByRelevanceFieldEnum = { id: 'id', - status: 'status', tax_id: 'tax_id', error_message: 'error_message', fiscal_id: 'fiscal_id' diff --git a/src/generated/prisma/models.ts b/src/generated/prisma/models.ts index a57eaa8..0c18db5 100644 --- a/src/generated/prisma/models.ts +++ b/src/generated/prisma/models.ts @@ -38,12 +38,14 @@ export type * from './models/ConsumerLegal.js' export type * from './models/BusinessActivity.js' export type * from './models/Complex.js' export type * from './models/Pos.js' +export type * from './models/Good.js' +export type * from './models/GoodCategory.js' +export type * from './models/MeasureUnits.js' +export type * from './models/StockKeepingUnits.js' export type * from './models/TriggerLog.js' export type * from './models/Customer.js' export type * from './models/CustomerIndividual.js' export type * from './models/CustomerLegal.js' -export type * from './models/Good.js' -export type * from './models/GoodCategory.js' export type * from './models/Guild.js' export type * from './models/SalesInvoice.js' export type * from './models/SalesInvoiceItem.js' diff --git a/src/generated/prisma/models/BusinessActivity.ts b/src/generated/prisma/models/BusinessActivity.ts index 743bc3f..b7bccfc 100644 --- a/src/generated/prisma/models/BusinessActivity.ts +++ b/src/generated/prisma/models/BusinessActivity.ts @@ -556,6 +556,22 @@ export type BusinessActivityUpdateOneRequiredWithoutComplexesNestedInput = { update?: Prisma.XOR, Prisma.BusinessActivityUncheckedUpdateWithoutComplexesInput> } +export type BusinessActivityCreateNestedOneWithoutGoodsInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.BusinessActivityCreateOrConnectWithoutGoodsInput + connect?: Prisma.BusinessActivityWhereUniqueInput +} + +export type BusinessActivityUpdateOneWithoutGoodsNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.BusinessActivityCreateOrConnectWithoutGoodsInput + upsert?: Prisma.BusinessActivityUpsertWithoutGoodsInput + disconnect?: Prisma.BusinessActivityWhereInput | boolean + delete?: Prisma.BusinessActivityWhereInput | boolean + connect?: Prisma.BusinessActivityWhereUniqueInput + update?: Prisma.XOR, Prisma.BusinessActivityUncheckedUpdateWithoutGoodsInput> +} + export type BusinessActivityCreateNestedOneWithoutCustomer_individualsInput = { create?: Prisma.XOR connectOrCreate?: Prisma.BusinessActivityCreateOrConnectWithoutCustomer_individualsInput @@ -584,22 +600,6 @@ export type BusinessActivityUpdateOneRequiredWithoutCustomer_legalsNestedInput = update?: Prisma.XOR, Prisma.BusinessActivityUncheckedUpdateWithoutCustomer_legalsInput> } -export type BusinessActivityCreateNestedOneWithoutGoodsInput = { - create?: Prisma.XOR - connectOrCreate?: Prisma.BusinessActivityCreateOrConnectWithoutGoodsInput - connect?: Prisma.BusinessActivityWhereUniqueInput -} - -export type BusinessActivityUpdateOneWithoutGoodsNestedInput = { - create?: Prisma.XOR - connectOrCreate?: Prisma.BusinessActivityCreateOrConnectWithoutGoodsInput - upsert?: Prisma.BusinessActivityUpsertWithoutGoodsInput - disconnect?: Prisma.BusinessActivityWhereInput | boolean - delete?: Prisma.BusinessActivityWhereInput | boolean - connect?: Prisma.BusinessActivityWhereUniqueInput - update?: Prisma.XOR, Prisma.BusinessActivityUncheckedUpdateWithoutGoodsInput> -} - export type BusinessActivityCreateNestedManyWithoutGuildInput = { create?: Prisma.XOR | Prisma.BusinessActivityCreateWithoutGuildInput[] | Prisma.BusinessActivityUncheckedCreateWithoutGuildInput[] connectOrCreate?: Prisma.BusinessActivityCreateOrConnectWithoutGuildInput | Prisma.BusinessActivityCreateOrConnectWithoutGuildInput[] @@ -969,6 +969,90 @@ export type BusinessActivityUncheckedUpdateWithoutComplexesInput = { customer_legals?: Prisma.CustomerLegalUncheckedUpdateManyWithoutBusiness_activityNestedInput } +export type BusinessActivityCreateWithoutGoodsInput = { + id?: string + economic_code: string + name: string + fiscal_id: string + partner_token: string + created_at?: Date | string + updated_at?: Date | string + guild: Prisma.GuildCreateNestedOneWithoutBusiness_activitiesInput + consumer: Prisma.ConsumerCreateNestedOneWithoutBusiness_activitiesInput + license_activation?: Prisma.LicenseActivationCreateNestedOneWithoutBusiness_activityInput + complexes?: Prisma.ComplexCreateNestedManyWithoutBusiness_activityInput + permission_businesses?: Prisma.PermissionBusinessCreateNestedManyWithoutBusinessInput + customer_individuals?: Prisma.CustomerIndividualCreateNestedManyWithoutBusiness_activityInput + customer_legals?: Prisma.CustomerLegalCreateNestedManyWithoutBusiness_activityInput +} + +export type BusinessActivityUncheckedCreateWithoutGoodsInput = { + id?: string + economic_code: string + name: string + fiscal_id: string + partner_token: string + created_at?: Date | string + updated_at?: Date | string + guild_id: string + consumer_id: string + license_activation?: Prisma.LicenseActivationUncheckedCreateNestedOneWithoutBusiness_activityInput + complexes?: Prisma.ComplexUncheckedCreateNestedManyWithoutBusiness_activityInput + permission_businesses?: Prisma.PermissionBusinessUncheckedCreateNestedManyWithoutBusinessInput + customer_individuals?: Prisma.CustomerIndividualUncheckedCreateNestedManyWithoutBusiness_activityInput + customer_legals?: Prisma.CustomerLegalUncheckedCreateNestedManyWithoutBusiness_activityInput +} + +export type BusinessActivityCreateOrConnectWithoutGoodsInput = { + where: Prisma.BusinessActivityWhereUniqueInput + create: Prisma.XOR +} + +export type BusinessActivityUpsertWithoutGoodsInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.BusinessActivityWhereInput +} + +export type BusinessActivityUpdateToOneWithWhereWithoutGoodsInput = { + where?: Prisma.BusinessActivityWhereInput + data: Prisma.XOR +} + +export type BusinessActivityUpdateWithoutGoodsInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + economic_code?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + fiscal_id?: Prisma.StringFieldUpdateOperationsInput | string + partner_token?: Prisma.StringFieldUpdateOperationsInput | string + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + guild?: Prisma.GuildUpdateOneRequiredWithoutBusiness_activitiesNestedInput + consumer?: Prisma.ConsumerUpdateOneRequiredWithoutBusiness_activitiesNestedInput + license_activation?: Prisma.LicenseActivationUpdateOneWithoutBusiness_activityNestedInput + complexes?: Prisma.ComplexUpdateManyWithoutBusiness_activityNestedInput + permission_businesses?: Prisma.PermissionBusinessUpdateManyWithoutBusinessNestedInput + customer_individuals?: Prisma.CustomerIndividualUpdateManyWithoutBusiness_activityNestedInput + customer_legals?: Prisma.CustomerLegalUpdateManyWithoutBusiness_activityNestedInput +} + +export type BusinessActivityUncheckedUpdateWithoutGoodsInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + economic_code?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + fiscal_id?: Prisma.StringFieldUpdateOperationsInput | string + partner_token?: Prisma.StringFieldUpdateOperationsInput | string + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + guild_id?: Prisma.StringFieldUpdateOperationsInput | string + consumer_id?: Prisma.StringFieldUpdateOperationsInput | string + license_activation?: Prisma.LicenseActivationUncheckedUpdateOneWithoutBusiness_activityNestedInput + complexes?: Prisma.ComplexUncheckedUpdateManyWithoutBusiness_activityNestedInput + permission_businesses?: Prisma.PermissionBusinessUncheckedUpdateManyWithoutBusinessNestedInput + customer_individuals?: Prisma.CustomerIndividualUncheckedUpdateManyWithoutBusiness_activityNestedInput + customer_legals?: Prisma.CustomerLegalUncheckedUpdateManyWithoutBusiness_activityNestedInput +} + export type BusinessActivityCreateWithoutCustomer_individualsInput = { id?: string economic_code: string @@ -1137,90 +1221,6 @@ export type BusinessActivityUncheckedUpdateWithoutCustomer_legalsInput = { customer_individuals?: Prisma.CustomerIndividualUncheckedUpdateManyWithoutBusiness_activityNestedInput } -export type BusinessActivityCreateWithoutGoodsInput = { - id?: string - economic_code: string - name: string - fiscal_id: string - partner_token: string - created_at?: Date | string - updated_at?: Date | string - guild: Prisma.GuildCreateNestedOneWithoutBusiness_activitiesInput - consumer: Prisma.ConsumerCreateNestedOneWithoutBusiness_activitiesInput - license_activation?: Prisma.LicenseActivationCreateNestedOneWithoutBusiness_activityInput - complexes?: Prisma.ComplexCreateNestedManyWithoutBusiness_activityInput - permission_businesses?: Prisma.PermissionBusinessCreateNestedManyWithoutBusinessInput - customer_individuals?: Prisma.CustomerIndividualCreateNestedManyWithoutBusiness_activityInput - customer_legals?: Prisma.CustomerLegalCreateNestedManyWithoutBusiness_activityInput -} - -export type BusinessActivityUncheckedCreateWithoutGoodsInput = { - id?: string - economic_code: string - name: string - fiscal_id: string - partner_token: string - created_at?: Date | string - updated_at?: Date | string - guild_id: string - consumer_id: string - license_activation?: Prisma.LicenseActivationUncheckedCreateNestedOneWithoutBusiness_activityInput - complexes?: Prisma.ComplexUncheckedCreateNestedManyWithoutBusiness_activityInput - permission_businesses?: Prisma.PermissionBusinessUncheckedCreateNestedManyWithoutBusinessInput - customer_individuals?: Prisma.CustomerIndividualUncheckedCreateNestedManyWithoutBusiness_activityInput - customer_legals?: Prisma.CustomerLegalUncheckedCreateNestedManyWithoutBusiness_activityInput -} - -export type BusinessActivityCreateOrConnectWithoutGoodsInput = { - where: Prisma.BusinessActivityWhereUniqueInput - create: Prisma.XOR -} - -export type BusinessActivityUpsertWithoutGoodsInput = { - update: Prisma.XOR - create: Prisma.XOR - where?: Prisma.BusinessActivityWhereInput -} - -export type BusinessActivityUpdateToOneWithWhereWithoutGoodsInput = { - where?: Prisma.BusinessActivityWhereInput - data: Prisma.XOR -} - -export type BusinessActivityUpdateWithoutGoodsInput = { - id?: Prisma.StringFieldUpdateOperationsInput | string - economic_code?: Prisma.StringFieldUpdateOperationsInput | string - name?: Prisma.StringFieldUpdateOperationsInput | string - fiscal_id?: Prisma.StringFieldUpdateOperationsInput | string - partner_token?: Prisma.StringFieldUpdateOperationsInput | string - created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - guild?: Prisma.GuildUpdateOneRequiredWithoutBusiness_activitiesNestedInput - consumer?: Prisma.ConsumerUpdateOneRequiredWithoutBusiness_activitiesNestedInput - license_activation?: Prisma.LicenseActivationUpdateOneWithoutBusiness_activityNestedInput - complexes?: Prisma.ComplexUpdateManyWithoutBusiness_activityNestedInput - permission_businesses?: Prisma.PermissionBusinessUpdateManyWithoutBusinessNestedInput - customer_individuals?: Prisma.CustomerIndividualUpdateManyWithoutBusiness_activityNestedInput - customer_legals?: Prisma.CustomerLegalUpdateManyWithoutBusiness_activityNestedInput -} - -export type BusinessActivityUncheckedUpdateWithoutGoodsInput = { - id?: Prisma.StringFieldUpdateOperationsInput | string - economic_code?: Prisma.StringFieldUpdateOperationsInput | string - name?: Prisma.StringFieldUpdateOperationsInput | string - fiscal_id?: Prisma.StringFieldUpdateOperationsInput | string - partner_token?: Prisma.StringFieldUpdateOperationsInput | string - created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - guild_id?: Prisma.StringFieldUpdateOperationsInput | string - consumer_id?: Prisma.StringFieldUpdateOperationsInput | string - license_activation?: Prisma.LicenseActivationUncheckedUpdateOneWithoutBusiness_activityNestedInput - complexes?: Prisma.ComplexUncheckedUpdateManyWithoutBusiness_activityNestedInput - permission_businesses?: Prisma.PermissionBusinessUncheckedUpdateManyWithoutBusinessNestedInput - customer_individuals?: Prisma.CustomerIndividualUncheckedUpdateManyWithoutBusiness_activityNestedInput - customer_legals?: Prisma.CustomerLegalUncheckedUpdateManyWithoutBusiness_activityNestedInput -} - export type BusinessActivityCreateWithoutGuildInput = { id?: string economic_code: string diff --git a/src/generated/prisma/models/Customer.ts b/src/generated/prisma/models/Customer.ts index 6c32a8b..1d1f987 100644 --- a/src/generated/prisma/models/Customer.ts +++ b/src/generated/prisma/models/Customer.ts @@ -373,10 +373,6 @@ export type EnumCustomerTypeFieldUpdateOperationsInput = { set?: $Enums.CustomerType } -export type NullableDateTimeFieldUpdateOperationsInput = { - set?: Date | string | null -} - export type CustomerCreateNestedOneWithoutIndividualInput = { create?: Prisma.XOR connectOrCreate?: Prisma.CustomerCreateOrConnectWithoutIndividualInput diff --git a/src/generated/prisma/models/CustomerLegal.ts b/src/generated/prisma/models/CustomerLegal.ts index 893a213..b4c11c9 100644 --- a/src/generated/prisma/models/CustomerLegal.ts +++ b/src/generated/prisma/models/CustomerLegal.ts @@ -25,7 +25,7 @@ export type AggregateCustomerLegal = { } export type CustomerLegalMinAggregateOutputType = { - company_name: string | null + name: string | null economic_code: string | null registration_number: string | null postal_code: string | null @@ -34,7 +34,7 @@ export type CustomerLegalMinAggregateOutputType = { } export type CustomerLegalMaxAggregateOutputType = { - company_name: string | null + name: string | null economic_code: string | null registration_number: string | null postal_code: string | null @@ -43,7 +43,7 @@ export type CustomerLegalMaxAggregateOutputType = { } export type CustomerLegalCountAggregateOutputType = { - company_name: number + name: number economic_code: number registration_number: number postal_code: number @@ -54,7 +54,7 @@ export type CustomerLegalCountAggregateOutputType = { export type CustomerLegalMinAggregateInputType = { - company_name?: true + name?: true economic_code?: true registration_number?: true postal_code?: true @@ -63,7 +63,7 @@ export type CustomerLegalMinAggregateInputType = { } export type CustomerLegalMaxAggregateInputType = { - company_name?: true + name?: true economic_code?: true registration_number?: true postal_code?: true @@ -72,7 +72,7 @@ export type CustomerLegalMaxAggregateInputType = { } export type CustomerLegalCountAggregateInputType = { - company_name?: true + name?: true economic_code?: true registration_number?: true postal_code?: true @@ -154,7 +154,7 @@ export type CustomerLegalGroupByArgs | string + name?: Prisma.StringFilter<"CustomerLegal"> | string economic_code?: Prisma.StringFilter<"CustomerLegal"> | string registration_number?: Prisma.StringNullableFilter<"CustomerLegal"> | string | null postal_code?: Prisma.StringFilter<"CustomerLegal"> | string @@ -195,7 +195,7 @@ export type CustomerLegalWhereInput = { } export type CustomerLegalOrderByWithRelationInput = { - company_name?: Prisma.SortOrder + name?: Prisma.SortOrder economic_code?: Prisma.SortOrder registration_number?: Prisma.SortOrderInput | Prisma.SortOrder postal_code?: Prisma.SortOrder @@ -212,7 +212,7 @@ export type CustomerLegalWhereUniqueInput = Prisma.AtLeast<{ AND?: Prisma.CustomerLegalWhereInput | Prisma.CustomerLegalWhereInput[] OR?: Prisma.CustomerLegalWhereInput[] NOT?: Prisma.CustomerLegalWhereInput | Prisma.CustomerLegalWhereInput[] - company_name?: Prisma.StringFilter<"CustomerLegal"> | string + name?: Prisma.StringFilter<"CustomerLegal"> | string economic_code?: Prisma.StringFilter<"CustomerLegal"> | string registration_number?: Prisma.StringNullableFilter<"CustomerLegal"> | string | null postal_code?: Prisma.StringFilter<"CustomerLegal"> | string @@ -222,7 +222,7 @@ export type CustomerLegalWhereUniqueInput = Prisma.AtLeast<{ }, "customer_id" | "business_activity_id_economic_code"> export type CustomerLegalOrderByWithAggregationInput = { - company_name?: Prisma.SortOrder + name?: Prisma.SortOrder economic_code?: Prisma.SortOrder registration_number?: Prisma.SortOrderInput | Prisma.SortOrder postal_code?: Prisma.SortOrder @@ -237,7 +237,7 @@ export type CustomerLegalScalarWhereWithAggregatesInput = { AND?: Prisma.CustomerLegalScalarWhereWithAggregatesInput | Prisma.CustomerLegalScalarWhereWithAggregatesInput[] OR?: Prisma.CustomerLegalScalarWhereWithAggregatesInput[] NOT?: Prisma.CustomerLegalScalarWhereWithAggregatesInput | Prisma.CustomerLegalScalarWhereWithAggregatesInput[] - company_name?: Prisma.StringWithAggregatesFilter<"CustomerLegal"> | string + name?: Prisma.StringWithAggregatesFilter<"CustomerLegal"> | string economic_code?: Prisma.StringWithAggregatesFilter<"CustomerLegal"> | string registration_number?: Prisma.StringNullableWithAggregatesFilter<"CustomerLegal"> | string | null postal_code?: Prisma.StringWithAggregatesFilter<"CustomerLegal"> | string @@ -246,7 +246,7 @@ export type CustomerLegalScalarWhereWithAggregatesInput = { } export type CustomerLegalCreateInput = { - company_name: string + name: string economic_code: string registration_number?: string | null postal_code: string @@ -255,7 +255,7 @@ export type CustomerLegalCreateInput = { } export type CustomerLegalUncheckedCreateInput = { - company_name: string + name: string economic_code: string registration_number?: string | null postal_code: string @@ -264,7 +264,7 @@ export type CustomerLegalUncheckedCreateInput = { } export type CustomerLegalUpdateInput = { - company_name?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string economic_code?: Prisma.StringFieldUpdateOperationsInput | string registration_number?: Prisma.NullableStringFieldUpdateOperationsInput | string | null postal_code?: Prisma.StringFieldUpdateOperationsInput | string @@ -273,7 +273,7 @@ export type CustomerLegalUpdateInput = { } export type CustomerLegalUncheckedUpdateInput = { - company_name?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string economic_code?: Prisma.StringFieldUpdateOperationsInput | string registration_number?: Prisma.NullableStringFieldUpdateOperationsInput | string | null postal_code?: Prisma.StringFieldUpdateOperationsInput | string @@ -282,7 +282,7 @@ export type CustomerLegalUncheckedUpdateInput = { } export type CustomerLegalCreateManyInput = { - company_name: string + name: string economic_code: string registration_number?: string | null postal_code: string @@ -291,14 +291,14 @@ export type CustomerLegalCreateManyInput = { } export type CustomerLegalUpdateManyMutationInput = { - company_name?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string economic_code?: Prisma.StringFieldUpdateOperationsInput | string registration_number?: Prisma.NullableStringFieldUpdateOperationsInput | string | null postal_code?: Prisma.StringFieldUpdateOperationsInput | string } export type CustomerLegalUncheckedUpdateManyInput = { - company_name?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string economic_code?: Prisma.StringFieldUpdateOperationsInput | string registration_number?: Prisma.NullableStringFieldUpdateOperationsInput | string | null postal_code?: Prisma.StringFieldUpdateOperationsInput | string @@ -333,7 +333,7 @@ export type CustomerLegalBusiness_activity_idEconomic_codeCompoundUniqueInput = } export type CustomerLegalCountOrderByAggregateInput = { - company_name?: Prisma.SortOrder + name?: Prisma.SortOrder economic_code?: Prisma.SortOrder registration_number?: Prisma.SortOrder postal_code?: Prisma.SortOrder @@ -342,7 +342,7 @@ export type CustomerLegalCountOrderByAggregateInput = { } export type CustomerLegalMaxOrderByAggregateInput = { - company_name?: Prisma.SortOrder + name?: Prisma.SortOrder economic_code?: Prisma.SortOrder registration_number?: Prisma.SortOrder postal_code?: Prisma.SortOrder @@ -351,7 +351,7 @@ export type CustomerLegalMaxOrderByAggregateInput = { } export type CustomerLegalMinOrderByAggregateInput = { - company_name?: Prisma.SortOrder + name?: Prisma.SortOrder economic_code?: Prisma.SortOrder registration_number?: Prisma.SortOrder postal_code?: Prisma.SortOrder @@ -434,7 +434,7 @@ export type CustomerLegalUncheckedUpdateOneWithoutCustomerNestedInput = { } export type CustomerLegalCreateWithoutBusiness_activityInput = { - company_name: string + name: string economic_code: string registration_number?: string | null postal_code: string @@ -442,7 +442,7 @@ export type CustomerLegalCreateWithoutBusiness_activityInput = { } export type CustomerLegalUncheckedCreateWithoutBusiness_activityInput = { - company_name: string + name: string economic_code: string registration_number?: string | null postal_code: string @@ -479,7 +479,7 @@ export type CustomerLegalScalarWhereInput = { AND?: Prisma.CustomerLegalScalarWhereInput | Prisma.CustomerLegalScalarWhereInput[] OR?: Prisma.CustomerLegalScalarWhereInput[] NOT?: Prisma.CustomerLegalScalarWhereInput | Prisma.CustomerLegalScalarWhereInput[] - company_name?: Prisma.StringFilter<"CustomerLegal"> | string + name?: Prisma.StringFilter<"CustomerLegal"> | string economic_code?: Prisma.StringFilter<"CustomerLegal"> | string registration_number?: Prisma.StringNullableFilter<"CustomerLegal"> | string | null postal_code?: Prisma.StringFilter<"CustomerLegal"> | string @@ -488,7 +488,7 @@ export type CustomerLegalScalarWhereInput = { } export type CustomerLegalCreateWithoutCustomerInput = { - company_name: string + name: string economic_code: string registration_number?: string | null postal_code: string @@ -496,7 +496,7 @@ export type CustomerLegalCreateWithoutCustomerInput = { } export type CustomerLegalUncheckedCreateWithoutCustomerInput = { - company_name: string + name: string economic_code: string registration_number?: string | null postal_code: string @@ -520,7 +520,7 @@ export type CustomerLegalUpdateToOneWithWhereWithoutCustomerInput = { } export type CustomerLegalUpdateWithoutCustomerInput = { - company_name?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string economic_code?: Prisma.StringFieldUpdateOperationsInput | string registration_number?: Prisma.NullableStringFieldUpdateOperationsInput | string | null postal_code?: Prisma.StringFieldUpdateOperationsInput | string @@ -528,7 +528,7 @@ export type CustomerLegalUpdateWithoutCustomerInput = { } export type CustomerLegalUncheckedUpdateWithoutCustomerInput = { - company_name?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string economic_code?: Prisma.StringFieldUpdateOperationsInput | string registration_number?: Prisma.NullableStringFieldUpdateOperationsInput | string | null postal_code?: Prisma.StringFieldUpdateOperationsInput | string @@ -536,7 +536,7 @@ export type CustomerLegalUncheckedUpdateWithoutCustomerInput = { } export type CustomerLegalCreateManyBusiness_activityInput = { - company_name: string + name: string economic_code: string registration_number?: string | null postal_code: string @@ -544,7 +544,7 @@ export type CustomerLegalCreateManyBusiness_activityInput = { } export type CustomerLegalUpdateWithoutBusiness_activityInput = { - company_name?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string economic_code?: Prisma.StringFieldUpdateOperationsInput | string registration_number?: Prisma.NullableStringFieldUpdateOperationsInput | string | null postal_code?: Prisma.StringFieldUpdateOperationsInput | string @@ -552,7 +552,7 @@ export type CustomerLegalUpdateWithoutBusiness_activityInput = { } export type CustomerLegalUncheckedUpdateWithoutBusiness_activityInput = { - company_name?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string economic_code?: Prisma.StringFieldUpdateOperationsInput | string registration_number?: Prisma.NullableStringFieldUpdateOperationsInput | string | null postal_code?: Prisma.StringFieldUpdateOperationsInput | string @@ -560,7 +560,7 @@ export type CustomerLegalUncheckedUpdateWithoutBusiness_activityInput = { } export type CustomerLegalUncheckedUpdateManyWithoutBusiness_activityInput = { - company_name?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string economic_code?: Prisma.StringFieldUpdateOperationsInput | string registration_number?: Prisma.NullableStringFieldUpdateOperationsInput | string | null postal_code?: Prisma.StringFieldUpdateOperationsInput | string @@ -570,7 +570,7 @@ export type CustomerLegalUncheckedUpdateManyWithoutBusiness_activityInput = { export type CustomerLegalSelect = runtime.Types.Extensions.GetSelect<{ - company_name?: boolean + name?: boolean economic_code?: boolean registration_number?: boolean postal_code?: boolean @@ -583,7 +583,7 @@ export type CustomerLegalSelect = runtime.Types.Extensions.GetOmit<"company_name" | "economic_code" | "registration_number" | "postal_code" | "customer_id" | "business_activity_id", ExtArgs["result"]["customerLegal"]> +export type CustomerLegalOmit = runtime.Types.Extensions.GetOmit<"name" | "economic_code" | "registration_number" | "postal_code" | "customer_id" | "business_activity_id", ExtArgs["result"]["customerLegal"]> export type CustomerLegalInclude = { customer?: boolean | Prisma.CustomerDefaultArgs business_activity?: boolean | Prisma.BusinessActivityDefaultArgs @@ -604,7 +604,7 @@ export type $CustomerLegalPayload } scalars: runtime.Types.Extensions.GetPayloadResult<{ - company_name: string + name: string economic_code: string registration_number: string | null postal_code: string @@ -693,8 +693,8 @@ export interface CustomerLegalDelegate(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> @@ -981,7 +981,7 @@ export interface Prisma__CustomerLegalClient + readonly name: Prisma.FieldRef<"CustomerLegal", 'String'> readonly economic_code: Prisma.FieldRef<"CustomerLegal", 'String'> readonly registration_number: Prisma.FieldRef<"CustomerLegal", 'String'> readonly postal_code: Prisma.FieldRef<"CustomerLegal", 'String'> diff --git a/src/generated/prisma/models/Good.ts b/src/generated/prisma/models/Good.ts index b8f45a8..e57477e 100644 --- a/src/generated/prisma/models/Good.ts +++ b/src/generated/prisma/models/Good.ts @@ -38,8 +38,6 @@ export type GoodMinAggregateOutputType = { id: string | null name: string | null is_default_guild_good: boolean | null - sku: string | null - unit_type: $Enums.UnitType | null pricing_model: $Enums.GoodPricingModel | null description: string | null local_sku: string | null @@ -49,6 +47,8 @@ export type GoodMinAggregateOutputType = { created_at: Date | null updated_at: Date | null deleted_at: Date | null + sku_id: string | null + measure_unit_id: string | null category_id: string | null business_activity_id: string | null } @@ -57,8 +57,6 @@ export type GoodMaxAggregateOutputType = { id: string | null name: string | null is_default_guild_good: boolean | null - sku: string | null - unit_type: $Enums.UnitType | null pricing_model: $Enums.GoodPricingModel | null description: string | null local_sku: string | null @@ -68,6 +66,8 @@ export type GoodMaxAggregateOutputType = { created_at: Date | null updated_at: Date | null deleted_at: Date | null + sku_id: string | null + measure_unit_id: string | null category_id: string | null business_activity_id: string | null } @@ -76,8 +76,6 @@ export type GoodCountAggregateOutputType = { id: number name: number is_default_guild_good: number - sku: number - unit_type: number pricing_model: number description: number local_sku: number @@ -87,6 +85,8 @@ export type GoodCountAggregateOutputType = { created_at: number updated_at: number deleted_at: number + sku_id: number + measure_unit_id: number category_id: number business_activity_id: number _all: number @@ -105,8 +105,6 @@ export type GoodMinAggregateInputType = { id?: true name?: true is_default_guild_good?: true - sku?: true - unit_type?: true pricing_model?: true description?: true local_sku?: true @@ -116,6 +114,8 @@ export type GoodMinAggregateInputType = { created_at?: true updated_at?: true deleted_at?: true + sku_id?: true + measure_unit_id?: true category_id?: true business_activity_id?: true } @@ -124,8 +124,6 @@ export type GoodMaxAggregateInputType = { id?: true name?: true is_default_guild_good?: true - sku?: true - unit_type?: true pricing_model?: true description?: true local_sku?: true @@ -135,6 +133,8 @@ export type GoodMaxAggregateInputType = { created_at?: true updated_at?: true deleted_at?: true + sku_id?: true + measure_unit_id?: true category_id?: true business_activity_id?: true } @@ -143,8 +143,6 @@ export type GoodCountAggregateInputType = { id?: true name?: true is_default_guild_good?: true - sku?: true - unit_type?: true pricing_model?: true description?: true local_sku?: true @@ -154,6 +152,8 @@ export type GoodCountAggregateInputType = { created_at?: true updated_at?: true deleted_at?: true + sku_id?: true + measure_unit_id?: true category_id?: true business_activity_id?: true _all?: true @@ -249,8 +249,6 @@ export type GoodGroupByOutputType = { id: string name: string is_default_guild_good: boolean - sku: string - unit_type: $Enums.UnitType pricing_model: $Enums.GoodPricingModel description: string | null local_sku: string | null @@ -260,6 +258,8 @@ export type GoodGroupByOutputType = { created_at: Date updated_at: Date deleted_at: Date | null + sku_id: string + measure_unit_id: string category_id: string | null business_activity_id: string | null _count: GoodCountAggregateOutputType | null @@ -291,8 +291,6 @@ export type GoodWhereInput = { id?: Prisma.StringFilter<"Good"> | string name?: Prisma.StringFilter<"Good"> | string is_default_guild_good?: Prisma.BoolFilter<"Good"> | boolean - sku?: Prisma.StringFilter<"Good"> | string - unit_type?: Prisma.EnumUnitTypeFilter<"Good"> | $Enums.UnitType pricing_model?: Prisma.EnumGoodPricingModelFilter<"Good"> | $Enums.GoodPricingModel description?: Prisma.StringNullableFilter<"Good"> | string | null local_sku?: Prisma.StringNullableFilter<"Good"> | string | null @@ -302,8 +300,12 @@ export type GoodWhereInput = { created_at?: Prisma.DateTimeFilter<"Good"> | Date | string updated_at?: Prisma.DateTimeFilter<"Good"> | Date | string deleted_at?: Prisma.DateTimeNullableFilter<"Good"> | Date | string | null + sku_id?: Prisma.StringFilter<"Good"> | string + measure_unit_id?: Prisma.StringFilter<"Good"> | string category_id?: Prisma.StringNullableFilter<"Good"> | string | null business_activity_id?: Prisma.StringNullableFilter<"Good"> | string | null + sku?: Prisma.XOR + measure_unit?: Prisma.XOR category?: Prisma.XOR | null business_activity?: Prisma.XOR | null sales_invoice_items?: Prisma.SalesInvoiceItemListRelationFilter @@ -313,8 +315,6 @@ export type GoodOrderByWithRelationInput = { id?: Prisma.SortOrder name?: Prisma.SortOrder is_default_guild_good?: Prisma.SortOrder - sku?: Prisma.SortOrder - unit_type?: Prisma.SortOrder pricing_model?: Prisma.SortOrder description?: Prisma.SortOrderInput | Prisma.SortOrder local_sku?: Prisma.SortOrderInput | Prisma.SortOrder @@ -324,8 +324,12 @@ export type GoodOrderByWithRelationInput = { created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder deleted_at?: Prisma.SortOrderInput | Prisma.SortOrder + sku_id?: Prisma.SortOrder + measure_unit_id?: Prisma.SortOrder category_id?: Prisma.SortOrderInput | Prisma.SortOrder business_activity_id?: Prisma.SortOrderInput | Prisma.SortOrder + sku?: Prisma.StockKeepingUnitsOrderByWithRelationInput + measure_unit?: Prisma.MeasureUnitsOrderByWithRelationInput category?: Prisma.GoodCategoryOrderByWithRelationInput business_activity?: Prisma.BusinessActivityOrderByWithRelationInput sales_invoice_items?: Prisma.SalesInvoiceItemOrderByRelationAggregateInput @@ -341,8 +345,6 @@ export type GoodWhereUniqueInput = Prisma.AtLeast<{ NOT?: Prisma.GoodWhereInput | Prisma.GoodWhereInput[] name?: Prisma.StringFilter<"Good"> | string is_default_guild_good?: Prisma.BoolFilter<"Good"> | boolean - sku?: Prisma.StringFilter<"Good"> | string - unit_type?: Prisma.EnumUnitTypeFilter<"Good"> | $Enums.UnitType pricing_model?: Prisma.EnumGoodPricingModelFilter<"Good"> | $Enums.GoodPricingModel description?: Prisma.StringNullableFilter<"Good"> | string | null base_sale_price?: Prisma.DecimalNullableFilter<"Good"> | runtime.Decimal | runtime.DecimalJsLike | number | string | null @@ -350,8 +352,12 @@ export type GoodWhereUniqueInput = Prisma.AtLeast<{ created_at?: Prisma.DateTimeFilter<"Good"> | Date | string updated_at?: Prisma.DateTimeFilter<"Good"> | Date | string deleted_at?: Prisma.DateTimeNullableFilter<"Good"> | Date | string | null + sku_id?: Prisma.StringFilter<"Good"> | string + measure_unit_id?: Prisma.StringFilter<"Good"> | string category_id?: Prisma.StringNullableFilter<"Good"> | string | null business_activity_id?: Prisma.StringNullableFilter<"Good"> | string | null + sku?: Prisma.XOR + measure_unit?: Prisma.XOR category?: Prisma.XOR | null business_activity?: Prisma.XOR | null sales_invoice_items?: Prisma.SalesInvoiceItemListRelationFilter @@ -361,8 +367,6 @@ export type GoodOrderByWithAggregationInput = { id?: Prisma.SortOrder name?: Prisma.SortOrder is_default_guild_good?: Prisma.SortOrder - sku?: Prisma.SortOrder - unit_type?: Prisma.SortOrder pricing_model?: Prisma.SortOrder description?: Prisma.SortOrderInput | Prisma.SortOrder local_sku?: Prisma.SortOrderInput | Prisma.SortOrder @@ -372,6 +376,8 @@ export type GoodOrderByWithAggregationInput = { created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder deleted_at?: Prisma.SortOrderInput | Prisma.SortOrder + sku_id?: Prisma.SortOrder + measure_unit_id?: Prisma.SortOrder category_id?: Prisma.SortOrderInput | Prisma.SortOrder business_activity_id?: Prisma.SortOrderInput | Prisma.SortOrder _count?: Prisma.GoodCountOrderByAggregateInput @@ -388,8 +394,6 @@ export type GoodScalarWhereWithAggregatesInput = { id?: Prisma.StringWithAggregatesFilter<"Good"> | string name?: Prisma.StringWithAggregatesFilter<"Good"> | string is_default_guild_good?: Prisma.BoolWithAggregatesFilter<"Good"> | boolean - sku?: Prisma.StringWithAggregatesFilter<"Good"> | string - unit_type?: Prisma.EnumUnitTypeWithAggregatesFilter<"Good"> | $Enums.UnitType pricing_model?: Prisma.EnumGoodPricingModelWithAggregatesFilter<"Good"> | $Enums.GoodPricingModel description?: Prisma.StringNullableWithAggregatesFilter<"Good"> | string | null local_sku?: Prisma.StringNullableWithAggregatesFilter<"Good"> | string | null @@ -399,6 +403,8 @@ export type GoodScalarWhereWithAggregatesInput = { created_at?: Prisma.DateTimeWithAggregatesFilter<"Good"> | Date | string updated_at?: Prisma.DateTimeWithAggregatesFilter<"Good"> | Date | string deleted_at?: Prisma.DateTimeNullableWithAggregatesFilter<"Good"> | Date | string | null + sku_id?: Prisma.StringWithAggregatesFilter<"Good"> | string + measure_unit_id?: Prisma.StringWithAggregatesFilter<"Good"> | string category_id?: Prisma.StringNullableWithAggregatesFilter<"Good"> | string | null business_activity_id?: Prisma.StringNullableWithAggregatesFilter<"Good"> | string | null } @@ -407,8 +413,6 @@ export type GoodCreateInput = { id?: string name: string is_default_guild_good?: boolean - sku: string - unit_type: $Enums.UnitType pricing_model: $Enums.GoodPricingModel description?: string | null local_sku?: string | null @@ -418,6 +422,8 @@ export type GoodCreateInput = { created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null + sku: Prisma.StockKeepingUnitsCreateNestedOneWithoutGoodsInput + measure_unit: Prisma.MeasureUnitsCreateNestedOneWithoutGoodsInput category?: Prisma.GoodCategoryCreateNestedOneWithoutGoodsInput business_activity?: Prisma.BusinessActivityCreateNestedOneWithoutGoodsInput sales_invoice_items?: Prisma.SalesInvoiceItemCreateNestedManyWithoutGoodInput @@ -427,8 +433,6 @@ export type GoodUncheckedCreateInput = { id?: string name: string is_default_guild_good?: boolean - sku: string - unit_type: $Enums.UnitType pricing_model: $Enums.GoodPricingModel description?: string | null local_sku?: string | null @@ -438,6 +442,8 @@ export type GoodUncheckedCreateInput = { created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null + sku_id: string + measure_unit_id: string category_id?: string | null business_activity_id?: string | null sales_invoice_items?: Prisma.SalesInvoiceItemUncheckedCreateNestedManyWithoutGoodInput @@ -447,8 +453,6 @@ export type GoodUpdateInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string is_default_guild_good?: Prisma.BoolFieldUpdateOperationsInput | boolean - sku?: Prisma.StringFieldUpdateOperationsInput | string - unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType pricing_model?: Prisma.EnumGoodPricingModelFieldUpdateOperationsInput | $Enums.GoodPricingModel description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null @@ -458,6 +462,8 @@ export type GoodUpdateInput = { created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + sku?: Prisma.StockKeepingUnitsUpdateOneRequiredWithoutGoodsNestedInput + measure_unit?: Prisma.MeasureUnitsUpdateOneRequiredWithoutGoodsNestedInput category?: Prisma.GoodCategoryUpdateOneWithoutGoodsNestedInput business_activity?: Prisma.BusinessActivityUpdateOneWithoutGoodsNestedInput sales_invoice_items?: Prisma.SalesInvoiceItemUpdateManyWithoutGoodNestedInput @@ -467,8 +473,6 @@ export type GoodUncheckedUpdateInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string is_default_guild_good?: Prisma.BoolFieldUpdateOperationsInput | boolean - sku?: Prisma.StringFieldUpdateOperationsInput | string - unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType pricing_model?: Prisma.EnumGoodPricingModelFieldUpdateOperationsInput | $Enums.GoodPricingModel description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null @@ -478,6 +482,8 @@ export type GoodUncheckedUpdateInput = { created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + sku_id?: Prisma.StringFieldUpdateOperationsInput | string + measure_unit_id?: Prisma.StringFieldUpdateOperationsInput | string category_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null business_activity_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null sales_invoice_items?: Prisma.SalesInvoiceItemUncheckedUpdateManyWithoutGoodNestedInput @@ -487,8 +493,6 @@ export type GoodCreateManyInput = { id?: string name: string is_default_guild_good?: boolean - sku: string - unit_type: $Enums.UnitType pricing_model: $Enums.GoodPricingModel description?: string | null local_sku?: string | null @@ -498,6 +502,8 @@ export type GoodCreateManyInput = { created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null + sku_id: string + measure_unit_id: string category_id?: string | null business_activity_id?: string | null } @@ -506,8 +512,6 @@ export type GoodUpdateManyMutationInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string is_default_guild_good?: Prisma.BoolFieldUpdateOperationsInput | boolean - sku?: Prisma.StringFieldUpdateOperationsInput | string - unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType pricing_model?: Prisma.EnumGoodPricingModelFieldUpdateOperationsInput | $Enums.GoodPricingModel description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null @@ -523,8 +527,6 @@ export type GoodUncheckedUpdateManyInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string is_default_guild_good?: Prisma.BoolFieldUpdateOperationsInput | boolean - sku?: Prisma.StringFieldUpdateOperationsInput | string - unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType pricing_model?: Prisma.EnumGoodPricingModelFieldUpdateOperationsInput | $Enums.GoodPricingModel description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null @@ -534,6 +536,8 @@ export type GoodUncheckedUpdateManyInput = { created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + sku_id?: Prisma.StringFieldUpdateOperationsInput | string + measure_unit_id?: Prisma.StringFieldUpdateOperationsInput | string category_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null business_activity_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null } @@ -558,8 +562,6 @@ export type GoodCountOrderByAggregateInput = { id?: Prisma.SortOrder name?: Prisma.SortOrder is_default_guild_good?: Prisma.SortOrder - sku?: Prisma.SortOrder - unit_type?: Prisma.SortOrder pricing_model?: Prisma.SortOrder description?: Prisma.SortOrder local_sku?: Prisma.SortOrder @@ -569,6 +571,8 @@ export type GoodCountOrderByAggregateInput = { created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder deleted_at?: Prisma.SortOrder + sku_id?: Prisma.SortOrder + measure_unit_id?: Prisma.SortOrder category_id?: Prisma.SortOrder business_activity_id?: Prisma.SortOrder } @@ -581,8 +585,6 @@ export type GoodMaxOrderByAggregateInput = { id?: Prisma.SortOrder name?: Prisma.SortOrder is_default_guild_good?: Prisma.SortOrder - sku?: Prisma.SortOrder - unit_type?: Prisma.SortOrder pricing_model?: Prisma.SortOrder description?: Prisma.SortOrder local_sku?: Prisma.SortOrder @@ -592,6 +594,8 @@ export type GoodMaxOrderByAggregateInput = { created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder deleted_at?: Prisma.SortOrder + sku_id?: Prisma.SortOrder + measure_unit_id?: Prisma.SortOrder category_id?: Prisma.SortOrder business_activity_id?: Prisma.SortOrder } @@ -600,8 +604,6 @@ export type GoodMinOrderByAggregateInput = { id?: Prisma.SortOrder name?: Prisma.SortOrder is_default_guild_good?: Prisma.SortOrder - sku?: Prisma.SortOrder - unit_type?: Prisma.SortOrder pricing_model?: Prisma.SortOrder description?: Prisma.SortOrder local_sku?: Prisma.SortOrder @@ -611,6 +613,8 @@ export type GoodMinOrderByAggregateInput = { created_at?: Prisma.SortOrder updated_at?: Prisma.SortOrder deleted_at?: Prisma.SortOrder + sku_id?: Prisma.SortOrder + measure_unit_id?: Prisma.SortOrder category_id?: Prisma.SortOrder business_activity_id?: Prisma.SortOrder } @@ -666,10 +670,6 @@ export type GoodUncheckedUpdateManyWithoutBusiness_activityNestedInput = { deleteMany?: Prisma.GoodScalarWhereInput | Prisma.GoodScalarWhereInput[] } -export type EnumUnitTypeFieldUpdateOperationsInput = { - set?: $Enums.UnitType -} - export type EnumGoodPricingModelFieldUpdateOperationsInput = { set?: $Enums.GoodPricingModel } @@ -682,6 +682,10 @@ export type NullableDecimalFieldUpdateOperationsInput = { divide?: runtime.Decimal | runtime.DecimalJsLike | number | string } +export type NullableDateTimeFieldUpdateOperationsInput = { + set?: Date | string | null +} + export type GoodCreateNestedManyWithoutCategoryInput = { create?: Prisma.XOR | Prisma.GoodCreateWithoutCategoryInput[] | Prisma.GoodUncheckedCreateWithoutCategoryInput[] connectOrCreate?: Prisma.GoodCreateOrConnectWithoutCategoryInput | Prisma.GoodCreateOrConnectWithoutCategoryInput[] @@ -724,6 +728,90 @@ export type GoodUncheckedUpdateManyWithoutCategoryNestedInput = { deleteMany?: Prisma.GoodScalarWhereInput | Prisma.GoodScalarWhereInput[] } +export type GoodCreateNestedManyWithoutMeasure_unitInput = { + create?: Prisma.XOR | Prisma.GoodCreateWithoutMeasure_unitInput[] | Prisma.GoodUncheckedCreateWithoutMeasure_unitInput[] + connectOrCreate?: Prisma.GoodCreateOrConnectWithoutMeasure_unitInput | Prisma.GoodCreateOrConnectWithoutMeasure_unitInput[] + createMany?: Prisma.GoodCreateManyMeasure_unitInputEnvelope + connect?: Prisma.GoodWhereUniqueInput | Prisma.GoodWhereUniqueInput[] +} + +export type GoodUncheckedCreateNestedManyWithoutMeasure_unitInput = { + create?: Prisma.XOR | Prisma.GoodCreateWithoutMeasure_unitInput[] | Prisma.GoodUncheckedCreateWithoutMeasure_unitInput[] + connectOrCreate?: Prisma.GoodCreateOrConnectWithoutMeasure_unitInput | Prisma.GoodCreateOrConnectWithoutMeasure_unitInput[] + createMany?: Prisma.GoodCreateManyMeasure_unitInputEnvelope + connect?: Prisma.GoodWhereUniqueInput | Prisma.GoodWhereUniqueInput[] +} + +export type GoodUpdateManyWithoutMeasure_unitNestedInput = { + create?: Prisma.XOR | Prisma.GoodCreateWithoutMeasure_unitInput[] | Prisma.GoodUncheckedCreateWithoutMeasure_unitInput[] + connectOrCreate?: Prisma.GoodCreateOrConnectWithoutMeasure_unitInput | Prisma.GoodCreateOrConnectWithoutMeasure_unitInput[] + upsert?: Prisma.GoodUpsertWithWhereUniqueWithoutMeasure_unitInput | Prisma.GoodUpsertWithWhereUniqueWithoutMeasure_unitInput[] + createMany?: Prisma.GoodCreateManyMeasure_unitInputEnvelope + set?: Prisma.GoodWhereUniqueInput | Prisma.GoodWhereUniqueInput[] + disconnect?: Prisma.GoodWhereUniqueInput | Prisma.GoodWhereUniqueInput[] + delete?: Prisma.GoodWhereUniqueInput | Prisma.GoodWhereUniqueInput[] + connect?: Prisma.GoodWhereUniqueInput | Prisma.GoodWhereUniqueInput[] + update?: Prisma.GoodUpdateWithWhereUniqueWithoutMeasure_unitInput | Prisma.GoodUpdateWithWhereUniqueWithoutMeasure_unitInput[] + updateMany?: Prisma.GoodUpdateManyWithWhereWithoutMeasure_unitInput | Prisma.GoodUpdateManyWithWhereWithoutMeasure_unitInput[] + deleteMany?: Prisma.GoodScalarWhereInput | Prisma.GoodScalarWhereInput[] +} + +export type GoodUncheckedUpdateManyWithoutMeasure_unitNestedInput = { + create?: Prisma.XOR | Prisma.GoodCreateWithoutMeasure_unitInput[] | Prisma.GoodUncheckedCreateWithoutMeasure_unitInput[] + connectOrCreate?: Prisma.GoodCreateOrConnectWithoutMeasure_unitInput | Prisma.GoodCreateOrConnectWithoutMeasure_unitInput[] + upsert?: Prisma.GoodUpsertWithWhereUniqueWithoutMeasure_unitInput | Prisma.GoodUpsertWithWhereUniqueWithoutMeasure_unitInput[] + createMany?: Prisma.GoodCreateManyMeasure_unitInputEnvelope + set?: Prisma.GoodWhereUniqueInput | Prisma.GoodWhereUniqueInput[] + disconnect?: Prisma.GoodWhereUniqueInput | Prisma.GoodWhereUniqueInput[] + delete?: Prisma.GoodWhereUniqueInput | Prisma.GoodWhereUniqueInput[] + connect?: Prisma.GoodWhereUniqueInput | Prisma.GoodWhereUniqueInput[] + update?: Prisma.GoodUpdateWithWhereUniqueWithoutMeasure_unitInput | Prisma.GoodUpdateWithWhereUniqueWithoutMeasure_unitInput[] + updateMany?: Prisma.GoodUpdateManyWithWhereWithoutMeasure_unitInput | Prisma.GoodUpdateManyWithWhereWithoutMeasure_unitInput[] + deleteMany?: Prisma.GoodScalarWhereInput | Prisma.GoodScalarWhereInput[] +} + +export type GoodCreateNestedManyWithoutSkuInput = { + create?: Prisma.XOR | Prisma.GoodCreateWithoutSkuInput[] | Prisma.GoodUncheckedCreateWithoutSkuInput[] + connectOrCreate?: Prisma.GoodCreateOrConnectWithoutSkuInput | Prisma.GoodCreateOrConnectWithoutSkuInput[] + createMany?: Prisma.GoodCreateManySkuInputEnvelope + connect?: Prisma.GoodWhereUniqueInput | Prisma.GoodWhereUniqueInput[] +} + +export type GoodUncheckedCreateNestedManyWithoutSkuInput = { + create?: Prisma.XOR | Prisma.GoodCreateWithoutSkuInput[] | Prisma.GoodUncheckedCreateWithoutSkuInput[] + connectOrCreate?: Prisma.GoodCreateOrConnectWithoutSkuInput | Prisma.GoodCreateOrConnectWithoutSkuInput[] + createMany?: Prisma.GoodCreateManySkuInputEnvelope + connect?: Prisma.GoodWhereUniqueInput | Prisma.GoodWhereUniqueInput[] +} + +export type GoodUpdateManyWithoutSkuNestedInput = { + create?: Prisma.XOR | Prisma.GoodCreateWithoutSkuInput[] | Prisma.GoodUncheckedCreateWithoutSkuInput[] + connectOrCreate?: Prisma.GoodCreateOrConnectWithoutSkuInput | Prisma.GoodCreateOrConnectWithoutSkuInput[] + upsert?: Prisma.GoodUpsertWithWhereUniqueWithoutSkuInput | Prisma.GoodUpsertWithWhereUniqueWithoutSkuInput[] + createMany?: Prisma.GoodCreateManySkuInputEnvelope + set?: Prisma.GoodWhereUniqueInput | Prisma.GoodWhereUniqueInput[] + disconnect?: Prisma.GoodWhereUniqueInput | Prisma.GoodWhereUniqueInput[] + delete?: Prisma.GoodWhereUniqueInput | Prisma.GoodWhereUniqueInput[] + connect?: Prisma.GoodWhereUniqueInput | Prisma.GoodWhereUniqueInput[] + update?: Prisma.GoodUpdateWithWhereUniqueWithoutSkuInput | Prisma.GoodUpdateWithWhereUniqueWithoutSkuInput[] + updateMany?: Prisma.GoodUpdateManyWithWhereWithoutSkuInput | Prisma.GoodUpdateManyWithWhereWithoutSkuInput[] + deleteMany?: Prisma.GoodScalarWhereInput | Prisma.GoodScalarWhereInput[] +} + +export type GoodUncheckedUpdateManyWithoutSkuNestedInput = { + create?: Prisma.XOR | Prisma.GoodCreateWithoutSkuInput[] | Prisma.GoodUncheckedCreateWithoutSkuInput[] + connectOrCreate?: Prisma.GoodCreateOrConnectWithoutSkuInput | Prisma.GoodCreateOrConnectWithoutSkuInput[] + upsert?: Prisma.GoodUpsertWithWhereUniqueWithoutSkuInput | Prisma.GoodUpsertWithWhereUniqueWithoutSkuInput[] + createMany?: Prisma.GoodCreateManySkuInputEnvelope + set?: Prisma.GoodWhereUniqueInput | Prisma.GoodWhereUniqueInput[] + disconnect?: Prisma.GoodWhereUniqueInput | Prisma.GoodWhereUniqueInput[] + delete?: Prisma.GoodWhereUniqueInput | Prisma.GoodWhereUniqueInput[] + connect?: Prisma.GoodWhereUniqueInput | Prisma.GoodWhereUniqueInput[] + update?: Prisma.GoodUpdateWithWhereUniqueWithoutSkuInput | Prisma.GoodUpdateWithWhereUniqueWithoutSkuInput[] + updateMany?: Prisma.GoodUpdateManyWithWhereWithoutSkuInput | Prisma.GoodUpdateManyWithWhereWithoutSkuInput[] + deleteMany?: Prisma.GoodScalarWhereInput | Prisma.GoodScalarWhereInput[] +} + export type GoodCreateNestedOneWithoutSales_invoice_itemsInput = { create?: Prisma.XOR connectOrCreate?: Prisma.GoodCreateOrConnectWithoutSales_invoice_itemsInput @@ -744,8 +832,6 @@ export type GoodCreateWithoutBusiness_activityInput = { id?: string name: string is_default_guild_good?: boolean - sku: string - unit_type: $Enums.UnitType pricing_model: $Enums.GoodPricingModel description?: string | null local_sku?: string | null @@ -755,6 +841,8 @@ export type GoodCreateWithoutBusiness_activityInput = { created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null + sku: Prisma.StockKeepingUnitsCreateNestedOneWithoutGoodsInput + measure_unit: Prisma.MeasureUnitsCreateNestedOneWithoutGoodsInput category?: Prisma.GoodCategoryCreateNestedOneWithoutGoodsInput sales_invoice_items?: Prisma.SalesInvoiceItemCreateNestedManyWithoutGoodInput } @@ -763,8 +851,6 @@ export type GoodUncheckedCreateWithoutBusiness_activityInput = { id?: string name: string is_default_guild_good?: boolean - sku: string - unit_type: $Enums.UnitType pricing_model: $Enums.GoodPricingModel description?: string | null local_sku?: string | null @@ -774,6 +860,8 @@ export type GoodUncheckedCreateWithoutBusiness_activityInput = { created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null + sku_id: string + measure_unit_id: string category_id?: string | null sales_invoice_items?: Prisma.SalesInvoiceItemUncheckedCreateNestedManyWithoutGoodInput } @@ -811,8 +899,6 @@ export type GoodScalarWhereInput = { id?: Prisma.StringFilter<"Good"> | string name?: Prisma.StringFilter<"Good"> | string is_default_guild_good?: Prisma.BoolFilter<"Good"> | boolean - sku?: Prisma.StringFilter<"Good"> | string - unit_type?: Prisma.EnumUnitTypeFilter<"Good"> | $Enums.UnitType pricing_model?: Prisma.EnumGoodPricingModelFilter<"Good"> | $Enums.GoodPricingModel description?: Prisma.StringNullableFilter<"Good"> | string | null local_sku?: Prisma.StringNullableFilter<"Good"> | string | null @@ -822,6 +908,8 @@ export type GoodScalarWhereInput = { created_at?: Prisma.DateTimeFilter<"Good"> | Date | string updated_at?: Prisma.DateTimeFilter<"Good"> | Date | string deleted_at?: Prisma.DateTimeNullableFilter<"Good"> | Date | string | null + sku_id?: Prisma.StringFilter<"Good"> | string + measure_unit_id?: Prisma.StringFilter<"Good"> | string category_id?: Prisma.StringNullableFilter<"Good"> | string | null business_activity_id?: Prisma.StringNullableFilter<"Good"> | string | null } @@ -830,8 +918,6 @@ export type GoodCreateWithoutCategoryInput = { id?: string name: string is_default_guild_good?: boolean - sku: string - unit_type: $Enums.UnitType pricing_model: $Enums.GoodPricingModel description?: string | null local_sku?: string | null @@ -841,6 +927,8 @@ export type GoodCreateWithoutCategoryInput = { created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null + sku: Prisma.StockKeepingUnitsCreateNestedOneWithoutGoodsInput + measure_unit: Prisma.MeasureUnitsCreateNestedOneWithoutGoodsInput business_activity?: Prisma.BusinessActivityCreateNestedOneWithoutGoodsInput sales_invoice_items?: Prisma.SalesInvoiceItemCreateNestedManyWithoutGoodInput } @@ -849,8 +937,6 @@ export type GoodUncheckedCreateWithoutCategoryInput = { id?: string name: string is_default_guild_good?: boolean - sku: string - unit_type: $Enums.UnitType pricing_model: $Enums.GoodPricingModel description?: string | null local_sku?: string | null @@ -860,6 +946,8 @@ export type GoodUncheckedCreateWithoutCategoryInput = { created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null + sku_id: string + measure_unit_id: string business_activity_id?: string | null sales_invoice_items?: Prisma.SalesInvoiceItemUncheckedCreateNestedManyWithoutGoodInput } @@ -890,12 +978,10 @@ export type GoodUpdateManyWithWhereWithoutCategoryInput = { data: Prisma.XOR } -export type GoodCreateWithoutSales_invoice_itemsInput = { +export type GoodCreateWithoutMeasure_unitInput = { id?: string name: string is_default_guild_good?: boolean - sku: string - unit_type: $Enums.UnitType pricing_model: $Enums.GoodPricingModel description?: string | null local_sku?: string | null @@ -905,6 +991,136 @@ export type GoodCreateWithoutSales_invoice_itemsInput = { created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null + sku: Prisma.StockKeepingUnitsCreateNestedOneWithoutGoodsInput + category?: Prisma.GoodCategoryCreateNestedOneWithoutGoodsInput + business_activity?: Prisma.BusinessActivityCreateNestedOneWithoutGoodsInput + sales_invoice_items?: Prisma.SalesInvoiceItemCreateNestedManyWithoutGoodInput +} + +export type GoodUncheckedCreateWithoutMeasure_unitInput = { + id?: string + name: string + is_default_guild_good?: boolean + pricing_model: $Enums.GoodPricingModel + description?: string | null + local_sku?: string | null + barcode?: string | null + base_sale_price?: runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: string | null + created_at?: Date | string + updated_at?: Date | string + deleted_at?: Date | string | null + sku_id: string + category_id?: string | null + business_activity_id?: string | null + sales_invoice_items?: Prisma.SalesInvoiceItemUncheckedCreateNestedManyWithoutGoodInput +} + +export type GoodCreateOrConnectWithoutMeasure_unitInput = { + where: Prisma.GoodWhereUniqueInput + create: Prisma.XOR +} + +export type GoodCreateManyMeasure_unitInputEnvelope = { + data: Prisma.GoodCreateManyMeasure_unitInput | Prisma.GoodCreateManyMeasure_unitInput[] + skipDuplicates?: boolean +} + +export type GoodUpsertWithWhereUniqueWithoutMeasure_unitInput = { + where: Prisma.GoodWhereUniqueInput + update: Prisma.XOR + create: Prisma.XOR +} + +export type GoodUpdateWithWhereUniqueWithoutMeasure_unitInput = { + where: Prisma.GoodWhereUniqueInput + data: Prisma.XOR +} + +export type GoodUpdateManyWithWhereWithoutMeasure_unitInput = { + where: Prisma.GoodScalarWhereInput + data: Prisma.XOR +} + +export type GoodCreateWithoutSkuInput = { + id?: string + name: string + is_default_guild_good?: boolean + pricing_model: $Enums.GoodPricingModel + description?: string | null + local_sku?: string | null + barcode?: string | null + base_sale_price?: runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: string | null + created_at?: Date | string + updated_at?: Date | string + deleted_at?: Date | string | null + measure_unit: Prisma.MeasureUnitsCreateNestedOneWithoutGoodsInput + category?: Prisma.GoodCategoryCreateNestedOneWithoutGoodsInput + business_activity?: Prisma.BusinessActivityCreateNestedOneWithoutGoodsInput + sales_invoice_items?: Prisma.SalesInvoiceItemCreateNestedManyWithoutGoodInput +} + +export type GoodUncheckedCreateWithoutSkuInput = { + id?: string + name: string + is_default_guild_good?: boolean + pricing_model: $Enums.GoodPricingModel + description?: string | null + local_sku?: string | null + barcode?: string | null + base_sale_price?: runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: string | null + created_at?: Date | string + updated_at?: Date | string + deleted_at?: Date | string | null + measure_unit_id: string + category_id?: string | null + business_activity_id?: string | null + sales_invoice_items?: Prisma.SalesInvoiceItemUncheckedCreateNestedManyWithoutGoodInput +} + +export type GoodCreateOrConnectWithoutSkuInput = { + where: Prisma.GoodWhereUniqueInput + create: Prisma.XOR +} + +export type GoodCreateManySkuInputEnvelope = { + data: Prisma.GoodCreateManySkuInput | Prisma.GoodCreateManySkuInput[] + skipDuplicates?: boolean +} + +export type GoodUpsertWithWhereUniqueWithoutSkuInput = { + where: Prisma.GoodWhereUniqueInput + update: Prisma.XOR + create: Prisma.XOR +} + +export type GoodUpdateWithWhereUniqueWithoutSkuInput = { + where: Prisma.GoodWhereUniqueInput + data: Prisma.XOR +} + +export type GoodUpdateManyWithWhereWithoutSkuInput = { + where: Prisma.GoodScalarWhereInput + data: Prisma.XOR +} + +export type GoodCreateWithoutSales_invoice_itemsInput = { + id?: string + name: string + is_default_guild_good?: boolean + pricing_model: $Enums.GoodPricingModel + description?: string | null + local_sku?: string | null + barcode?: string | null + base_sale_price?: runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: string | null + created_at?: Date | string + updated_at?: Date | string + deleted_at?: Date | string | null + sku: Prisma.StockKeepingUnitsCreateNestedOneWithoutGoodsInput + measure_unit: Prisma.MeasureUnitsCreateNestedOneWithoutGoodsInput category?: Prisma.GoodCategoryCreateNestedOneWithoutGoodsInput business_activity?: Prisma.BusinessActivityCreateNestedOneWithoutGoodsInput } @@ -913,8 +1129,6 @@ export type GoodUncheckedCreateWithoutSales_invoice_itemsInput = { id?: string name: string is_default_guild_good?: boolean - sku: string - unit_type: $Enums.UnitType pricing_model: $Enums.GoodPricingModel description?: string | null local_sku?: string | null @@ -924,6 +1138,8 @@ export type GoodUncheckedCreateWithoutSales_invoice_itemsInput = { created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null + sku_id: string + measure_unit_id: string category_id?: string | null business_activity_id?: string | null } @@ -948,8 +1164,6 @@ export type GoodUpdateWithoutSales_invoice_itemsInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string is_default_guild_good?: Prisma.BoolFieldUpdateOperationsInput | boolean - sku?: Prisma.StringFieldUpdateOperationsInput | string - unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType pricing_model?: Prisma.EnumGoodPricingModelFieldUpdateOperationsInput | $Enums.GoodPricingModel description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null @@ -959,6 +1173,8 @@ export type GoodUpdateWithoutSales_invoice_itemsInput = { created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + sku?: Prisma.StockKeepingUnitsUpdateOneRequiredWithoutGoodsNestedInput + measure_unit?: Prisma.MeasureUnitsUpdateOneRequiredWithoutGoodsNestedInput category?: Prisma.GoodCategoryUpdateOneWithoutGoodsNestedInput business_activity?: Prisma.BusinessActivityUpdateOneWithoutGoodsNestedInput } @@ -967,8 +1183,6 @@ export type GoodUncheckedUpdateWithoutSales_invoice_itemsInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string is_default_guild_good?: Prisma.BoolFieldUpdateOperationsInput | boolean - sku?: Prisma.StringFieldUpdateOperationsInput | string - unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType pricing_model?: Prisma.EnumGoodPricingModelFieldUpdateOperationsInput | $Enums.GoodPricingModel description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null @@ -978,6 +1192,8 @@ export type GoodUncheckedUpdateWithoutSales_invoice_itemsInput = { created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + sku_id?: Prisma.StringFieldUpdateOperationsInput | string + measure_unit_id?: Prisma.StringFieldUpdateOperationsInput | string category_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null business_activity_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null } @@ -986,8 +1202,6 @@ export type GoodCreateManyBusiness_activityInput = { id?: string name: string is_default_guild_good?: boolean - sku: string - unit_type: $Enums.UnitType pricing_model: $Enums.GoodPricingModel description?: string | null local_sku?: string | null @@ -997,6 +1211,8 @@ export type GoodCreateManyBusiness_activityInput = { created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null + sku_id: string + measure_unit_id: string category_id?: string | null } @@ -1004,8 +1220,6 @@ export type GoodUpdateWithoutBusiness_activityInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string is_default_guild_good?: Prisma.BoolFieldUpdateOperationsInput | boolean - sku?: Prisma.StringFieldUpdateOperationsInput | string - unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType pricing_model?: Prisma.EnumGoodPricingModelFieldUpdateOperationsInput | $Enums.GoodPricingModel description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null @@ -1015,6 +1229,8 @@ export type GoodUpdateWithoutBusiness_activityInput = { created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + sku?: Prisma.StockKeepingUnitsUpdateOneRequiredWithoutGoodsNestedInput + measure_unit?: Prisma.MeasureUnitsUpdateOneRequiredWithoutGoodsNestedInput category?: Prisma.GoodCategoryUpdateOneWithoutGoodsNestedInput sales_invoice_items?: Prisma.SalesInvoiceItemUpdateManyWithoutGoodNestedInput } @@ -1023,8 +1239,6 @@ export type GoodUncheckedUpdateWithoutBusiness_activityInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string is_default_guild_good?: Prisma.BoolFieldUpdateOperationsInput | boolean - sku?: Prisma.StringFieldUpdateOperationsInput | string - unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType pricing_model?: Prisma.EnumGoodPricingModelFieldUpdateOperationsInput | $Enums.GoodPricingModel description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null @@ -1034,6 +1248,8 @@ export type GoodUncheckedUpdateWithoutBusiness_activityInput = { created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + sku_id?: Prisma.StringFieldUpdateOperationsInput | string + measure_unit_id?: Prisma.StringFieldUpdateOperationsInput | string category_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null sales_invoice_items?: Prisma.SalesInvoiceItemUncheckedUpdateManyWithoutGoodNestedInput } @@ -1042,8 +1258,6 @@ export type GoodUncheckedUpdateManyWithoutBusiness_activityInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string is_default_guild_good?: Prisma.BoolFieldUpdateOperationsInput | boolean - sku?: Prisma.StringFieldUpdateOperationsInput | string - unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType pricing_model?: Prisma.EnumGoodPricingModelFieldUpdateOperationsInput | $Enums.GoodPricingModel description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null @@ -1053,6 +1267,8 @@ export type GoodUncheckedUpdateManyWithoutBusiness_activityInput = { created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + sku_id?: Prisma.StringFieldUpdateOperationsInput | string + measure_unit_id?: Prisma.StringFieldUpdateOperationsInput | string category_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null } @@ -1060,8 +1276,6 @@ export type GoodCreateManyCategoryInput = { id?: string name: string is_default_guild_good?: boolean - sku: string - unit_type: $Enums.UnitType pricing_model: $Enums.GoodPricingModel description?: string | null local_sku?: string | null @@ -1071,6 +1285,8 @@ export type GoodCreateManyCategoryInput = { created_at?: Date | string updated_at?: Date | string deleted_at?: Date | string | null + sku_id: string + measure_unit_id: string business_activity_id?: string | null } @@ -1078,8 +1294,6 @@ export type GoodUpdateWithoutCategoryInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string is_default_guild_good?: Prisma.BoolFieldUpdateOperationsInput | boolean - sku?: Prisma.StringFieldUpdateOperationsInput | string - unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType pricing_model?: Prisma.EnumGoodPricingModelFieldUpdateOperationsInput | $Enums.GoodPricingModel description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null @@ -1089,6 +1303,8 @@ export type GoodUpdateWithoutCategoryInput = { created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + sku?: Prisma.StockKeepingUnitsUpdateOneRequiredWithoutGoodsNestedInput + measure_unit?: Prisma.MeasureUnitsUpdateOneRequiredWithoutGoodsNestedInput business_activity?: Prisma.BusinessActivityUpdateOneWithoutGoodsNestedInput sales_invoice_items?: Prisma.SalesInvoiceItemUpdateManyWithoutGoodNestedInput } @@ -1097,8 +1313,6 @@ export type GoodUncheckedUpdateWithoutCategoryInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string is_default_guild_good?: Prisma.BoolFieldUpdateOperationsInput | boolean - sku?: Prisma.StringFieldUpdateOperationsInput | string - unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType pricing_model?: Prisma.EnumGoodPricingModelFieldUpdateOperationsInput | $Enums.GoodPricingModel description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null @@ -1108,6 +1322,8 @@ export type GoodUncheckedUpdateWithoutCategoryInput = { created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + sku_id?: Prisma.StringFieldUpdateOperationsInput | string + measure_unit_id?: Prisma.StringFieldUpdateOperationsInput | string business_activity_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null sales_invoice_items?: Prisma.SalesInvoiceItemUncheckedUpdateManyWithoutGoodNestedInput } @@ -1116,8 +1332,6 @@ export type GoodUncheckedUpdateManyWithoutCategoryInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string is_default_guild_good?: Prisma.BoolFieldUpdateOperationsInput | boolean - sku?: Prisma.StringFieldUpdateOperationsInput | string - unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType pricing_model?: Prisma.EnumGoodPricingModelFieldUpdateOperationsInput | $Enums.GoodPricingModel description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null @@ -1127,6 +1341,156 @@ export type GoodUncheckedUpdateManyWithoutCategoryInput = { created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + sku_id?: Prisma.StringFieldUpdateOperationsInput | string + measure_unit_id?: Prisma.StringFieldUpdateOperationsInput | string + business_activity_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null +} + +export type GoodCreateManyMeasure_unitInput = { + id?: string + name: string + is_default_guild_good?: boolean + pricing_model: $Enums.GoodPricingModel + description?: string | null + local_sku?: string | null + barcode?: string | null + base_sale_price?: runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: string | null + created_at?: Date | string + updated_at?: Date | string + deleted_at?: Date | string | null + sku_id: string + category_id?: string | null + business_activity_id?: string | null +} + +export type GoodUpdateWithoutMeasure_unitInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + is_default_guild_good?: Prisma.BoolFieldUpdateOperationsInput | boolean + pricing_model?: Prisma.EnumGoodPricingModelFieldUpdateOperationsInput | $Enums.GoodPricingModel + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + barcode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + base_sale_price?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + sku?: Prisma.StockKeepingUnitsUpdateOneRequiredWithoutGoodsNestedInput + category?: Prisma.GoodCategoryUpdateOneWithoutGoodsNestedInput + business_activity?: Prisma.BusinessActivityUpdateOneWithoutGoodsNestedInput + sales_invoice_items?: Prisma.SalesInvoiceItemUpdateManyWithoutGoodNestedInput +} + +export type GoodUncheckedUpdateWithoutMeasure_unitInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + is_default_guild_good?: Prisma.BoolFieldUpdateOperationsInput | boolean + pricing_model?: Prisma.EnumGoodPricingModelFieldUpdateOperationsInput | $Enums.GoodPricingModel + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + barcode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + base_sale_price?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + sku_id?: Prisma.StringFieldUpdateOperationsInput | string + category_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + business_activity_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + sales_invoice_items?: Prisma.SalesInvoiceItemUncheckedUpdateManyWithoutGoodNestedInput +} + +export type GoodUncheckedUpdateManyWithoutMeasure_unitInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + is_default_guild_good?: Prisma.BoolFieldUpdateOperationsInput | boolean + pricing_model?: Prisma.EnumGoodPricingModelFieldUpdateOperationsInput | $Enums.GoodPricingModel + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + barcode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + base_sale_price?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + sku_id?: Prisma.StringFieldUpdateOperationsInput | string + category_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + business_activity_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null +} + +export type GoodCreateManySkuInput = { + id?: string + name: string + is_default_guild_good?: boolean + pricing_model: $Enums.GoodPricingModel + description?: string | null + local_sku?: string | null + barcode?: string | null + base_sale_price?: runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: string | null + created_at?: Date | string + updated_at?: Date | string + deleted_at?: Date | string | null + measure_unit_id: string + category_id?: string | null + business_activity_id?: string | null +} + +export type GoodUpdateWithoutSkuInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + is_default_guild_good?: Prisma.BoolFieldUpdateOperationsInput | boolean + pricing_model?: Prisma.EnumGoodPricingModelFieldUpdateOperationsInput | $Enums.GoodPricingModel + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + barcode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + base_sale_price?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + measure_unit?: Prisma.MeasureUnitsUpdateOneRequiredWithoutGoodsNestedInput + category?: Prisma.GoodCategoryUpdateOneWithoutGoodsNestedInput + business_activity?: Prisma.BusinessActivityUpdateOneWithoutGoodsNestedInput + sales_invoice_items?: Prisma.SalesInvoiceItemUpdateManyWithoutGoodNestedInput +} + +export type GoodUncheckedUpdateWithoutSkuInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + is_default_guild_good?: Prisma.BoolFieldUpdateOperationsInput | boolean + pricing_model?: Prisma.EnumGoodPricingModelFieldUpdateOperationsInput | $Enums.GoodPricingModel + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + barcode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + base_sale_price?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + measure_unit_id?: Prisma.StringFieldUpdateOperationsInput | string + category_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + business_activity_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + sales_invoice_items?: Prisma.SalesInvoiceItemUncheckedUpdateManyWithoutGoodNestedInput +} + +export type GoodUncheckedUpdateManyWithoutSkuInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + is_default_guild_good?: Prisma.BoolFieldUpdateOperationsInput | boolean + pricing_model?: Prisma.EnumGoodPricingModelFieldUpdateOperationsInput | $Enums.GoodPricingModel + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + local_sku?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + barcode?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + base_sale_price?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null + image_url?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + deleted_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + measure_unit_id?: Prisma.StringFieldUpdateOperationsInput | string + category_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null business_activity_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null } @@ -1165,8 +1529,6 @@ export type GoodSelect + measure_unit?: boolean | Prisma.MeasureUnitsDefaultArgs category?: boolean | Prisma.Good$categoryArgs business_activity?: boolean | Prisma.Good$business_activityArgs sales_invoice_items?: boolean | Prisma.Good$sales_invoice_itemsArgs @@ -1190,8 +1556,6 @@ export type GoodSelectScalar = { id?: boolean name?: boolean is_default_guild_good?: boolean - sku?: boolean - unit_type?: boolean pricing_model?: boolean description?: boolean local_sku?: boolean @@ -1201,12 +1565,16 @@ export type GoodSelectScalar = { created_at?: boolean updated_at?: boolean deleted_at?: boolean + sku_id?: boolean + measure_unit_id?: boolean category_id?: boolean business_activity_id?: boolean } -export type GoodOmit = runtime.Types.Extensions.GetOmit<"id" | "name" | "is_default_guild_good" | "sku" | "unit_type" | "pricing_model" | "description" | "local_sku" | "barcode" | "base_sale_price" | "image_url" | "created_at" | "updated_at" | "deleted_at" | "category_id" | "business_activity_id", ExtArgs["result"]["good"]> +export type GoodOmit = runtime.Types.Extensions.GetOmit<"id" | "name" | "is_default_guild_good" | "pricing_model" | "description" | "local_sku" | "barcode" | "base_sale_price" | "image_url" | "created_at" | "updated_at" | "deleted_at" | "sku_id" | "measure_unit_id" | "category_id" | "business_activity_id", ExtArgs["result"]["good"]> export type GoodInclude = { + sku?: boolean | Prisma.StockKeepingUnitsDefaultArgs + measure_unit?: boolean | Prisma.MeasureUnitsDefaultArgs category?: boolean | Prisma.Good$categoryArgs business_activity?: boolean | Prisma.Good$business_activityArgs sales_invoice_items?: boolean | Prisma.Good$sales_invoice_itemsArgs @@ -1216,6 +1584,8 @@ export type GoodInclude = { name: "Good" objects: { + sku: Prisma.$StockKeepingUnitsPayload + measure_unit: Prisma.$MeasureUnitsPayload category: Prisma.$GoodCategoryPayload | null business_activity: Prisma.$BusinessActivityPayload | null sales_invoice_items: Prisma.$SalesInvoiceItemPayload[] @@ -1224,8 +1594,6 @@ export type $GoodPayload @@ -1577,6 +1947,8 @@ readonly fields: GoodFieldRefs; */ export interface Prisma__GoodClient extends Prisma.PrismaPromise { readonly [Symbol.toStringTag]: "PrismaPromise" + sku = {}>(args?: Prisma.Subset>): Prisma.Prisma__StockKeepingUnitsClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + measure_unit = {}>(args?: Prisma.Subset>): Prisma.Prisma__MeasureUnitsClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> category = {}>(args?: Prisma.Subset>): Prisma.Prisma__GoodCategoryClient, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> business_activity = {}>(args?: Prisma.Subset>): Prisma.Prisma__BusinessActivityClient, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> sales_invoice_items = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> @@ -1612,8 +1984,6 @@ export interface GoodFieldRefs { readonly id: Prisma.FieldRef<"Good", 'String'> readonly name: Prisma.FieldRef<"Good", 'String'> readonly is_default_guild_good: Prisma.FieldRef<"Good", 'Boolean'> - readonly sku: Prisma.FieldRef<"Good", 'String'> - readonly unit_type: Prisma.FieldRef<"Good", 'UnitType'> readonly pricing_model: Prisma.FieldRef<"Good", 'GoodPricingModel'> readonly description: Prisma.FieldRef<"Good", 'String'> readonly local_sku: Prisma.FieldRef<"Good", 'String'> @@ -1623,6 +1993,8 @@ export interface GoodFieldRefs { readonly created_at: Prisma.FieldRef<"Good", 'DateTime'> readonly updated_at: Prisma.FieldRef<"Good", 'DateTime'> readonly deleted_at: Prisma.FieldRef<"Good", 'DateTime'> + readonly sku_id: Prisma.FieldRef<"Good", 'String'> + readonly measure_unit_id: Prisma.FieldRef<"Good", 'String'> readonly category_id: Prisma.FieldRef<"Good", 'String'> readonly business_activity_id: Prisma.FieldRef<"Good", 'String'> } diff --git a/src/generated/prisma/models/MeasureUnits.ts b/src/generated/prisma/models/MeasureUnits.ts new file mode 100644 index 0000000..813e170 --- /dev/null +++ b/src/generated/prisma/models/MeasureUnits.ts @@ -0,0 +1,1219 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `MeasureUnits` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from "@prisma/client/runtime/client" +import type * as $Enums from "../enums.js" +import type * as Prisma from "../internal/prismaNamespace.js" + +/** + * Model MeasureUnits + * + */ +export type MeasureUnitsModel = runtime.Types.Result.DefaultSelection + +export type AggregateMeasureUnits = { + _count: MeasureUnitsCountAggregateOutputType | null + _min: MeasureUnitsMinAggregateOutputType | null + _max: MeasureUnitsMaxAggregateOutputType | null +} + +export type MeasureUnitsMinAggregateOutputType = { + id: string | null + code: string | null + name: string | null + created_at: Date | null + updated_at: Date | null +} + +export type MeasureUnitsMaxAggregateOutputType = { + id: string | null + code: string | null + name: string | null + created_at: Date | null + updated_at: Date | null +} + +export type MeasureUnitsCountAggregateOutputType = { + id: number + code: number + name: number + created_at: number + updated_at: number + _all: number +} + + +export type MeasureUnitsMinAggregateInputType = { + id?: true + code?: true + name?: true + created_at?: true + updated_at?: true +} + +export type MeasureUnitsMaxAggregateInputType = { + id?: true + code?: true + name?: true + created_at?: true + updated_at?: true +} + +export type MeasureUnitsCountAggregateInputType = { + id?: true + code?: true + name?: true + created_at?: true + updated_at?: true + _all?: true +} + +export type MeasureUnitsAggregateArgs = { + /** + * Filter which MeasureUnits to aggregate. + */ + where?: Prisma.MeasureUnitsWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of MeasureUnits to fetch. + */ + orderBy?: Prisma.MeasureUnitsOrderByWithRelationInput | Prisma.MeasureUnitsOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.MeasureUnitsWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` MeasureUnits from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` MeasureUnits. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned MeasureUnits + **/ + _count?: true | MeasureUnitsCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: MeasureUnitsMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: MeasureUnitsMaxAggregateInputType +} + +export type GetMeasureUnitsAggregateType = { + [P in keyof T & keyof AggregateMeasureUnits]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type MeasureUnitsGroupByArgs = { + where?: Prisma.MeasureUnitsWhereInput + orderBy?: Prisma.MeasureUnitsOrderByWithAggregationInput | Prisma.MeasureUnitsOrderByWithAggregationInput[] + by: Prisma.MeasureUnitsScalarFieldEnum[] | Prisma.MeasureUnitsScalarFieldEnum + having?: Prisma.MeasureUnitsScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: MeasureUnitsCountAggregateInputType | true + _min?: MeasureUnitsMinAggregateInputType + _max?: MeasureUnitsMaxAggregateInputType +} + +export type MeasureUnitsGroupByOutputType = { + id: string + code: string + name: string + created_at: Date + updated_at: Date + _count: MeasureUnitsCountAggregateOutputType | null + _min: MeasureUnitsMinAggregateOutputType | null + _max: MeasureUnitsMaxAggregateOutputType | null +} + +export type GetMeasureUnitsGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof MeasureUnitsGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type MeasureUnitsWhereInput = { + AND?: Prisma.MeasureUnitsWhereInput | Prisma.MeasureUnitsWhereInput[] + OR?: Prisma.MeasureUnitsWhereInput[] + NOT?: Prisma.MeasureUnitsWhereInput | Prisma.MeasureUnitsWhereInput[] + id?: Prisma.StringFilter<"MeasureUnits"> | string + code?: Prisma.StringFilter<"MeasureUnits"> | string + name?: Prisma.StringFilter<"MeasureUnits"> | string + created_at?: Prisma.DateTimeFilter<"MeasureUnits"> | Date | string + updated_at?: Prisma.DateTimeFilter<"MeasureUnits"> | Date | string + goods?: Prisma.GoodListRelationFilter +} + +export type MeasureUnitsOrderByWithRelationInput = { + id?: Prisma.SortOrder + code?: Prisma.SortOrder + name?: Prisma.SortOrder + created_at?: Prisma.SortOrder + updated_at?: Prisma.SortOrder + goods?: Prisma.GoodOrderByRelationAggregateInput + _relevance?: Prisma.MeasureUnitsOrderByRelevanceInput +} + +export type MeasureUnitsWhereUniqueInput = Prisma.AtLeast<{ + id?: string + code?: string + AND?: Prisma.MeasureUnitsWhereInput | Prisma.MeasureUnitsWhereInput[] + OR?: Prisma.MeasureUnitsWhereInput[] + NOT?: Prisma.MeasureUnitsWhereInput | Prisma.MeasureUnitsWhereInput[] + name?: Prisma.StringFilter<"MeasureUnits"> | string + created_at?: Prisma.DateTimeFilter<"MeasureUnits"> | Date | string + updated_at?: Prisma.DateTimeFilter<"MeasureUnits"> | Date | string + goods?: Prisma.GoodListRelationFilter +}, "id" | "code"> + +export type MeasureUnitsOrderByWithAggregationInput = { + id?: Prisma.SortOrder + code?: Prisma.SortOrder + name?: Prisma.SortOrder + created_at?: Prisma.SortOrder + updated_at?: Prisma.SortOrder + _count?: Prisma.MeasureUnitsCountOrderByAggregateInput + _max?: Prisma.MeasureUnitsMaxOrderByAggregateInput + _min?: Prisma.MeasureUnitsMinOrderByAggregateInput +} + +export type MeasureUnitsScalarWhereWithAggregatesInput = { + AND?: Prisma.MeasureUnitsScalarWhereWithAggregatesInput | Prisma.MeasureUnitsScalarWhereWithAggregatesInput[] + OR?: Prisma.MeasureUnitsScalarWhereWithAggregatesInput[] + NOT?: Prisma.MeasureUnitsScalarWhereWithAggregatesInput | Prisma.MeasureUnitsScalarWhereWithAggregatesInput[] + id?: Prisma.StringWithAggregatesFilter<"MeasureUnits"> | string + code?: Prisma.StringWithAggregatesFilter<"MeasureUnits"> | string + name?: Prisma.StringWithAggregatesFilter<"MeasureUnits"> | string + created_at?: Prisma.DateTimeWithAggregatesFilter<"MeasureUnits"> | Date | string + updated_at?: Prisma.DateTimeWithAggregatesFilter<"MeasureUnits"> | Date | string +} + +export type MeasureUnitsCreateInput = { + id?: string + code: string + name: string + created_at?: Date | string + updated_at?: Date | string + goods?: Prisma.GoodCreateNestedManyWithoutMeasure_unitInput +} + +export type MeasureUnitsUncheckedCreateInput = { + id?: string + code: string + name: string + created_at?: Date | string + updated_at?: Date | string + goods?: Prisma.GoodUncheckedCreateNestedManyWithoutMeasure_unitInput +} + +export type MeasureUnitsUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + code?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + goods?: Prisma.GoodUpdateManyWithoutMeasure_unitNestedInput +} + +export type MeasureUnitsUncheckedUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + code?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + goods?: Prisma.GoodUncheckedUpdateManyWithoutMeasure_unitNestedInput +} + +export type MeasureUnitsCreateManyInput = { + id?: string + code: string + name: string + created_at?: Date | string + updated_at?: Date | string +} + +export type MeasureUnitsUpdateManyMutationInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + code?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type MeasureUnitsUncheckedUpdateManyInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + code?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type MeasureUnitsScalarRelationFilter = { + is?: Prisma.MeasureUnitsWhereInput + isNot?: Prisma.MeasureUnitsWhereInput +} + +export type MeasureUnitsOrderByRelevanceInput = { + fields: Prisma.MeasureUnitsOrderByRelevanceFieldEnum | Prisma.MeasureUnitsOrderByRelevanceFieldEnum[] + sort: Prisma.SortOrder + search: string +} + +export type MeasureUnitsCountOrderByAggregateInput = { + id?: Prisma.SortOrder + code?: Prisma.SortOrder + name?: Prisma.SortOrder + created_at?: Prisma.SortOrder + updated_at?: Prisma.SortOrder +} + +export type MeasureUnitsMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + code?: Prisma.SortOrder + name?: Prisma.SortOrder + created_at?: Prisma.SortOrder + updated_at?: Prisma.SortOrder +} + +export type MeasureUnitsMinOrderByAggregateInput = { + id?: Prisma.SortOrder + code?: Prisma.SortOrder + name?: Prisma.SortOrder + created_at?: Prisma.SortOrder + updated_at?: Prisma.SortOrder +} + +export type MeasureUnitsCreateNestedOneWithoutGoodsInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.MeasureUnitsCreateOrConnectWithoutGoodsInput + connect?: Prisma.MeasureUnitsWhereUniqueInput +} + +export type MeasureUnitsUpdateOneRequiredWithoutGoodsNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.MeasureUnitsCreateOrConnectWithoutGoodsInput + upsert?: Prisma.MeasureUnitsUpsertWithoutGoodsInput + connect?: Prisma.MeasureUnitsWhereUniqueInput + update?: Prisma.XOR, Prisma.MeasureUnitsUncheckedUpdateWithoutGoodsInput> +} + +export type MeasureUnitsCreateWithoutGoodsInput = { + id?: string + code: string + name: string + created_at?: Date | string + updated_at?: Date | string +} + +export type MeasureUnitsUncheckedCreateWithoutGoodsInput = { + id?: string + code: string + name: string + created_at?: Date | string + updated_at?: Date | string +} + +export type MeasureUnitsCreateOrConnectWithoutGoodsInput = { + where: Prisma.MeasureUnitsWhereUniqueInput + create: Prisma.XOR +} + +export type MeasureUnitsUpsertWithoutGoodsInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.MeasureUnitsWhereInput +} + +export type MeasureUnitsUpdateToOneWithWhereWithoutGoodsInput = { + where?: Prisma.MeasureUnitsWhereInput + data: Prisma.XOR +} + +export type MeasureUnitsUpdateWithoutGoodsInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + code?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type MeasureUnitsUncheckedUpdateWithoutGoodsInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + code?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + + +/** + * Count Type MeasureUnitsCountOutputType + */ + +export type MeasureUnitsCountOutputType = { + goods: number +} + +export type MeasureUnitsCountOutputTypeSelect = { + goods?: boolean | MeasureUnitsCountOutputTypeCountGoodsArgs +} + +/** + * MeasureUnitsCountOutputType without action + */ +export type MeasureUnitsCountOutputTypeDefaultArgs = { + /** + * Select specific fields to fetch from the MeasureUnitsCountOutputType + */ + select?: Prisma.MeasureUnitsCountOutputTypeSelect | null +} + +/** + * MeasureUnitsCountOutputType without action + */ +export type MeasureUnitsCountOutputTypeCountGoodsArgs = { + where?: Prisma.GoodWhereInput +} + + +export type MeasureUnitsSelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + code?: boolean + name?: boolean + created_at?: boolean + updated_at?: boolean + goods?: boolean | Prisma.MeasureUnits$goodsArgs + _count?: boolean | Prisma.MeasureUnitsCountOutputTypeDefaultArgs +}, ExtArgs["result"]["measureUnits"]> + + + +export type MeasureUnitsSelectScalar = { + id?: boolean + code?: boolean + name?: boolean + created_at?: boolean + updated_at?: boolean +} + +export type MeasureUnitsOmit = runtime.Types.Extensions.GetOmit<"id" | "code" | "name" | "created_at" | "updated_at", ExtArgs["result"]["measureUnits"]> +export type MeasureUnitsInclude = { + goods?: boolean | Prisma.MeasureUnits$goodsArgs + _count?: boolean | Prisma.MeasureUnitsCountOutputTypeDefaultArgs +} + +export type $MeasureUnitsPayload = { + name: "MeasureUnits" + objects: { + goods: Prisma.$GoodPayload[] + } + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: string + code: string + name: string + created_at: Date + updated_at: Date + }, ExtArgs["result"]["measureUnits"]> + composites: {} +} + +export type MeasureUnitsGetPayload = runtime.Types.Result.GetResult + +export type MeasureUnitsCountArgs = + Omit & { + select?: MeasureUnitsCountAggregateInputType | true + } + +export interface MeasureUnitsDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['MeasureUnits'], meta: { name: 'MeasureUnits' } } + /** + * Find zero or one MeasureUnits that matches the filter. + * @param {MeasureUnitsFindUniqueArgs} args - Arguments to find a MeasureUnits + * @example + * // Get one MeasureUnits + * const measureUnits = await prisma.measureUnits.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__MeasureUnitsClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one MeasureUnits that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {MeasureUnitsFindUniqueOrThrowArgs} args - Arguments to find a MeasureUnits + * @example + * // Get one MeasureUnits + * const measureUnits = await prisma.measureUnits.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__MeasureUnitsClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first MeasureUnits that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {MeasureUnitsFindFirstArgs} args - Arguments to find a MeasureUnits + * @example + * // Get one MeasureUnits + * const measureUnits = await prisma.measureUnits.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__MeasureUnitsClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first MeasureUnits that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {MeasureUnitsFindFirstOrThrowArgs} args - Arguments to find a MeasureUnits + * @example + * // Get one MeasureUnits + * const measureUnits = await prisma.measureUnits.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__MeasureUnitsClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more MeasureUnits that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {MeasureUnitsFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all MeasureUnits + * const measureUnits = await prisma.measureUnits.findMany() + * + * // Get first 10 MeasureUnits + * const measureUnits = await prisma.measureUnits.findMany({ take: 10 }) + * + * // Only select the `id` + * const measureUnitsWithIdOnly = await prisma.measureUnits.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a MeasureUnits. + * @param {MeasureUnitsCreateArgs} args - Arguments to create a MeasureUnits. + * @example + * // Create one MeasureUnits + * const MeasureUnits = await prisma.measureUnits.create({ + * data: { + * // ... data to create a MeasureUnits + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__MeasureUnitsClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many MeasureUnits. + * @param {MeasureUnitsCreateManyArgs} args - Arguments to create many MeasureUnits. + * @example + * // Create many MeasureUnits + * const measureUnits = await prisma.measureUnits.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Delete a MeasureUnits. + * @param {MeasureUnitsDeleteArgs} args - Arguments to delete one MeasureUnits. + * @example + * // Delete one MeasureUnits + * const MeasureUnits = await prisma.measureUnits.delete({ + * where: { + * // ... filter to delete one MeasureUnits + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__MeasureUnitsClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one MeasureUnits. + * @param {MeasureUnitsUpdateArgs} args - Arguments to update one MeasureUnits. + * @example + * // Update one MeasureUnits + * const measureUnits = await prisma.measureUnits.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__MeasureUnitsClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more MeasureUnits. + * @param {MeasureUnitsDeleteManyArgs} args - Arguments to filter MeasureUnits to delete. + * @example + * // Delete a few MeasureUnits + * const { count } = await prisma.measureUnits.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more MeasureUnits. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {MeasureUnitsUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many MeasureUnits + * const measureUnits = await prisma.measureUnits.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one MeasureUnits. + * @param {MeasureUnitsUpsertArgs} args - Arguments to update or create a MeasureUnits. + * @example + * // Update or create a MeasureUnits + * const measureUnits = await prisma.measureUnits.upsert({ + * create: { + * // ... data to create a MeasureUnits + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the MeasureUnits we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__MeasureUnitsClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of MeasureUnits. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {MeasureUnitsCountArgs} args - Arguments to filter MeasureUnits to count. + * @example + * // Count the number of MeasureUnits + * const count = await prisma.measureUnits.count({ + * where: { + * // ... the filter for the MeasureUnits we want to count + * } + * }) + **/ + count( + args?: Prisma.Subset, + ): Prisma.PrismaPromise< + T extends runtime.Types.Utils.Record<'select', any> + ? T['select'] extends true + ? number + : Prisma.GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a MeasureUnits. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {MeasureUnitsAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Prisma.Subset): Prisma.PrismaPromise> + + /** + * Group by MeasureUnits. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {MeasureUnitsGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends MeasureUnitsGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: MeasureUnitsGroupByArgs['orderBy'] } + : { orderBy?: MeasureUnitsGroupByArgs['orderBy'] }, + OrderFields extends Prisma.ExcludeUnderscoreKeys>>, + ByFields extends Prisma.MaybeTupleToUnion, + ByValid extends Prisma.Has, + HavingFields extends Prisma.GetHavingFields, + HavingValid extends Prisma.Has, + ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, + InputErrors extends ByEmpty extends Prisma.True + ? `Error: "by" must not be empty.` + : HavingValid extends Prisma.False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: Prisma.SubsetIntersection & InputErrors): {} extends InputErrors ? GetMeasureUnitsGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the MeasureUnits model + */ +readonly fields: MeasureUnitsFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for MeasureUnits. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ +export interface Prisma__MeasureUnitsClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + goods = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): runtime.Types.Utils.JsPromise +} + + + + +/** + * Fields of the MeasureUnits model + */ +export interface MeasureUnitsFieldRefs { + readonly id: Prisma.FieldRef<"MeasureUnits", 'String'> + readonly code: Prisma.FieldRef<"MeasureUnits", 'String'> + readonly name: Prisma.FieldRef<"MeasureUnits", 'String'> + readonly created_at: Prisma.FieldRef<"MeasureUnits", 'DateTime'> + readonly updated_at: Prisma.FieldRef<"MeasureUnits", 'DateTime'> +} + + +// Custom InputTypes +/** + * MeasureUnits findUnique + */ +export type MeasureUnitsFindUniqueArgs = { + /** + * Select specific fields to fetch from the MeasureUnits + */ + select?: Prisma.MeasureUnitsSelect | null + /** + * Omit specific fields from the MeasureUnits + */ + omit?: Prisma.MeasureUnitsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.MeasureUnitsInclude | null + /** + * Filter, which MeasureUnits to fetch. + */ + where: Prisma.MeasureUnitsWhereUniqueInput +} + +/** + * MeasureUnits findUniqueOrThrow + */ +export type MeasureUnitsFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the MeasureUnits + */ + select?: Prisma.MeasureUnitsSelect | null + /** + * Omit specific fields from the MeasureUnits + */ + omit?: Prisma.MeasureUnitsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.MeasureUnitsInclude | null + /** + * Filter, which MeasureUnits to fetch. + */ + where: Prisma.MeasureUnitsWhereUniqueInput +} + +/** + * MeasureUnits findFirst + */ +export type MeasureUnitsFindFirstArgs = { + /** + * Select specific fields to fetch from the MeasureUnits + */ + select?: Prisma.MeasureUnitsSelect | null + /** + * Omit specific fields from the MeasureUnits + */ + omit?: Prisma.MeasureUnitsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.MeasureUnitsInclude | null + /** + * Filter, which MeasureUnits to fetch. + */ + where?: Prisma.MeasureUnitsWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of MeasureUnits to fetch. + */ + orderBy?: Prisma.MeasureUnitsOrderByWithRelationInput | Prisma.MeasureUnitsOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for MeasureUnits. + */ + cursor?: Prisma.MeasureUnitsWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` MeasureUnits from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` MeasureUnits. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of MeasureUnits. + */ + distinct?: Prisma.MeasureUnitsScalarFieldEnum | Prisma.MeasureUnitsScalarFieldEnum[] +} + +/** + * MeasureUnits findFirstOrThrow + */ +export type MeasureUnitsFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the MeasureUnits + */ + select?: Prisma.MeasureUnitsSelect | null + /** + * Omit specific fields from the MeasureUnits + */ + omit?: Prisma.MeasureUnitsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.MeasureUnitsInclude | null + /** + * Filter, which MeasureUnits to fetch. + */ + where?: Prisma.MeasureUnitsWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of MeasureUnits to fetch. + */ + orderBy?: Prisma.MeasureUnitsOrderByWithRelationInput | Prisma.MeasureUnitsOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for MeasureUnits. + */ + cursor?: Prisma.MeasureUnitsWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` MeasureUnits from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` MeasureUnits. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of MeasureUnits. + */ + distinct?: Prisma.MeasureUnitsScalarFieldEnum | Prisma.MeasureUnitsScalarFieldEnum[] +} + +/** + * MeasureUnits findMany + */ +export type MeasureUnitsFindManyArgs = { + /** + * Select specific fields to fetch from the MeasureUnits + */ + select?: Prisma.MeasureUnitsSelect | null + /** + * Omit specific fields from the MeasureUnits + */ + omit?: Prisma.MeasureUnitsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.MeasureUnitsInclude | null + /** + * Filter, which MeasureUnits to fetch. + */ + where?: Prisma.MeasureUnitsWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of MeasureUnits to fetch. + */ + orderBy?: Prisma.MeasureUnitsOrderByWithRelationInput | Prisma.MeasureUnitsOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing MeasureUnits. + */ + cursor?: Prisma.MeasureUnitsWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` MeasureUnits from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` MeasureUnits. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of MeasureUnits. + */ + distinct?: Prisma.MeasureUnitsScalarFieldEnum | Prisma.MeasureUnitsScalarFieldEnum[] +} + +/** + * MeasureUnits create + */ +export type MeasureUnitsCreateArgs = { + /** + * Select specific fields to fetch from the MeasureUnits + */ + select?: Prisma.MeasureUnitsSelect | null + /** + * Omit specific fields from the MeasureUnits + */ + omit?: Prisma.MeasureUnitsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.MeasureUnitsInclude | null + /** + * The data needed to create a MeasureUnits. + */ + data: Prisma.XOR +} + +/** + * MeasureUnits createMany + */ +export type MeasureUnitsCreateManyArgs = { + /** + * The data used to create many MeasureUnits. + */ + data: Prisma.MeasureUnitsCreateManyInput | Prisma.MeasureUnitsCreateManyInput[] + skipDuplicates?: boolean +} + +/** + * MeasureUnits update + */ +export type MeasureUnitsUpdateArgs = { + /** + * Select specific fields to fetch from the MeasureUnits + */ + select?: Prisma.MeasureUnitsSelect | null + /** + * Omit specific fields from the MeasureUnits + */ + omit?: Prisma.MeasureUnitsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.MeasureUnitsInclude | null + /** + * The data needed to update a MeasureUnits. + */ + data: Prisma.XOR + /** + * Choose, which MeasureUnits to update. + */ + where: Prisma.MeasureUnitsWhereUniqueInput +} + +/** + * MeasureUnits updateMany + */ +export type MeasureUnitsUpdateManyArgs = { + /** + * The data used to update MeasureUnits. + */ + data: Prisma.XOR + /** + * Filter which MeasureUnits to update + */ + where?: Prisma.MeasureUnitsWhereInput + /** + * Limit how many MeasureUnits to update. + */ + limit?: number +} + +/** + * MeasureUnits upsert + */ +export type MeasureUnitsUpsertArgs = { + /** + * Select specific fields to fetch from the MeasureUnits + */ + select?: Prisma.MeasureUnitsSelect | null + /** + * Omit specific fields from the MeasureUnits + */ + omit?: Prisma.MeasureUnitsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.MeasureUnitsInclude | null + /** + * The filter to search for the MeasureUnits to update in case it exists. + */ + where: Prisma.MeasureUnitsWhereUniqueInput + /** + * In case the MeasureUnits found by the `where` argument doesn't exist, create a new MeasureUnits with this data. + */ + create: Prisma.XOR + /** + * In case the MeasureUnits was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * MeasureUnits delete + */ +export type MeasureUnitsDeleteArgs = { + /** + * Select specific fields to fetch from the MeasureUnits + */ + select?: Prisma.MeasureUnitsSelect | null + /** + * Omit specific fields from the MeasureUnits + */ + omit?: Prisma.MeasureUnitsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.MeasureUnitsInclude | null + /** + * Filter which MeasureUnits to delete. + */ + where: Prisma.MeasureUnitsWhereUniqueInput +} + +/** + * MeasureUnits deleteMany + */ +export type MeasureUnitsDeleteManyArgs = { + /** + * Filter which MeasureUnits to delete + */ + where?: Prisma.MeasureUnitsWhereInput + /** + * Limit how many MeasureUnits to delete. + */ + limit?: number +} + +/** + * MeasureUnits.goods + */ +export type MeasureUnits$goodsArgs = { + /** + * Select specific fields to fetch from the Good + */ + select?: Prisma.GoodSelect | null + /** + * Omit specific fields from the Good + */ + omit?: Prisma.GoodOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.GoodInclude | null + where?: Prisma.GoodWhereInput + orderBy?: Prisma.GoodOrderByWithRelationInput | Prisma.GoodOrderByWithRelationInput[] + cursor?: Prisma.GoodWhereUniqueInput + take?: number + skip?: number + distinct?: Prisma.GoodScalarFieldEnum | Prisma.GoodScalarFieldEnum[] +} + +/** + * MeasureUnits without action + */ +export type MeasureUnitsDefaultArgs = { + /** + * Select specific fields to fetch from the MeasureUnits + */ + select?: Prisma.MeasureUnitsSelect | null + /** + * Omit specific fields from the MeasureUnits + */ + omit?: Prisma.MeasureUnitsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.MeasureUnitsInclude | null +} diff --git a/src/generated/prisma/models/SaleInvoiceFiscalAttempts.ts b/src/generated/prisma/models/SaleInvoiceFiscalAttempts.ts index 5aab901..68ceb5d 100644 --- a/src/generated/prisma/models/SaleInvoiceFiscalAttempts.ts +++ b/src/generated/prisma/models/SaleInvoiceFiscalAttempts.ts @@ -37,8 +37,9 @@ export type SaleInvoiceFiscalAttemptsSumAggregateOutputType = { export type SaleInvoiceFiscalAttemptsMinAggregateOutputType = { id: string | null attempt_no: number | null - status: string | null + status: $Enums.FiscalResponseStatus | null tax_id: string | null + type: $Enums.FiscalRequestType | null error_message: string | null sent_at: Date | null received_at: Date | null @@ -49,8 +50,9 @@ export type SaleInvoiceFiscalAttemptsMinAggregateOutputType = { export type SaleInvoiceFiscalAttemptsMaxAggregateOutputType = { id: string | null attempt_no: number | null - status: string | null + status: $Enums.FiscalResponseStatus | null tax_id: string | null + type: $Enums.FiscalRequestType | null error_message: string | null sent_at: Date | null received_at: Date | null @@ -63,6 +65,7 @@ export type SaleInvoiceFiscalAttemptsCountAggregateOutputType = { attempt_no: number status: number tax_id: number + type: number request_payload: number response_payload: number error_message: number @@ -87,6 +90,7 @@ export type SaleInvoiceFiscalAttemptsMinAggregateInputType = { attempt_no?: true status?: true tax_id?: true + type?: true error_message?: true sent_at?: true received_at?: true @@ -99,6 +103,7 @@ export type SaleInvoiceFiscalAttemptsMaxAggregateInputType = { attempt_no?: true status?: true tax_id?: true + type?: true error_message?: true sent_at?: true received_at?: true @@ -111,6 +116,7 @@ export type SaleInvoiceFiscalAttemptsCountAggregateInputType = { attempt_no?: true status?: true tax_id?: true + type?: true request_payload?: true response_payload?: true error_message?: true @@ -210,8 +216,9 @@ export type SaleInvoiceFiscalAttemptsGroupByArgs | string attempt_no?: Prisma.IntFilter<"SaleInvoiceFiscalAttempts"> | number - status?: Prisma.StringFilter<"SaleInvoiceFiscalAttempts"> | string + status?: Prisma.EnumFiscalResponseStatusFilter<"SaleInvoiceFiscalAttempts"> | $Enums.FiscalResponseStatus tax_id?: Prisma.StringNullableFilter<"SaleInvoiceFiscalAttempts"> | string | null + type?: Prisma.EnumFiscalRequestTypeFilter<"SaleInvoiceFiscalAttempts"> | $Enums.FiscalRequestType request_payload?: Prisma.JsonNullableFilter<"SaleInvoiceFiscalAttempts"> response_payload?: Prisma.JsonNullableFilter<"SaleInvoiceFiscalAttempts"> error_message?: Prisma.StringNullableFilter<"SaleInvoiceFiscalAttempts"> | string | null @@ -264,6 +272,7 @@ export type SaleInvoiceFiscalAttemptsOrderByWithRelationInput = { attempt_no?: Prisma.SortOrder status?: Prisma.SortOrder tax_id?: Prisma.SortOrderInput | Prisma.SortOrder + type?: Prisma.SortOrder request_payload?: Prisma.SortOrderInput | Prisma.SortOrder response_payload?: Prisma.SortOrderInput | Prisma.SortOrder error_message?: Prisma.SortOrderInput | Prisma.SortOrder @@ -283,7 +292,8 @@ export type SaleInvoiceFiscalAttemptsWhereUniqueInput = Prisma.AtLeast<{ OR?: Prisma.SaleInvoiceFiscalAttemptsWhereInput[] NOT?: Prisma.SaleInvoiceFiscalAttemptsWhereInput | Prisma.SaleInvoiceFiscalAttemptsWhereInput[] attempt_no?: Prisma.IntFilter<"SaleInvoiceFiscalAttempts"> | number - status?: Prisma.StringFilter<"SaleInvoiceFiscalAttempts"> | string + status?: Prisma.EnumFiscalResponseStatusFilter<"SaleInvoiceFiscalAttempts"> | $Enums.FiscalResponseStatus + type?: Prisma.EnumFiscalRequestTypeFilter<"SaleInvoiceFiscalAttempts"> | $Enums.FiscalRequestType request_payload?: Prisma.JsonNullableFilter<"SaleInvoiceFiscalAttempts"> response_payload?: Prisma.JsonNullableFilter<"SaleInvoiceFiscalAttempts"> error_message?: Prisma.StringNullableFilter<"SaleInvoiceFiscalAttempts"> | string | null @@ -299,6 +309,7 @@ export type SaleInvoiceFiscalAttemptsOrderByWithAggregationInput = { attempt_no?: Prisma.SortOrder status?: Prisma.SortOrder tax_id?: Prisma.SortOrderInput | Prisma.SortOrder + type?: Prisma.SortOrder request_payload?: Prisma.SortOrderInput | Prisma.SortOrder response_payload?: Prisma.SortOrderInput | Prisma.SortOrder error_message?: Prisma.SortOrderInput | Prisma.SortOrder @@ -319,8 +330,9 @@ export type SaleInvoiceFiscalAttemptsScalarWhereWithAggregatesInput = { NOT?: Prisma.SaleInvoiceFiscalAttemptsScalarWhereWithAggregatesInput | Prisma.SaleInvoiceFiscalAttemptsScalarWhereWithAggregatesInput[] id?: Prisma.StringWithAggregatesFilter<"SaleInvoiceFiscalAttempts"> | string attempt_no?: Prisma.IntWithAggregatesFilter<"SaleInvoiceFiscalAttempts"> | number - status?: Prisma.StringWithAggregatesFilter<"SaleInvoiceFiscalAttempts"> | string + status?: Prisma.EnumFiscalResponseStatusWithAggregatesFilter<"SaleInvoiceFiscalAttempts"> | $Enums.FiscalResponseStatus tax_id?: Prisma.StringNullableWithAggregatesFilter<"SaleInvoiceFiscalAttempts"> | string | null + type?: Prisma.EnumFiscalRequestTypeWithAggregatesFilter<"SaleInvoiceFiscalAttempts"> | $Enums.FiscalRequestType request_payload?: Prisma.JsonNullableWithAggregatesFilter<"SaleInvoiceFiscalAttempts"> response_payload?: Prisma.JsonNullableWithAggregatesFilter<"SaleInvoiceFiscalAttempts"> error_message?: Prisma.StringNullableWithAggregatesFilter<"SaleInvoiceFiscalAttempts"> | string | null @@ -333,8 +345,9 @@ export type SaleInvoiceFiscalAttemptsScalarWhereWithAggregatesInput = { export type SaleInvoiceFiscalAttemptsCreateInput = { id?: string attempt_no: number - status: string + status: $Enums.FiscalResponseStatus tax_id?: string | null + type: $Enums.FiscalRequestType request_payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue response_payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue error_message?: string | null @@ -347,8 +360,9 @@ export type SaleInvoiceFiscalAttemptsCreateInput = { export type SaleInvoiceFiscalAttemptsUncheckedCreateInput = { id?: string attempt_no: number - status: string + status: $Enums.FiscalResponseStatus tax_id?: string | null + type: $Enums.FiscalRequestType request_payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue response_payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue error_message?: string | null @@ -361,8 +375,9 @@ export type SaleInvoiceFiscalAttemptsUncheckedCreateInput = { export type SaleInvoiceFiscalAttemptsUpdateInput = { id?: Prisma.StringFieldUpdateOperationsInput | string attempt_no?: Prisma.IntFieldUpdateOperationsInput | number - status?: Prisma.StringFieldUpdateOperationsInput | string + status?: Prisma.EnumFiscalResponseStatusFieldUpdateOperationsInput | $Enums.FiscalResponseStatus tax_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + type?: Prisma.EnumFiscalRequestTypeFieldUpdateOperationsInput | $Enums.FiscalRequestType request_payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue response_payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue error_message?: Prisma.NullableStringFieldUpdateOperationsInput | string | null @@ -375,8 +390,9 @@ export type SaleInvoiceFiscalAttemptsUpdateInput = { export type SaleInvoiceFiscalAttemptsUncheckedUpdateInput = { id?: Prisma.StringFieldUpdateOperationsInput | string attempt_no?: Prisma.IntFieldUpdateOperationsInput | number - status?: Prisma.StringFieldUpdateOperationsInput | string + status?: Prisma.EnumFiscalResponseStatusFieldUpdateOperationsInput | $Enums.FiscalResponseStatus tax_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + type?: Prisma.EnumFiscalRequestTypeFieldUpdateOperationsInput | $Enums.FiscalRequestType request_payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue response_payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue error_message?: Prisma.NullableStringFieldUpdateOperationsInput | string | null @@ -389,8 +405,9 @@ export type SaleInvoiceFiscalAttemptsUncheckedUpdateInput = { export type SaleInvoiceFiscalAttemptsCreateManyInput = { id?: string attempt_no: number - status: string + status: $Enums.FiscalResponseStatus tax_id?: string | null + type: $Enums.FiscalRequestType request_payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue response_payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue error_message?: string | null @@ -403,8 +420,9 @@ export type SaleInvoiceFiscalAttemptsCreateManyInput = { export type SaleInvoiceFiscalAttemptsUpdateManyMutationInput = { id?: Prisma.StringFieldUpdateOperationsInput | string attempt_no?: Prisma.IntFieldUpdateOperationsInput | number - status?: Prisma.StringFieldUpdateOperationsInput | string + status?: Prisma.EnumFiscalResponseStatusFieldUpdateOperationsInput | $Enums.FiscalResponseStatus tax_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + type?: Prisma.EnumFiscalRequestTypeFieldUpdateOperationsInput | $Enums.FiscalRequestType request_payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue response_payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue error_message?: Prisma.NullableStringFieldUpdateOperationsInput | string | null @@ -416,8 +434,9 @@ export type SaleInvoiceFiscalAttemptsUpdateManyMutationInput = { export type SaleInvoiceFiscalAttemptsUncheckedUpdateManyInput = { id?: Prisma.StringFieldUpdateOperationsInput | string attempt_no?: Prisma.IntFieldUpdateOperationsInput | number - status?: Prisma.StringFieldUpdateOperationsInput | string + status?: Prisma.EnumFiscalResponseStatusFieldUpdateOperationsInput | $Enums.FiscalResponseStatus tax_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + type?: Prisma.EnumFiscalRequestTypeFieldUpdateOperationsInput | $Enums.FiscalRequestType request_payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue response_payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue error_message?: Prisma.NullableStringFieldUpdateOperationsInput | string | null @@ -453,6 +472,7 @@ export type SaleInvoiceFiscalAttemptsCountOrderByAggregateInput = { attempt_no?: Prisma.SortOrder status?: Prisma.SortOrder tax_id?: Prisma.SortOrder + type?: Prisma.SortOrder request_payload?: Prisma.SortOrder response_payload?: Prisma.SortOrder error_message?: Prisma.SortOrder @@ -471,6 +491,7 @@ export type SaleInvoiceFiscalAttemptsMaxOrderByAggregateInput = { attempt_no?: Prisma.SortOrder status?: Prisma.SortOrder tax_id?: Prisma.SortOrder + type?: Prisma.SortOrder error_message?: Prisma.SortOrder sent_at?: Prisma.SortOrder received_at?: Prisma.SortOrder @@ -483,6 +504,7 @@ export type SaleInvoiceFiscalAttemptsMinOrderByAggregateInput = { attempt_no?: Prisma.SortOrder status?: Prisma.SortOrder tax_id?: Prisma.SortOrder + type?: Prisma.SortOrder error_message?: Prisma.SortOrder sent_at?: Prisma.SortOrder received_at?: Prisma.SortOrder @@ -536,11 +558,20 @@ export type SaleInvoiceFiscalAttemptsUncheckedUpdateManyWithoutFiscalNestedInput deleteMany?: Prisma.SaleInvoiceFiscalAttemptsScalarWhereInput | Prisma.SaleInvoiceFiscalAttemptsScalarWhereInput[] } +export type EnumFiscalResponseStatusFieldUpdateOperationsInput = { + set?: $Enums.FiscalResponseStatus +} + +export type EnumFiscalRequestTypeFieldUpdateOperationsInput = { + set?: $Enums.FiscalRequestType +} + export type SaleInvoiceFiscalAttemptsCreateWithoutFiscalInput = { id?: string attempt_no: number - status: string + status: $Enums.FiscalResponseStatus tax_id?: string | null + type: $Enums.FiscalRequestType request_payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue response_payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue error_message?: string | null @@ -552,8 +583,9 @@ export type SaleInvoiceFiscalAttemptsCreateWithoutFiscalInput = { export type SaleInvoiceFiscalAttemptsUncheckedCreateWithoutFiscalInput = { id?: string attempt_no: number - status: string + status: $Enums.FiscalResponseStatus tax_id?: string | null + type: $Enums.FiscalRequestType request_payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue response_payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue error_message?: string | null @@ -594,8 +626,9 @@ export type SaleInvoiceFiscalAttemptsScalarWhereInput = { NOT?: Prisma.SaleInvoiceFiscalAttemptsScalarWhereInput | Prisma.SaleInvoiceFiscalAttemptsScalarWhereInput[] id?: Prisma.StringFilter<"SaleInvoiceFiscalAttempts"> | string attempt_no?: Prisma.IntFilter<"SaleInvoiceFiscalAttempts"> | number - status?: Prisma.StringFilter<"SaleInvoiceFiscalAttempts"> | string + status?: Prisma.EnumFiscalResponseStatusFilter<"SaleInvoiceFiscalAttempts"> | $Enums.FiscalResponseStatus tax_id?: Prisma.StringNullableFilter<"SaleInvoiceFiscalAttempts"> | string | null + type?: Prisma.EnumFiscalRequestTypeFilter<"SaleInvoiceFiscalAttempts"> | $Enums.FiscalRequestType request_payload?: Prisma.JsonNullableFilter<"SaleInvoiceFiscalAttempts"> response_payload?: Prisma.JsonNullableFilter<"SaleInvoiceFiscalAttempts"> error_message?: Prisma.StringNullableFilter<"SaleInvoiceFiscalAttempts"> | string | null @@ -608,8 +641,9 @@ export type SaleInvoiceFiscalAttemptsScalarWhereInput = { export type SaleInvoiceFiscalAttemptsCreateManyFiscalInput = { id?: string attempt_no: number - status: string + status: $Enums.FiscalResponseStatus tax_id?: string | null + type: $Enums.FiscalRequestType request_payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue response_payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue error_message?: string | null @@ -621,8 +655,9 @@ export type SaleInvoiceFiscalAttemptsCreateManyFiscalInput = { export type SaleInvoiceFiscalAttemptsUpdateWithoutFiscalInput = { id?: Prisma.StringFieldUpdateOperationsInput | string attempt_no?: Prisma.IntFieldUpdateOperationsInput | number - status?: Prisma.StringFieldUpdateOperationsInput | string + status?: Prisma.EnumFiscalResponseStatusFieldUpdateOperationsInput | $Enums.FiscalResponseStatus tax_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + type?: Prisma.EnumFiscalRequestTypeFieldUpdateOperationsInput | $Enums.FiscalRequestType request_payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue response_payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue error_message?: Prisma.NullableStringFieldUpdateOperationsInput | string | null @@ -634,8 +669,9 @@ export type SaleInvoiceFiscalAttemptsUpdateWithoutFiscalInput = { export type SaleInvoiceFiscalAttemptsUncheckedUpdateWithoutFiscalInput = { id?: Prisma.StringFieldUpdateOperationsInput | string attempt_no?: Prisma.IntFieldUpdateOperationsInput | number - status?: Prisma.StringFieldUpdateOperationsInput | string + status?: Prisma.EnumFiscalResponseStatusFieldUpdateOperationsInput | $Enums.FiscalResponseStatus tax_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + type?: Prisma.EnumFiscalRequestTypeFieldUpdateOperationsInput | $Enums.FiscalRequestType request_payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue response_payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue error_message?: Prisma.NullableStringFieldUpdateOperationsInput | string | null @@ -647,8 +683,9 @@ export type SaleInvoiceFiscalAttemptsUncheckedUpdateWithoutFiscalInput = { export type SaleInvoiceFiscalAttemptsUncheckedUpdateManyWithoutFiscalInput = { id?: Prisma.StringFieldUpdateOperationsInput | string attempt_no?: Prisma.IntFieldUpdateOperationsInput | number - status?: Prisma.StringFieldUpdateOperationsInput | string + status?: Prisma.EnumFiscalResponseStatusFieldUpdateOperationsInput | $Enums.FiscalResponseStatus tax_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + type?: Prisma.EnumFiscalRequestTypeFieldUpdateOperationsInput | $Enums.FiscalRequestType request_payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue response_payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue error_message?: Prisma.NullableStringFieldUpdateOperationsInput | string | null @@ -664,6 +701,7 @@ export type SaleInvoiceFiscalAttemptsSelect = runtime.Types.Extensions.GetOmit<"id" | "attempt_no" | "status" | "tax_id" | "request_payload" | "response_payload" | "error_message" | "sent_at" | "received_at" | "created_at" | "fiscal_id", ExtArgs["result"]["saleInvoiceFiscalAttempts"]> +export type SaleInvoiceFiscalAttemptsOmit = runtime.Types.Extensions.GetOmit<"id" | "attempt_no" | "status" | "tax_id" | "type" | "request_payload" | "response_payload" | "error_message" | "sent_at" | "received_at" | "created_at" | "fiscal_id", ExtArgs["result"]["saleInvoiceFiscalAttempts"]> export type SaleInvoiceFiscalAttemptsInclude = { fiscal?: boolean | Prisma.SaleInvoiceFiscalsDefaultArgs } @@ -703,8 +742,9 @@ export type $SaleInvoiceFiscalAttemptsPayload readonly attempt_no: Prisma.FieldRef<"SaleInvoiceFiscalAttempts", 'Int'> - readonly status: Prisma.FieldRef<"SaleInvoiceFiscalAttempts", 'String'> + readonly status: Prisma.FieldRef<"SaleInvoiceFiscalAttempts", 'FiscalResponseStatus'> readonly tax_id: Prisma.FieldRef<"SaleInvoiceFiscalAttempts", 'String'> + readonly type: Prisma.FieldRef<"SaleInvoiceFiscalAttempts", 'FiscalRequestType'> readonly request_payload: Prisma.FieldRef<"SaleInvoiceFiscalAttempts", 'Json'> readonly response_payload: Prisma.FieldRef<"SaleInvoiceFiscalAttempts", 'Json'> readonly error_message: Prisma.FieldRef<"SaleInvoiceFiscalAttempts", 'String'> diff --git a/src/generated/prisma/models/SalesInvoice.ts b/src/generated/prisma/models/SalesInvoice.ts index 5cffad5..57673cc 100644 --- a/src/generated/prisma/models/SalesInvoice.ts +++ b/src/generated/prisma/models/SalesInvoice.ts @@ -684,14 +684,6 @@ export type SalesInvoiceUncheckedUpdateManyWithoutCustomerNestedInput = { deleteMany?: Prisma.SalesInvoiceScalarWhereInput | Prisma.SalesInvoiceScalarWhereInput[] } -export type DecimalFieldUpdateOperationsInput = { - set?: runtime.Decimal | runtime.DecimalJsLike | number | string - increment?: runtime.Decimal | runtime.DecimalJsLike | number | string - decrement?: runtime.Decimal | runtime.DecimalJsLike | number | string - multiply?: runtime.Decimal | runtime.DecimalJsLike | number | string - divide?: runtime.Decimal | runtime.DecimalJsLike | number | string -} - export type SalesInvoiceCreateNestedOneWithoutItemsInput = { create?: Prisma.XOR connectOrCreate?: Prisma.SalesInvoiceCreateOrConnectWithoutItemsInput diff --git a/src/generated/prisma/models/SalesInvoiceItem.ts b/src/generated/prisma/models/SalesInvoiceItem.ts index a690435..7c9a8a7 100644 --- a/src/generated/prisma/models/SalesInvoiceItem.ts +++ b/src/generated/prisma/models/SalesInvoiceItem.ts @@ -28,6 +28,7 @@ export type AggregateSalesInvoiceItem = { export type SalesInvoiceItemAvgAggregateOutputType = { quantity: runtime.Decimal | null + sku_vat: runtime.Decimal | null unit_price: runtime.Decimal | null total_amount: runtime.Decimal | null discount: runtime.Decimal | null @@ -35,6 +36,7 @@ export type SalesInvoiceItemAvgAggregateOutputType = { export type SalesInvoiceItemSumAggregateOutputType = { quantity: runtime.Decimal | null + sku_vat: runtime.Decimal | null unit_price: runtime.Decimal | null total_amount: runtime.Decimal | null discount: runtime.Decimal | null @@ -43,7 +45,10 @@ export type SalesInvoiceItemSumAggregateOutputType = { export type SalesInvoiceItemMinAggregateOutputType = { id: string | null quantity: runtime.Decimal | null - unit_type: $Enums.UnitType | null + measure_unit_text: string | null + measure_unit_code: string | null + sku_code: string | null + sku_vat: runtime.Decimal | null unit_price: runtime.Decimal | null total_amount: runtime.Decimal | null created_at: Date | null @@ -57,7 +62,10 @@ export type SalesInvoiceItemMinAggregateOutputType = { export type SalesInvoiceItemMaxAggregateOutputType = { id: string | null quantity: runtime.Decimal | null - unit_type: $Enums.UnitType | null + measure_unit_text: string | null + measure_unit_code: string | null + sku_code: string | null + sku_vat: runtime.Decimal | null unit_price: runtime.Decimal | null total_amount: runtime.Decimal | null created_at: Date | null @@ -71,7 +79,10 @@ export type SalesInvoiceItemMaxAggregateOutputType = { export type SalesInvoiceItemCountAggregateOutputType = { id: number quantity: number - unit_type: number + measure_unit_text: number + measure_unit_code: number + sku_code: number + sku_vat: number unit_price: number total_amount: number created_at: number @@ -88,6 +99,7 @@ export type SalesInvoiceItemCountAggregateOutputType = { export type SalesInvoiceItemAvgAggregateInputType = { quantity?: true + sku_vat?: true unit_price?: true total_amount?: true discount?: true @@ -95,6 +107,7 @@ export type SalesInvoiceItemAvgAggregateInputType = { export type SalesInvoiceItemSumAggregateInputType = { quantity?: true + sku_vat?: true unit_price?: true total_amount?: true discount?: true @@ -103,7 +116,10 @@ export type SalesInvoiceItemSumAggregateInputType = { export type SalesInvoiceItemMinAggregateInputType = { id?: true quantity?: true - unit_type?: true + measure_unit_text?: true + measure_unit_code?: true + sku_code?: true + sku_vat?: true unit_price?: true total_amount?: true created_at?: true @@ -117,7 +133,10 @@ export type SalesInvoiceItemMinAggregateInputType = { export type SalesInvoiceItemMaxAggregateInputType = { id?: true quantity?: true - unit_type?: true + measure_unit_text?: true + measure_unit_code?: true + sku_code?: true + sku_vat?: true unit_price?: true total_amount?: true created_at?: true @@ -131,7 +150,10 @@ export type SalesInvoiceItemMaxAggregateInputType = { export type SalesInvoiceItemCountAggregateInputType = { id?: true quantity?: true - unit_type?: true + measure_unit_text?: true + measure_unit_code?: true + sku_code?: true + sku_vat?: true unit_price?: true total_amount?: true created_at?: true @@ -234,7 +256,10 @@ export type SalesInvoiceItemGroupByArgs | string quantity?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type?: Prisma.EnumUnitTypeFilter<"SalesInvoiceItem"> | $Enums.UnitType + measure_unit_text?: Prisma.StringFilter<"SalesInvoiceItem"> | string + measure_unit_code?: Prisma.StringFilter<"SalesInvoiceItem"> | string + sku_code?: Prisma.StringFilter<"SalesInvoiceItem"> | string + sku_vat?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Prisma.DateTimeFilter<"SalesInvoiceItem"> | Date | string @@ -292,7 +320,10 @@ export type SalesInvoiceItemWhereInput = { export type SalesInvoiceItemOrderByWithRelationInput = { id?: Prisma.SortOrder quantity?: Prisma.SortOrder - unit_type?: Prisma.SortOrder + measure_unit_text?: Prisma.SortOrder + measure_unit_code?: Prisma.SortOrder + sku_code?: Prisma.SortOrder + sku_vat?: Prisma.SortOrder unit_price?: Prisma.SortOrder total_amount?: Prisma.SortOrder created_at?: Prisma.SortOrder @@ -315,7 +346,10 @@ export type SalesInvoiceItemWhereUniqueInput = Prisma.AtLeast<{ OR?: Prisma.SalesInvoiceItemWhereInput[] NOT?: Prisma.SalesInvoiceItemWhereInput | Prisma.SalesInvoiceItemWhereInput[] quantity?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type?: Prisma.EnumUnitTypeFilter<"SalesInvoiceItem"> | $Enums.UnitType + measure_unit_text?: Prisma.StringFilter<"SalesInvoiceItem"> | string + measure_unit_code?: Prisma.StringFilter<"SalesInvoiceItem"> | string + sku_code?: Prisma.StringFilter<"SalesInvoiceItem"> | string + sku_vat?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Prisma.DateTimeFilter<"SalesInvoiceItem"> | Date | string @@ -334,7 +368,10 @@ export type SalesInvoiceItemWhereUniqueInput = Prisma.AtLeast<{ export type SalesInvoiceItemOrderByWithAggregationInput = { id?: Prisma.SortOrder quantity?: Prisma.SortOrder - unit_type?: Prisma.SortOrder + measure_unit_text?: Prisma.SortOrder + measure_unit_code?: Prisma.SortOrder + sku_code?: Prisma.SortOrder + sku_vat?: Prisma.SortOrder unit_price?: Prisma.SortOrder total_amount?: Prisma.SortOrder created_at?: Prisma.SortOrder @@ -358,7 +395,10 @@ export type SalesInvoiceItemScalarWhereWithAggregatesInput = { NOT?: Prisma.SalesInvoiceItemScalarWhereWithAggregatesInput | Prisma.SalesInvoiceItemScalarWhereWithAggregatesInput[] id?: Prisma.StringWithAggregatesFilter<"SalesInvoiceItem"> | string quantity?: Prisma.DecimalWithAggregatesFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type?: Prisma.EnumUnitTypeWithAggregatesFilter<"SalesInvoiceItem"> | $Enums.UnitType + measure_unit_text?: Prisma.StringWithAggregatesFilter<"SalesInvoiceItem"> | string + measure_unit_code?: Prisma.StringWithAggregatesFilter<"SalesInvoiceItem"> | string + sku_code?: Prisma.StringWithAggregatesFilter<"SalesInvoiceItem"> | string + sku_vat?: Prisma.DecimalWithAggregatesFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalWithAggregatesFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalWithAggregatesFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Prisma.DateTimeWithAggregatesFilter<"SalesInvoiceItem"> | Date | string @@ -374,7 +414,10 @@ export type SalesInvoiceItemScalarWhereWithAggregatesInput = { export type SalesInvoiceItemCreateInput = { id?: string quantity: runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type: $Enums.UnitType + measure_unit_text: string + measure_unit_code: string + sku_code: string + sku_vat?: runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Date | string @@ -390,7 +433,10 @@ export type SalesInvoiceItemCreateInput = { export type SalesInvoiceItemUncheckedCreateInput = { id?: string quantity: runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type: $Enums.UnitType + measure_unit_text: string + measure_unit_code: string + sku_code: string + sku_vat?: runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Date | string @@ -406,7 +452,10 @@ export type SalesInvoiceItemUncheckedCreateInput = { export type SalesInvoiceItemUpdateInput = { id?: Prisma.StringFieldUpdateOperationsInput | string quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType + measure_unit_text?: Prisma.StringFieldUpdateOperationsInput | string + measure_unit_code?: Prisma.StringFieldUpdateOperationsInput | string + sku_code?: Prisma.StringFieldUpdateOperationsInput | string + sku_vat?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -422,7 +471,10 @@ export type SalesInvoiceItemUpdateInput = { export type SalesInvoiceItemUncheckedUpdateInput = { id?: Prisma.StringFieldUpdateOperationsInput | string quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType + measure_unit_text?: Prisma.StringFieldUpdateOperationsInput | string + measure_unit_code?: Prisma.StringFieldUpdateOperationsInput | string + sku_code?: Prisma.StringFieldUpdateOperationsInput | string + sku_vat?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -438,7 +490,10 @@ export type SalesInvoiceItemUncheckedUpdateInput = { export type SalesInvoiceItemCreateManyInput = { id?: string quantity: runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type: $Enums.UnitType + measure_unit_text: string + measure_unit_code: string + sku_code: string + sku_vat?: runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Date | string @@ -454,7 +509,10 @@ export type SalesInvoiceItemCreateManyInput = { export type SalesInvoiceItemUpdateManyMutationInput = { id?: Prisma.StringFieldUpdateOperationsInput | string quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType + measure_unit_text?: Prisma.StringFieldUpdateOperationsInput | string + measure_unit_code?: Prisma.StringFieldUpdateOperationsInput | string + sku_code?: Prisma.StringFieldUpdateOperationsInput | string + sku_vat?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -467,7 +525,10 @@ export type SalesInvoiceItemUpdateManyMutationInput = { export type SalesInvoiceItemUncheckedUpdateManyInput = { id?: Prisma.StringFieldUpdateOperationsInput | string quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType + measure_unit_text?: Prisma.StringFieldUpdateOperationsInput | string + measure_unit_code?: Prisma.StringFieldUpdateOperationsInput | string + sku_code?: Prisma.StringFieldUpdateOperationsInput | string + sku_vat?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -499,7 +560,10 @@ export type SalesInvoiceItemOrderByRelevanceInput = { export type SalesInvoiceItemCountOrderByAggregateInput = { id?: Prisma.SortOrder quantity?: Prisma.SortOrder - unit_type?: Prisma.SortOrder + measure_unit_text?: Prisma.SortOrder + measure_unit_code?: Prisma.SortOrder + sku_code?: Prisma.SortOrder + sku_vat?: Prisma.SortOrder unit_price?: Prisma.SortOrder total_amount?: Prisma.SortOrder created_at?: Prisma.SortOrder @@ -514,6 +578,7 @@ export type SalesInvoiceItemCountOrderByAggregateInput = { export type SalesInvoiceItemAvgOrderByAggregateInput = { quantity?: Prisma.SortOrder + sku_vat?: Prisma.SortOrder unit_price?: Prisma.SortOrder total_amount?: Prisma.SortOrder discount?: Prisma.SortOrder @@ -522,7 +587,10 @@ export type SalesInvoiceItemAvgOrderByAggregateInput = { export type SalesInvoiceItemMaxOrderByAggregateInput = { id?: Prisma.SortOrder quantity?: Prisma.SortOrder - unit_type?: Prisma.SortOrder + measure_unit_text?: Prisma.SortOrder + measure_unit_code?: Prisma.SortOrder + sku_code?: Prisma.SortOrder + sku_vat?: Prisma.SortOrder unit_price?: Prisma.SortOrder total_amount?: Prisma.SortOrder created_at?: Prisma.SortOrder @@ -536,7 +604,10 @@ export type SalesInvoiceItemMaxOrderByAggregateInput = { export type SalesInvoiceItemMinOrderByAggregateInput = { id?: Prisma.SortOrder quantity?: Prisma.SortOrder - unit_type?: Prisma.SortOrder + measure_unit_text?: Prisma.SortOrder + measure_unit_code?: Prisma.SortOrder + sku_code?: Prisma.SortOrder + sku_vat?: Prisma.SortOrder unit_price?: Prisma.SortOrder total_amount?: Prisma.SortOrder created_at?: Prisma.SortOrder @@ -549,6 +620,7 @@ export type SalesInvoiceItemMinOrderByAggregateInput = { export type SalesInvoiceItemSumOrderByAggregateInput = { quantity?: Prisma.SortOrder + sku_vat?: Prisma.SortOrder unit_price?: Prisma.SortOrder total_amount?: Prisma.SortOrder discount?: Prisma.SortOrder @@ -683,7 +755,10 @@ export type SalesInvoiceItemUncheckedUpdateManyWithoutServiceNestedInput = { export type SalesInvoiceItemCreateWithoutGoodInput = { id?: string quantity: runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type: $Enums.UnitType + measure_unit_text: string + measure_unit_code: string + sku_code: string + sku_vat?: runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Date | string @@ -698,7 +773,10 @@ export type SalesInvoiceItemCreateWithoutGoodInput = { export type SalesInvoiceItemUncheckedCreateWithoutGoodInput = { id?: string quantity: runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type: $Enums.UnitType + measure_unit_text: string + measure_unit_code: string + sku_code: string + sku_vat?: runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Date | string @@ -742,7 +820,10 @@ export type SalesInvoiceItemScalarWhereInput = { NOT?: Prisma.SalesInvoiceItemScalarWhereInput | Prisma.SalesInvoiceItemScalarWhereInput[] id?: Prisma.StringFilter<"SalesInvoiceItem"> | string quantity?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type?: Prisma.EnumUnitTypeFilter<"SalesInvoiceItem"> | $Enums.UnitType + measure_unit_text?: Prisma.StringFilter<"SalesInvoiceItem"> | string + measure_unit_code?: Prisma.StringFilter<"SalesInvoiceItem"> | string + sku_code?: Prisma.StringFilter<"SalesInvoiceItem"> | string + sku_vat?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Prisma.DateTimeFilter<"SalesInvoiceItem"> | Date | string @@ -758,7 +839,10 @@ export type SalesInvoiceItemScalarWhereInput = { export type SalesInvoiceItemCreateWithoutInvoiceInput = { id?: string quantity: runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type: $Enums.UnitType + measure_unit_text: string + measure_unit_code: string + sku_code: string + sku_vat?: runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Date | string @@ -773,7 +857,10 @@ export type SalesInvoiceItemCreateWithoutInvoiceInput = { export type SalesInvoiceItemUncheckedCreateWithoutInvoiceInput = { id?: string quantity: runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type: $Enums.UnitType + measure_unit_text: string + measure_unit_code: string + sku_code: string + sku_vat?: runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Date | string @@ -814,7 +901,10 @@ export type SalesInvoiceItemUpdateManyWithWhereWithoutInvoiceInput = { export type SalesInvoiceItemCreateWithoutServiceInput = { id?: string quantity: runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type: $Enums.UnitType + measure_unit_text: string + measure_unit_code: string + sku_code: string + sku_vat?: runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Date | string @@ -829,7 +919,10 @@ export type SalesInvoiceItemCreateWithoutServiceInput = { export type SalesInvoiceItemUncheckedCreateWithoutServiceInput = { id?: string quantity: runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type: $Enums.UnitType + measure_unit_text: string + measure_unit_code: string + sku_code: string + sku_vat?: runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Date | string @@ -870,7 +963,10 @@ export type SalesInvoiceItemUpdateManyWithWhereWithoutServiceInput = { export type SalesInvoiceItemCreateManyGoodInput = { id?: string quantity: runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type: $Enums.UnitType + measure_unit_text: string + measure_unit_code: string + sku_code: string + sku_vat?: runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Date | string @@ -885,7 +981,10 @@ export type SalesInvoiceItemCreateManyGoodInput = { export type SalesInvoiceItemUpdateWithoutGoodInput = { id?: Prisma.StringFieldUpdateOperationsInput | string quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType + measure_unit_text?: Prisma.StringFieldUpdateOperationsInput | string + measure_unit_code?: Prisma.StringFieldUpdateOperationsInput | string + sku_code?: Prisma.StringFieldUpdateOperationsInput | string + sku_vat?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -900,7 +999,10 @@ export type SalesInvoiceItemUpdateWithoutGoodInput = { export type SalesInvoiceItemUncheckedUpdateWithoutGoodInput = { id?: Prisma.StringFieldUpdateOperationsInput | string quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType + measure_unit_text?: Prisma.StringFieldUpdateOperationsInput | string + measure_unit_code?: Prisma.StringFieldUpdateOperationsInput | string + sku_code?: Prisma.StringFieldUpdateOperationsInput | string + sku_vat?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -915,7 +1017,10 @@ export type SalesInvoiceItemUncheckedUpdateWithoutGoodInput = { export type SalesInvoiceItemUncheckedUpdateManyWithoutGoodInput = { id?: Prisma.StringFieldUpdateOperationsInput | string quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType + measure_unit_text?: Prisma.StringFieldUpdateOperationsInput | string + measure_unit_code?: Prisma.StringFieldUpdateOperationsInput | string + sku_code?: Prisma.StringFieldUpdateOperationsInput | string + sku_vat?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -930,7 +1035,10 @@ export type SalesInvoiceItemUncheckedUpdateManyWithoutGoodInput = { export type SalesInvoiceItemCreateManyInvoiceInput = { id?: string quantity: runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type: $Enums.UnitType + measure_unit_text: string + measure_unit_code: string + sku_code: string + sku_vat?: runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Date | string @@ -945,7 +1053,10 @@ export type SalesInvoiceItemCreateManyInvoiceInput = { export type SalesInvoiceItemUpdateWithoutInvoiceInput = { id?: Prisma.StringFieldUpdateOperationsInput | string quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType + measure_unit_text?: Prisma.StringFieldUpdateOperationsInput | string + measure_unit_code?: Prisma.StringFieldUpdateOperationsInput | string + sku_code?: Prisma.StringFieldUpdateOperationsInput | string + sku_vat?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -960,7 +1071,10 @@ export type SalesInvoiceItemUpdateWithoutInvoiceInput = { export type SalesInvoiceItemUncheckedUpdateWithoutInvoiceInput = { id?: Prisma.StringFieldUpdateOperationsInput | string quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType + measure_unit_text?: Prisma.StringFieldUpdateOperationsInput | string + measure_unit_code?: Prisma.StringFieldUpdateOperationsInput | string + sku_code?: Prisma.StringFieldUpdateOperationsInput | string + sku_vat?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -975,7 +1089,10 @@ export type SalesInvoiceItemUncheckedUpdateWithoutInvoiceInput = { export type SalesInvoiceItemUncheckedUpdateManyWithoutInvoiceInput = { id?: Prisma.StringFieldUpdateOperationsInput | string quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType + measure_unit_text?: Prisma.StringFieldUpdateOperationsInput | string + measure_unit_code?: Prisma.StringFieldUpdateOperationsInput | string + sku_code?: Prisma.StringFieldUpdateOperationsInput | string + sku_vat?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -990,7 +1107,10 @@ export type SalesInvoiceItemUncheckedUpdateManyWithoutInvoiceInput = { export type SalesInvoiceItemCreateManyServiceInput = { id?: string quantity: runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type: $Enums.UnitType + measure_unit_text: string + measure_unit_code: string + sku_code: string + sku_vat?: runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Date | string @@ -1005,7 +1125,10 @@ export type SalesInvoiceItemCreateManyServiceInput = { export type SalesInvoiceItemUpdateWithoutServiceInput = { id?: Prisma.StringFieldUpdateOperationsInput | string quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType + measure_unit_text?: Prisma.StringFieldUpdateOperationsInput | string + measure_unit_code?: Prisma.StringFieldUpdateOperationsInput | string + sku_code?: Prisma.StringFieldUpdateOperationsInput | string + sku_vat?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -1020,7 +1143,10 @@ export type SalesInvoiceItemUpdateWithoutServiceInput = { export type SalesInvoiceItemUncheckedUpdateWithoutServiceInput = { id?: Prisma.StringFieldUpdateOperationsInput | string quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType + measure_unit_text?: Prisma.StringFieldUpdateOperationsInput | string + measure_unit_code?: Prisma.StringFieldUpdateOperationsInput | string + sku_code?: Prisma.StringFieldUpdateOperationsInput | string + sku_vat?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -1035,7 +1161,10 @@ export type SalesInvoiceItemUncheckedUpdateWithoutServiceInput = { export type SalesInvoiceItemUncheckedUpdateManyWithoutServiceInput = { id?: Prisma.StringFieldUpdateOperationsInput | string quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string - unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType + measure_unit_text?: Prisma.StringFieldUpdateOperationsInput | string + measure_unit_code?: Prisma.StringFieldUpdateOperationsInput | string + sku_code?: Prisma.StringFieldUpdateOperationsInput | string + sku_vat?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -1052,7 +1181,10 @@ export type SalesInvoiceItemUncheckedUpdateManyWithoutServiceInput = { export type SalesInvoiceItemSelect = runtime.Types.Extensions.GetSelect<{ id?: boolean quantity?: boolean - unit_type?: boolean + measure_unit_text?: boolean + measure_unit_code?: boolean + sku_code?: boolean + sku_vat?: boolean unit_price?: boolean total_amount?: boolean created_at?: boolean @@ -1073,7 +1205,10 @@ export type SalesInvoiceItemSelect = runtime.Types.Extensions.GetOmit<"id" | "quantity" | "unit_type" | "unit_price" | "total_amount" | "created_at" | "discount" | "notes" | "payload" | "good_snapshot" | "invoice_id" | "good_id" | "service_id", ExtArgs["result"]["salesInvoiceItem"]> +export type SalesInvoiceItemOmit = runtime.Types.Extensions.GetOmit<"id" | "quantity" | "measure_unit_text" | "measure_unit_code" | "sku_code" | "sku_vat" | "unit_price" | "total_amount" | "created_at" | "discount" | "notes" | "payload" | "good_snapshot" | "invoice_id" | "good_id" | "service_id", ExtArgs["result"]["salesInvoiceItem"]> export type SalesInvoiceItemInclude = { invoice?: boolean | Prisma.SalesInvoiceDefaultArgs good?: boolean | Prisma.SalesInvoiceItem$goodArgs @@ -1103,7 +1238,10 @@ export type $SalesInvoiceItemPayload readonly quantity: Prisma.FieldRef<"SalesInvoiceItem", 'Decimal'> - readonly unit_type: Prisma.FieldRef<"SalesInvoiceItem", 'UnitType'> + readonly measure_unit_text: Prisma.FieldRef<"SalesInvoiceItem", 'String'> + readonly measure_unit_code: Prisma.FieldRef<"SalesInvoiceItem", 'String'> + readonly sku_code: Prisma.FieldRef<"SalesInvoiceItem", 'String'> + readonly sku_vat: Prisma.FieldRef<"SalesInvoiceItem", 'Decimal'> readonly unit_price: Prisma.FieldRef<"SalesInvoiceItem", 'Decimal'> readonly total_amount: Prisma.FieldRef<"SalesInvoiceItem", 'Decimal'> readonly created_at: Prisma.FieldRef<"SalesInvoiceItem", 'DateTime'> diff --git a/src/generated/prisma/models/StockKeepingUnits.ts b/src/generated/prisma/models/StockKeepingUnits.ts new file mode 100644 index 0000000..ab43525 --- /dev/null +++ b/src/generated/prisma/models/StockKeepingUnits.ts @@ -0,0 +1,1395 @@ + +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `StockKeepingUnits` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from "@prisma/client/runtime/client" +import type * as $Enums from "../enums.js" +import type * as Prisma from "../internal/prismaNamespace.js" + +/** + * Model StockKeepingUnits + * + */ +export type StockKeepingUnitsModel = runtime.Types.Result.DefaultSelection + +export type AggregateStockKeepingUnits = { + _count: StockKeepingUnitsCountAggregateOutputType | null + _avg: StockKeepingUnitsAvgAggregateOutputType | null + _sum: StockKeepingUnitsSumAggregateOutputType | null + _min: StockKeepingUnitsMinAggregateOutputType | null + _max: StockKeepingUnitsMaxAggregateOutputType | null +} + +export type StockKeepingUnitsAvgAggregateOutputType = { + VAT: runtime.Decimal | null +} + +export type StockKeepingUnitsSumAggregateOutputType = { + VAT: runtime.Decimal | null +} + +export type StockKeepingUnitsMinAggregateOutputType = { + id: string | null + code: string | null + name: string | null + VAT: runtime.Decimal | null + type: $Enums.SKUGuildType | null + is_public: boolean | null + is_domestic: boolean | null + created_at: Date | null + updated_at: Date | null +} + +export type StockKeepingUnitsMaxAggregateOutputType = { + id: string | null + code: string | null + name: string | null + VAT: runtime.Decimal | null + type: $Enums.SKUGuildType | null + is_public: boolean | null + is_domestic: boolean | null + created_at: Date | null + updated_at: Date | null +} + +export type StockKeepingUnitsCountAggregateOutputType = { + id: number + code: number + name: number + VAT: number + type: number + is_public: number + is_domestic: number + created_at: number + updated_at: number + _all: number +} + + +export type StockKeepingUnitsAvgAggregateInputType = { + VAT?: true +} + +export type StockKeepingUnitsSumAggregateInputType = { + VAT?: true +} + +export type StockKeepingUnitsMinAggregateInputType = { + id?: true + code?: true + name?: true + VAT?: true + type?: true + is_public?: true + is_domestic?: true + created_at?: true + updated_at?: true +} + +export type StockKeepingUnitsMaxAggregateInputType = { + id?: true + code?: true + name?: true + VAT?: true + type?: true + is_public?: true + is_domestic?: true + created_at?: true + updated_at?: true +} + +export type StockKeepingUnitsCountAggregateInputType = { + id?: true + code?: true + name?: true + VAT?: true + type?: true + is_public?: true + is_domestic?: true + created_at?: true + updated_at?: true + _all?: true +} + +export type StockKeepingUnitsAggregateArgs = { + /** + * Filter which StockKeepingUnits to aggregate. + */ + where?: Prisma.StockKeepingUnitsWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of StockKeepingUnits to fetch. + */ + orderBy?: Prisma.StockKeepingUnitsOrderByWithRelationInput | Prisma.StockKeepingUnitsOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.StockKeepingUnitsWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` StockKeepingUnits from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` StockKeepingUnits. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned StockKeepingUnits + **/ + _count?: true | StockKeepingUnitsCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: StockKeepingUnitsAvgAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: StockKeepingUnitsSumAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: StockKeepingUnitsMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: StockKeepingUnitsMaxAggregateInputType +} + +export type GetStockKeepingUnitsAggregateType = { + [P in keyof T & keyof AggregateStockKeepingUnits]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType +} + + + + +export type StockKeepingUnitsGroupByArgs = { + where?: Prisma.StockKeepingUnitsWhereInput + orderBy?: Prisma.StockKeepingUnitsOrderByWithAggregationInput | Prisma.StockKeepingUnitsOrderByWithAggregationInput[] + by: Prisma.StockKeepingUnitsScalarFieldEnum[] | Prisma.StockKeepingUnitsScalarFieldEnum + having?: Prisma.StockKeepingUnitsScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: StockKeepingUnitsCountAggregateInputType | true + _avg?: StockKeepingUnitsAvgAggregateInputType + _sum?: StockKeepingUnitsSumAggregateInputType + _min?: StockKeepingUnitsMinAggregateInputType + _max?: StockKeepingUnitsMaxAggregateInputType +} + +export type StockKeepingUnitsGroupByOutputType = { + id: string + code: string + name: string + VAT: runtime.Decimal + type: $Enums.SKUGuildType + is_public: boolean + is_domestic: boolean + created_at: Date + updated_at: Date + _count: StockKeepingUnitsCountAggregateOutputType | null + _avg: StockKeepingUnitsAvgAggregateOutputType | null + _sum: StockKeepingUnitsSumAggregateOutputType | null + _min: StockKeepingUnitsMinAggregateOutputType | null + _max: StockKeepingUnitsMaxAggregateOutputType | null +} + +export type GetStockKeepingUnitsGroupByPayload = Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & + { + [P in ((keyof T) & (keyof StockKeepingUnitsGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > + > + + + +export type StockKeepingUnitsWhereInput = { + AND?: Prisma.StockKeepingUnitsWhereInput | Prisma.StockKeepingUnitsWhereInput[] + OR?: Prisma.StockKeepingUnitsWhereInput[] + NOT?: Prisma.StockKeepingUnitsWhereInput | Prisma.StockKeepingUnitsWhereInput[] + id?: Prisma.StringFilter<"StockKeepingUnits"> | string + code?: Prisma.StringFilter<"StockKeepingUnits"> | string + name?: Prisma.StringFilter<"StockKeepingUnits"> | string + VAT?: Prisma.DecimalFilter<"StockKeepingUnits"> | runtime.Decimal | runtime.DecimalJsLike | number | string + type?: Prisma.EnumSKUGuildTypeFilter<"StockKeepingUnits"> | $Enums.SKUGuildType + is_public?: Prisma.BoolFilter<"StockKeepingUnits"> | boolean + is_domestic?: Prisma.BoolFilter<"StockKeepingUnits"> | boolean + created_at?: Prisma.DateTimeFilter<"StockKeepingUnits"> | Date | string + updated_at?: Prisma.DateTimeFilter<"StockKeepingUnits"> | Date | string + goods?: Prisma.GoodListRelationFilter +} + +export type StockKeepingUnitsOrderByWithRelationInput = { + id?: Prisma.SortOrder + code?: Prisma.SortOrder + name?: Prisma.SortOrder + VAT?: Prisma.SortOrder + type?: Prisma.SortOrder + is_public?: Prisma.SortOrder + is_domestic?: Prisma.SortOrder + created_at?: Prisma.SortOrder + updated_at?: Prisma.SortOrder + goods?: Prisma.GoodOrderByRelationAggregateInput + _relevance?: Prisma.StockKeepingUnitsOrderByRelevanceInput +} + +export type StockKeepingUnitsWhereUniqueInput = Prisma.AtLeast<{ + id?: string + code?: string + AND?: Prisma.StockKeepingUnitsWhereInput | Prisma.StockKeepingUnitsWhereInput[] + OR?: Prisma.StockKeepingUnitsWhereInput[] + NOT?: Prisma.StockKeepingUnitsWhereInput | Prisma.StockKeepingUnitsWhereInput[] + name?: Prisma.StringFilter<"StockKeepingUnits"> | string + VAT?: Prisma.DecimalFilter<"StockKeepingUnits"> | runtime.Decimal | runtime.DecimalJsLike | number | string + type?: Prisma.EnumSKUGuildTypeFilter<"StockKeepingUnits"> | $Enums.SKUGuildType + is_public?: Prisma.BoolFilter<"StockKeepingUnits"> | boolean + is_domestic?: Prisma.BoolFilter<"StockKeepingUnits"> | boolean + created_at?: Prisma.DateTimeFilter<"StockKeepingUnits"> | Date | string + updated_at?: Prisma.DateTimeFilter<"StockKeepingUnits"> | Date | string + goods?: Prisma.GoodListRelationFilter +}, "id" | "code"> + +export type StockKeepingUnitsOrderByWithAggregationInput = { + id?: Prisma.SortOrder + code?: Prisma.SortOrder + name?: Prisma.SortOrder + VAT?: Prisma.SortOrder + type?: Prisma.SortOrder + is_public?: Prisma.SortOrder + is_domestic?: Prisma.SortOrder + created_at?: Prisma.SortOrder + updated_at?: Prisma.SortOrder + _count?: Prisma.StockKeepingUnitsCountOrderByAggregateInput + _avg?: Prisma.StockKeepingUnitsAvgOrderByAggregateInput + _max?: Prisma.StockKeepingUnitsMaxOrderByAggregateInput + _min?: Prisma.StockKeepingUnitsMinOrderByAggregateInput + _sum?: Prisma.StockKeepingUnitsSumOrderByAggregateInput +} + +export type StockKeepingUnitsScalarWhereWithAggregatesInput = { + AND?: Prisma.StockKeepingUnitsScalarWhereWithAggregatesInput | Prisma.StockKeepingUnitsScalarWhereWithAggregatesInput[] + OR?: Prisma.StockKeepingUnitsScalarWhereWithAggregatesInput[] + NOT?: Prisma.StockKeepingUnitsScalarWhereWithAggregatesInput | Prisma.StockKeepingUnitsScalarWhereWithAggregatesInput[] + id?: Prisma.StringWithAggregatesFilter<"StockKeepingUnits"> | string + code?: Prisma.StringWithAggregatesFilter<"StockKeepingUnits"> | string + name?: Prisma.StringWithAggregatesFilter<"StockKeepingUnits"> | string + VAT?: Prisma.DecimalWithAggregatesFilter<"StockKeepingUnits"> | runtime.Decimal | runtime.DecimalJsLike | number | string + type?: Prisma.EnumSKUGuildTypeWithAggregatesFilter<"StockKeepingUnits"> | $Enums.SKUGuildType + is_public?: Prisma.BoolWithAggregatesFilter<"StockKeepingUnits"> | boolean + is_domestic?: Prisma.BoolWithAggregatesFilter<"StockKeepingUnits"> | boolean + created_at?: Prisma.DateTimeWithAggregatesFilter<"StockKeepingUnits"> | Date | string + updated_at?: Prisma.DateTimeWithAggregatesFilter<"StockKeepingUnits"> | Date | string +} + +export type StockKeepingUnitsCreateInput = { + id?: string + code: string + name: string + VAT: runtime.Decimal | runtime.DecimalJsLike | number | string + type?: $Enums.SKUGuildType + is_public?: boolean + is_domestic?: boolean + created_at?: Date | string + updated_at?: Date | string + goods?: Prisma.GoodCreateNestedManyWithoutSkuInput +} + +export type StockKeepingUnitsUncheckedCreateInput = { + id?: string + code: string + name: string + VAT: runtime.Decimal | runtime.DecimalJsLike | number | string + type?: $Enums.SKUGuildType + is_public?: boolean + is_domestic?: boolean + created_at?: Date | string + updated_at?: Date | string + goods?: Prisma.GoodUncheckedCreateNestedManyWithoutSkuInput +} + +export type StockKeepingUnitsUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + code?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + VAT?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string + type?: Prisma.EnumSKUGuildTypeFieldUpdateOperationsInput | $Enums.SKUGuildType + is_public?: Prisma.BoolFieldUpdateOperationsInput | boolean + is_domestic?: Prisma.BoolFieldUpdateOperationsInput | boolean + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + goods?: Prisma.GoodUpdateManyWithoutSkuNestedInput +} + +export type StockKeepingUnitsUncheckedUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + code?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + VAT?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string + type?: Prisma.EnumSKUGuildTypeFieldUpdateOperationsInput | $Enums.SKUGuildType + is_public?: Prisma.BoolFieldUpdateOperationsInput | boolean + is_domestic?: Prisma.BoolFieldUpdateOperationsInput | boolean + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + goods?: Prisma.GoodUncheckedUpdateManyWithoutSkuNestedInput +} + +export type StockKeepingUnitsCreateManyInput = { + id?: string + code: string + name: string + VAT: runtime.Decimal | runtime.DecimalJsLike | number | string + type?: $Enums.SKUGuildType + is_public?: boolean + is_domestic?: boolean + created_at?: Date | string + updated_at?: Date | string +} + +export type StockKeepingUnitsUpdateManyMutationInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + code?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + VAT?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string + type?: Prisma.EnumSKUGuildTypeFieldUpdateOperationsInput | $Enums.SKUGuildType + is_public?: Prisma.BoolFieldUpdateOperationsInput | boolean + is_domestic?: Prisma.BoolFieldUpdateOperationsInput | boolean + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type StockKeepingUnitsUncheckedUpdateManyInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + code?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + VAT?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string + type?: Prisma.EnumSKUGuildTypeFieldUpdateOperationsInput | $Enums.SKUGuildType + is_public?: Prisma.BoolFieldUpdateOperationsInput | boolean + is_domestic?: Prisma.BoolFieldUpdateOperationsInput | boolean + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type StockKeepingUnitsScalarRelationFilter = { + is?: Prisma.StockKeepingUnitsWhereInput + isNot?: Prisma.StockKeepingUnitsWhereInput +} + +export type StockKeepingUnitsOrderByRelevanceInput = { + fields: Prisma.StockKeepingUnitsOrderByRelevanceFieldEnum | Prisma.StockKeepingUnitsOrderByRelevanceFieldEnum[] + sort: Prisma.SortOrder + search: string +} + +export type StockKeepingUnitsCountOrderByAggregateInput = { + id?: Prisma.SortOrder + code?: Prisma.SortOrder + name?: Prisma.SortOrder + VAT?: Prisma.SortOrder + type?: Prisma.SortOrder + is_public?: Prisma.SortOrder + is_domestic?: Prisma.SortOrder + created_at?: Prisma.SortOrder + updated_at?: Prisma.SortOrder +} + +export type StockKeepingUnitsAvgOrderByAggregateInput = { + VAT?: Prisma.SortOrder +} + +export type StockKeepingUnitsMaxOrderByAggregateInput = { + id?: Prisma.SortOrder + code?: Prisma.SortOrder + name?: Prisma.SortOrder + VAT?: Prisma.SortOrder + type?: Prisma.SortOrder + is_public?: Prisma.SortOrder + is_domestic?: Prisma.SortOrder + created_at?: Prisma.SortOrder + updated_at?: Prisma.SortOrder +} + +export type StockKeepingUnitsMinOrderByAggregateInput = { + id?: Prisma.SortOrder + code?: Prisma.SortOrder + name?: Prisma.SortOrder + VAT?: Prisma.SortOrder + type?: Prisma.SortOrder + is_public?: Prisma.SortOrder + is_domestic?: Prisma.SortOrder + created_at?: Prisma.SortOrder + updated_at?: Prisma.SortOrder +} + +export type StockKeepingUnitsSumOrderByAggregateInput = { + VAT?: Prisma.SortOrder +} + +export type StockKeepingUnitsCreateNestedOneWithoutGoodsInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.StockKeepingUnitsCreateOrConnectWithoutGoodsInput + connect?: Prisma.StockKeepingUnitsWhereUniqueInput +} + +export type StockKeepingUnitsUpdateOneRequiredWithoutGoodsNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.StockKeepingUnitsCreateOrConnectWithoutGoodsInput + upsert?: Prisma.StockKeepingUnitsUpsertWithoutGoodsInput + connect?: Prisma.StockKeepingUnitsWhereUniqueInput + update?: Prisma.XOR, Prisma.StockKeepingUnitsUncheckedUpdateWithoutGoodsInput> +} + +export type DecimalFieldUpdateOperationsInput = { + set?: runtime.Decimal | runtime.DecimalJsLike | number | string + increment?: runtime.Decimal | runtime.DecimalJsLike | number | string + decrement?: runtime.Decimal | runtime.DecimalJsLike | number | string + multiply?: runtime.Decimal | runtime.DecimalJsLike | number | string + divide?: runtime.Decimal | runtime.DecimalJsLike | number | string +} + +export type EnumSKUGuildTypeFieldUpdateOperationsInput = { + set?: $Enums.SKUGuildType +} + +export type StockKeepingUnitsCreateWithoutGoodsInput = { + id?: string + code: string + name: string + VAT: runtime.Decimal | runtime.DecimalJsLike | number | string + type?: $Enums.SKUGuildType + is_public?: boolean + is_domestic?: boolean + created_at?: Date | string + updated_at?: Date | string +} + +export type StockKeepingUnitsUncheckedCreateWithoutGoodsInput = { + id?: string + code: string + name: string + VAT: runtime.Decimal | runtime.DecimalJsLike | number | string + type?: $Enums.SKUGuildType + is_public?: boolean + is_domestic?: boolean + created_at?: Date | string + updated_at?: Date | string +} + +export type StockKeepingUnitsCreateOrConnectWithoutGoodsInput = { + where: Prisma.StockKeepingUnitsWhereUniqueInput + create: Prisma.XOR +} + +export type StockKeepingUnitsUpsertWithoutGoodsInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.StockKeepingUnitsWhereInput +} + +export type StockKeepingUnitsUpdateToOneWithWhereWithoutGoodsInput = { + where?: Prisma.StockKeepingUnitsWhereInput + data: Prisma.XOR +} + +export type StockKeepingUnitsUpdateWithoutGoodsInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + code?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + VAT?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string + type?: Prisma.EnumSKUGuildTypeFieldUpdateOperationsInput | $Enums.SKUGuildType + is_public?: Prisma.BoolFieldUpdateOperationsInput | boolean + is_domestic?: Prisma.BoolFieldUpdateOperationsInput | boolean + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type StockKeepingUnitsUncheckedUpdateWithoutGoodsInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + code?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + VAT?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string + type?: Prisma.EnumSKUGuildTypeFieldUpdateOperationsInput | $Enums.SKUGuildType + is_public?: Prisma.BoolFieldUpdateOperationsInput | boolean + is_domestic?: Prisma.BoolFieldUpdateOperationsInput | boolean + created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + + +/** + * Count Type StockKeepingUnitsCountOutputType + */ + +export type StockKeepingUnitsCountOutputType = { + goods: number +} + +export type StockKeepingUnitsCountOutputTypeSelect = { + goods?: boolean | StockKeepingUnitsCountOutputTypeCountGoodsArgs +} + +/** + * StockKeepingUnitsCountOutputType without action + */ +export type StockKeepingUnitsCountOutputTypeDefaultArgs = { + /** + * Select specific fields to fetch from the StockKeepingUnitsCountOutputType + */ + select?: Prisma.StockKeepingUnitsCountOutputTypeSelect | null +} + +/** + * StockKeepingUnitsCountOutputType without action + */ +export type StockKeepingUnitsCountOutputTypeCountGoodsArgs = { + where?: Prisma.GoodWhereInput +} + + +export type StockKeepingUnitsSelect = runtime.Types.Extensions.GetSelect<{ + id?: boolean + code?: boolean + name?: boolean + VAT?: boolean + type?: boolean + is_public?: boolean + is_domestic?: boolean + created_at?: boolean + updated_at?: boolean + goods?: boolean | Prisma.StockKeepingUnits$goodsArgs + _count?: boolean | Prisma.StockKeepingUnitsCountOutputTypeDefaultArgs +}, ExtArgs["result"]["stockKeepingUnits"]> + + + +export type StockKeepingUnitsSelectScalar = { + id?: boolean + code?: boolean + name?: boolean + VAT?: boolean + type?: boolean + is_public?: boolean + is_domestic?: boolean + created_at?: boolean + updated_at?: boolean +} + +export type StockKeepingUnitsOmit = runtime.Types.Extensions.GetOmit<"id" | "code" | "name" | "VAT" | "type" | "is_public" | "is_domestic" | "created_at" | "updated_at", ExtArgs["result"]["stockKeepingUnits"]> +export type StockKeepingUnitsInclude = { + goods?: boolean | Prisma.StockKeepingUnits$goodsArgs + _count?: boolean | Prisma.StockKeepingUnitsCountOutputTypeDefaultArgs +} + +export type $StockKeepingUnitsPayload = { + name: "StockKeepingUnits" + objects: { + goods: Prisma.$GoodPayload[] + } + scalars: runtime.Types.Extensions.GetPayloadResult<{ + id: string + code: string + name: string + VAT: runtime.Decimal + type: $Enums.SKUGuildType + is_public: boolean + is_domestic: boolean + created_at: Date + updated_at: Date + }, ExtArgs["result"]["stockKeepingUnits"]> + composites: {} +} + +export type StockKeepingUnitsGetPayload = runtime.Types.Result.GetResult + +export type StockKeepingUnitsCountArgs = + Omit & { + select?: StockKeepingUnitsCountAggregateInputType | true + } + +export interface StockKeepingUnitsDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['StockKeepingUnits'], meta: { name: 'StockKeepingUnits' } } + /** + * Find zero or one StockKeepingUnits that matches the filter. + * @param {StockKeepingUnitsFindUniqueArgs} args - Arguments to find a StockKeepingUnits + * @example + * // Get one StockKeepingUnits + * const stockKeepingUnits = await prisma.stockKeepingUnits.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__StockKeepingUnitsClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find one StockKeepingUnits that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {StockKeepingUnitsFindUniqueOrThrowArgs} args - Arguments to find a StockKeepingUnits + * @example + * // Get one StockKeepingUnits + * const stockKeepingUnits = await prisma.stockKeepingUnits.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__StockKeepingUnitsClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find the first StockKeepingUnits that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StockKeepingUnitsFindFirstArgs} args - Arguments to find a StockKeepingUnits + * @example + * // Get one StockKeepingUnits + * const stockKeepingUnits = await prisma.stockKeepingUnits.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__StockKeepingUnitsClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> + + /** + * Find the first StockKeepingUnits that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StockKeepingUnitsFindFirstOrThrowArgs} args - Arguments to find a StockKeepingUnits + * @example + * // Get one StockKeepingUnits + * const stockKeepingUnits = await prisma.stockKeepingUnits.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__StockKeepingUnitsClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Find zero or more StockKeepingUnits that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StockKeepingUnitsFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all StockKeepingUnits + * const stockKeepingUnits = await prisma.stockKeepingUnits.findMany() + * + * // Get first 10 StockKeepingUnits + * const stockKeepingUnits = await prisma.stockKeepingUnits.findMany({ take: 10 }) + * + * // Only select the `id` + * const stockKeepingUnitsWithIdOnly = await prisma.stockKeepingUnits.findMany({ select: { id: true } }) + * + */ + findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> + + /** + * Create a StockKeepingUnits. + * @param {StockKeepingUnitsCreateArgs} args - Arguments to create a StockKeepingUnits. + * @example + * // Create one StockKeepingUnits + * const StockKeepingUnits = await prisma.stockKeepingUnits.create({ + * data: { + * // ... data to create a StockKeepingUnits + * } + * }) + * + */ + create(args: Prisma.SelectSubset>): Prisma.Prisma__StockKeepingUnitsClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Create many StockKeepingUnits. + * @param {StockKeepingUnitsCreateManyArgs} args - Arguments to create many StockKeepingUnits. + * @example + * // Create many StockKeepingUnits + * const stockKeepingUnits = await prisma.stockKeepingUnits.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Delete a StockKeepingUnits. + * @param {StockKeepingUnitsDeleteArgs} args - Arguments to delete one StockKeepingUnits. + * @example + * // Delete one StockKeepingUnits + * const StockKeepingUnits = await prisma.stockKeepingUnits.delete({ + * where: { + * // ... filter to delete one StockKeepingUnits + * } + * }) + * + */ + delete(args: Prisma.SelectSubset>): Prisma.Prisma__StockKeepingUnitsClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Update one StockKeepingUnits. + * @param {StockKeepingUnitsUpdateArgs} args - Arguments to update one StockKeepingUnits. + * @example + * // Update one StockKeepingUnits + * const stockKeepingUnits = await prisma.stockKeepingUnits.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: Prisma.SelectSubset>): Prisma.Prisma__StockKeepingUnitsClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + /** + * Delete zero or more StockKeepingUnits. + * @param {StockKeepingUnitsDeleteManyArgs} args - Arguments to filter StockKeepingUnits to delete. + * @example + * // Delete a few StockKeepingUnits + * const { count } = await prisma.stockKeepingUnits.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more StockKeepingUnits. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StockKeepingUnitsUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many StockKeepingUnits + * const stockKeepingUnits = await prisma.stockKeepingUnits.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one StockKeepingUnits. + * @param {StockKeepingUnitsUpsertArgs} args - Arguments to update or create a StockKeepingUnits. + * @example + * // Update or create a StockKeepingUnits + * const stockKeepingUnits = await prisma.stockKeepingUnits.upsert({ + * create: { + * // ... data to create a StockKeepingUnits + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the StockKeepingUnits we want to update + * } + * }) + */ + upsert(args: Prisma.SelectSubset>): Prisma.Prisma__StockKeepingUnitsClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> + + + /** + * Count the number of StockKeepingUnits. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StockKeepingUnitsCountArgs} args - Arguments to filter StockKeepingUnits to count. + * @example + * // Count the number of StockKeepingUnits + * const count = await prisma.stockKeepingUnits.count({ + * where: { + * // ... the filter for the StockKeepingUnits we want to count + * } + * }) + **/ + count( + args?: Prisma.Subset, + ): Prisma.PrismaPromise< + T extends runtime.Types.Utils.Record<'select', any> + ? T['select'] extends true + ? number + : Prisma.GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a StockKeepingUnits. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StockKeepingUnitsAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Prisma.Subset): Prisma.PrismaPromise> + + /** + * Group by StockKeepingUnits. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StockKeepingUnitsGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends StockKeepingUnitsGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: StockKeepingUnitsGroupByArgs['orderBy'] } + : { orderBy?: StockKeepingUnitsGroupByArgs['orderBy'] }, + OrderFields extends Prisma.ExcludeUnderscoreKeys>>, + ByFields extends Prisma.MaybeTupleToUnion, + ByValid extends Prisma.Has, + HavingFields extends Prisma.GetHavingFields, + HavingValid extends Prisma.Has, + ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, + InputErrors extends ByEmpty extends Prisma.True + ? `Error: "by" must not be empty.` + : HavingValid extends Prisma.False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: Prisma.SubsetIntersection & InputErrors): {} extends InputErrors ? GetStockKeepingUnitsGroupByPayload : Prisma.PrismaPromise +/** + * Fields of the StockKeepingUnits model + */ +readonly fields: StockKeepingUnitsFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for StockKeepingUnits. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ +export interface Prisma__StockKeepingUnitsClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + goods = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): runtime.Types.Utils.JsPromise +} + + + + +/** + * Fields of the StockKeepingUnits model + */ +export interface StockKeepingUnitsFieldRefs { + readonly id: Prisma.FieldRef<"StockKeepingUnits", 'String'> + readonly code: Prisma.FieldRef<"StockKeepingUnits", 'String'> + readonly name: Prisma.FieldRef<"StockKeepingUnits", 'String'> + readonly VAT: Prisma.FieldRef<"StockKeepingUnits", 'Decimal'> + readonly type: Prisma.FieldRef<"StockKeepingUnits", 'SKUGuildType'> + readonly is_public: Prisma.FieldRef<"StockKeepingUnits", 'Boolean'> + readonly is_domestic: Prisma.FieldRef<"StockKeepingUnits", 'Boolean'> + readonly created_at: Prisma.FieldRef<"StockKeepingUnits", 'DateTime'> + readonly updated_at: Prisma.FieldRef<"StockKeepingUnits", 'DateTime'> +} + + +// Custom InputTypes +/** + * StockKeepingUnits findUnique + */ +export type StockKeepingUnitsFindUniqueArgs = { + /** + * Select specific fields to fetch from the StockKeepingUnits + */ + select?: Prisma.StockKeepingUnitsSelect | null + /** + * Omit specific fields from the StockKeepingUnits + */ + omit?: Prisma.StockKeepingUnitsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.StockKeepingUnitsInclude | null + /** + * Filter, which StockKeepingUnits to fetch. + */ + where: Prisma.StockKeepingUnitsWhereUniqueInput +} + +/** + * StockKeepingUnits findUniqueOrThrow + */ +export type StockKeepingUnitsFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the StockKeepingUnits + */ + select?: Prisma.StockKeepingUnitsSelect | null + /** + * Omit specific fields from the StockKeepingUnits + */ + omit?: Prisma.StockKeepingUnitsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.StockKeepingUnitsInclude | null + /** + * Filter, which StockKeepingUnits to fetch. + */ + where: Prisma.StockKeepingUnitsWhereUniqueInput +} + +/** + * StockKeepingUnits findFirst + */ +export type StockKeepingUnitsFindFirstArgs = { + /** + * Select specific fields to fetch from the StockKeepingUnits + */ + select?: Prisma.StockKeepingUnitsSelect | null + /** + * Omit specific fields from the StockKeepingUnits + */ + omit?: Prisma.StockKeepingUnitsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.StockKeepingUnitsInclude | null + /** + * Filter, which StockKeepingUnits to fetch. + */ + where?: Prisma.StockKeepingUnitsWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of StockKeepingUnits to fetch. + */ + orderBy?: Prisma.StockKeepingUnitsOrderByWithRelationInput | Prisma.StockKeepingUnitsOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for StockKeepingUnits. + */ + cursor?: Prisma.StockKeepingUnitsWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` StockKeepingUnits from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` StockKeepingUnits. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of StockKeepingUnits. + */ + distinct?: Prisma.StockKeepingUnitsScalarFieldEnum | Prisma.StockKeepingUnitsScalarFieldEnum[] +} + +/** + * StockKeepingUnits findFirstOrThrow + */ +export type StockKeepingUnitsFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the StockKeepingUnits + */ + select?: Prisma.StockKeepingUnitsSelect | null + /** + * Omit specific fields from the StockKeepingUnits + */ + omit?: Prisma.StockKeepingUnitsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.StockKeepingUnitsInclude | null + /** + * Filter, which StockKeepingUnits to fetch. + */ + where?: Prisma.StockKeepingUnitsWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of StockKeepingUnits to fetch. + */ + orderBy?: Prisma.StockKeepingUnitsOrderByWithRelationInput | Prisma.StockKeepingUnitsOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for StockKeepingUnits. + */ + cursor?: Prisma.StockKeepingUnitsWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` StockKeepingUnits from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` StockKeepingUnits. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of StockKeepingUnits. + */ + distinct?: Prisma.StockKeepingUnitsScalarFieldEnum | Prisma.StockKeepingUnitsScalarFieldEnum[] +} + +/** + * StockKeepingUnits findMany + */ +export type StockKeepingUnitsFindManyArgs = { + /** + * Select specific fields to fetch from the StockKeepingUnits + */ + select?: Prisma.StockKeepingUnitsSelect | null + /** + * Omit specific fields from the StockKeepingUnits + */ + omit?: Prisma.StockKeepingUnitsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.StockKeepingUnitsInclude | null + /** + * Filter, which StockKeepingUnits to fetch. + */ + where?: Prisma.StockKeepingUnitsWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of StockKeepingUnits to fetch. + */ + orderBy?: Prisma.StockKeepingUnitsOrderByWithRelationInput | Prisma.StockKeepingUnitsOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing StockKeepingUnits. + */ + cursor?: Prisma.StockKeepingUnitsWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` StockKeepingUnits from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` StockKeepingUnits. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of StockKeepingUnits. + */ + distinct?: Prisma.StockKeepingUnitsScalarFieldEnum | Prisma.StockKeepingUnitsScalarFieldEnum[] +} + +/** + * StockKeepingUnits create + */ +export type StockKeepingUnitsCreateArgs = { + /** + * Select specific fields to fetch from the StockKeepingUnits + */ + select?: Prisma.StockKeepingUnitsSelect | null + /** + * Omit specific fields from the StockKeepingUnits + */ + omit?: Prisma.StockKeepingUnitsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.StockKeepingUnitsInclude | null + /** + * The data needed to create a StockKeepingUnits. + */ + data: Prisma.XOR +} + +/** + * StockKeepingUnits createMany + */ +export type StockKeepingUnitsCreateManyArgs = { + /** + * The data used to create many StockKeepingUnits. + */ + data: Prisma.StockKeepingUnitsCreateManyInput | Prisma.StockKeepingUnitsCreateManyInput[] + skipDuplicates?: boolean +} + +/** + * StockKeepingUnits update + */ +export type StockKeepingUnitsUpdateArgs = { + /** + * Select specific fields to fetch from the StockKeepingUnits + */ + select?: Prisma.StockKeepingUnitsSelect | null + /** + * Omit specific fields from the StockKeepingUnits + */ + omit?: Prisma.StockKeepingUnitsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.StockKeepingUnitsInclude | null + /** + * The data needed to update a StockKeepingUnits. + */ + data: Prisma.XOR + /** + * Choose, which StockKeepingUnits to update. + */ + where: Prisma.StockKeepingUnitsWhereUniqueInput +} + +/** + * StockKeepingUnits updateMany + */ +export type StockKeepingUnitsUpdateManyArgs = { + /** + * The data used to update StockKeepingUnits. + */ + data: Prisma.XOR + /** + * Filter which StockKeepingUnits to update + */ + where?: Prisma.StockKeepingUnitsWhereInput + /** + * Limit how many StockKeepingUnits to update. + */ + limit?: number +} + +/** + * StockKeepingUnits upsert + */ +export type StockKeepingUnitsUpsertArgs = { + /** + * Select specific fields to fetch from the StockKeepingUnits + */ + select?: Prisma.StockKeepingUnitsSelect | null + /** + * Omit specific fields from the StockKeepingUnits + */ + omit?: Prisma.StockKeepingUnitsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.StockKeepingUnitsInclude | null + /** + * The filter to search for the StockKeepingUnits to update in case it exists. + */ + where: Prisma.StockKeepingUnitsWhereUniqueInput + /** + * In case the StockKeepingUnits found by the `where` argument doesn't exist, create a new StockKeepingUnits with this data. + */ + create: Prisma.XOR + /** + * In case the StockKeepingUnits was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR +} + +/** + * StockKeepingUnits delete + */ +export type StockKeepingUnitsDeleteArgs = { + /** + * Select specific fields to fetch from the StockKeepingUnits + */ + select?: Prisma.StockKeepingUnitsSelect | null + /** + * Omit specific fields from the StockKeepingUnits + */ + omit?: Prisma.StockKeepingUnitsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.StockKeepingUnitsInclude | null + /** + * Filter which StockKeepingUnits to delete. + */ + where: Prisma.StockKeepingUnitsWhereUniqueInput +} + +/** + * StockKeepingUnits deleteMany + */ +export type StockKeepingUnitsDeleteManyArgs = { + /** + * Filter which StockKeepingUnits to delete + */ + where?: Prisma.StockKeepingUnitsWhereInput + /** + * Limit how many StockKeepingUnits to delete. + */ + limit?: number +} + +/** + * StockKeepingUnits.goods + */ +export type StockKeepingUnits$goodsArgs = { + /** + * Select specific fields to fetch from the Good + */ + select?: Prisma.GoodSelect | null + /** + * Omit specific fields from the Good + */ + omit?: Prisma.GoodOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.GoodInclude | null + where?: Prisma.GoodWhereInput + orderBy?: Prisma.GoodOrderByWithRelationInput | Prisma.GoodOrderByWithRelationInput[] + cursor?: Prisma.GoodWhereUniqueInput + take?: number + skip?: number + distinct?: Prisma.GoodScalarFieldEnum | Prisma.GoodScalarFieldEnum[] +} + +/** + * StockKeepingUnits without action + */ +export type StockKeepingUnitsDefaultArgs = { + /** + * Select specific fields to fetch from the StockKeepingUnits + */ + select?: Prisma.StockKeepingUnitsSelect | null + /** + * Omit specific fields from the StockKeepingUnits + */ + omit?: Prisma.StockKeepingUnitsOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.StockKeepingUnitsInclude | null +} diff --git a/src/modules/admin/admin.module.ts b/src/modules/admin/admin.module.ts index 7f14685..5dab418 100644 --- a/src/modules/admin/admin.module.ts +++ b/src/modules/admin/admin.module.ts @@ -9,6 +9,7 @@ import { AdminGuildsModule } from './guilds/guilds.module' import { AdminLicensesModule } from './licenses/licenses.module' import { AdminPartnersModule } from './partners/partners.module' import { AdminProvidersModule } from './providers/providers.module' +import { AdminStockKeepingUnitsModule } from './stock-keeping-units/stock-keeping-units.module' import { AdminTranslateModule } from './translate/translate.module' import { AdminUserAccountsModule } from './users/accounts/accounts.module' import { AdminUsersModule } from './users/users.module' @@ -25,6 +26,7 @@ import { AdminUsersModule } from './users/users.module' AdminGuildsModule, AdminDeviceBrandsModule, AdminDevicesModule, + AdminStockKeepingUnitsModule, AdminLicensesModule, AdminConsumersModule, ], diff --git a/src/modules/admin/guilds/goods/dto/create-good.dto.ts b/src/modules/admin/guilds/goods/dto/create-good.dto.ts index 355ca7b..334e768 100644 --- a/src/modules/admin/guilds/goods/dto/create-good.dto.ts +++ b/src/modules/admin/guilds/goods/dto/create-good.dto.ts @@ -1,23 +1,23 @@ -import { GoodPricingModel, UnitType } from '@/generated/prisma/enums' +import { GoodPricingModel } from '@/generated/prisma/enums' import { ApiProperty, PartialType } from '@nestjs/swagger' import { IsEnum, IsOptional, IsString } from 'class-validator' export class CreateGuildGoodDto { + @ApiProperty({ required: true }) @IsString() - @ApiProperty() name: string - @IsString() - @ApiProperty() - sku: string - - @IsString() @ApiProperty({ required: true }) + @IsString() + sku_id: string + + @ApiProperty({ required: true }) + @IsString() category_id: string - @IsEnum(UnitType) - @ApiProperty({ required: true, enum: UnitType }) - unit_type: UnitType + @ApiProperty({ required: true }) + @IsString() + measure_unit_id: string @IsEnum(GoodPricingModel) @ApiProperty({ required: true, enum: GoodPricingModel }) diff --git a/src/modules/admin/guilds/goods/goods.service.ts b/src/modules/admin/guilds/goods/goods.service.ts index 8fb0e65..04369c3 100644 --- a/src/modules/admin/guilds/goods/goods.service.ts +++ b/src/modules/admin/guilds/goods/goods.service.ts @@ -17,10 +17,20 @@ export class GoodsService { id: true, name: true, pricing_model: true, - unit_type: true, image_url: true, - sku: true, description: true, + sku: { + select: { + id: true, + name: true, + }, + }, + measure_unit: { + select: { + id: true, + name: true, + }, + }, category: { select: { id: true, @@ -62,7 +72,7 @@ export class GoodsService { } async create(data: CreateGuildGoodDto, file: Express.Multer.File) { - const { category_id, ...rest } = data + const { category_id, measure_unit_id, sku_id, ...rest } = data const good = await this.prisma.$transaction(async tx => { let image_url = '' @@ -79,6 +89,16 @@ export class GoodsService { ...rest, is_default_guild_good: true, image_url, + sku: { + connect: { + id: sku_id, + }, + }, + measure_unit: { + connect: { + id: measure_unit_id, + }, + }, category: { connect: { id: category_id, @@ -93,7 +113,7 @@ export class GoodsService { } async update(id: string, data: UpdateGuildGoodDto, file: Express.Multer.File) { - const { category_id, ...rest } = data + const { category_id, measure_unit_id, sku_id, ...rest } = data const good = await this.prisma.$transaction(async tx => { let image_url = '' @@ -120,6 +140,16 @@ export class GoodsService { ...rest, is_default_guild_good: true, image_url, + sku: { + connect: { + id: sku_id, + }, + }, + measure_unit: { + connect: { + id: measure_unit_id, + }, + }, category: { connect: { id: category_id, diff --git a/src/modules/admin/stock-keeping-units/dto/create-stock-keeping-unit.dto.ts b/src/modules/admin/stock-keeping-units/dto/create-stock-keeping-unit.dto.ts new file mode 100644 index 0000000..b27ac78 --- /dev/null +++ b/src/modules/admin/stock-keeping-units/dto/create-stock-keeping-unit.dto.ts @@ -0,0 +1,32 @@ +import { SKUGuildType } from '@/generated/prisma/enums' +import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger' +import { Type } from 'class-transformer' +import { IsBoolean, IsEnum, IsNumber, IsString, Min } from 'class-validator' + +export class CreateStockKeepingUnitDto { + @ApiProperty() + @IsString() + code: string + + @ApiProperty() + @IsString() + name: string + + @ApiProperty() + @Type(() => Number) + @IsNumber() + @Min(0) + VAT: number + + @ApiPropertyOptional({ enum: SKUGuildType, default: SKUGuildType.GOLD }) + @IsEnum(SKUGuildType) + type: SKUGuildType = SKUGuildType.GOLD + + @ApiPropertyOptional({ default: true }) + @IsBoolean() + is_public: boolean = true + + @ApiPropertyOptional({ default: true }) + @IsBoolean() + is_domestic: boolean = true +} diff --git a/src/modules/admin/stock-keeping-units/dto/stock-keeping-units-response.dto.ts b/src/modules/admin/stock-keeping-units/dto/stock-keeping-units-response.dto.ts new file mode 100644 index 0000000..9222e85 --- /dev/null +++ b/src/modules/admin/stock-keeping-units/dto/stock-keeping-units-response.dto.ts @@ -0,0 +1,11 @@ +import type { StockKeepingUnitsService } from '../stock-keeping-units.service' + +export type StockKeepingUnitsServiceCreateResponseDto = Awaited< + ReturnType +> +export type StockKeepingUnitsServiceFindAllResponseDto = Awaited< + ReturnType +> +export type StockKeepingUnitsServiceUpdateResponseDto = Awaited< + ReturnType +> diff --git a/src/modules/admin/stock-keeping-units/dto/update-stock-keeping-unit.dto.ts b/src/modules/admin/stock-keeping-units/dto/update-stock-keeping-unit.dto.ts new file mode 100644 index 0000000..0d8462d --- /dev/null +++ b/src/modules/admin/stock-keeping-units/dto/update-stock-keeping-unit.dto.ts @@ -0,0 +1,4 @@ +import { PartialType } from '@nestjs/swagger' +import { CreateStockKeepingUnitDto } from './create-stock-keeping-unit.dto' + +export class UpdateStockKeepingUnitDto extends PartialType(CreateStockKeepingUnitDto) {} diff --git a/src/modules/admin/stock-keeping-units/stock-keeping-units.controller.ts b/src/modules/admin/stock-keeping-units/stock-keeping-units.controller.ts new file mode 100644 index 0000000..a86b8a0 --- /dev/null +++ b/src/modules/admin/stock-keeping-units/stock-keeping-units.controller.ts @@ -0,0 +1,36 @@ +import { Body, Controller, Get, Param, Patch, Post } from '@nestjs/common' +import { ApiTags } from '@nestjs/swagger' +import type { + StockKeepingUnitsServiceCreateResponseDto, + StockKeepingUnitsServiceFindAllResponseDto, + StockKeepingUnitsServiceUpdateResponseDto, +} from './dto/stock-keeping-units-response.dto' +import { CreateStockKeepingUnitDto } from './dto/create-stock-keeping-unit.dto' +import { UpdateStockKeepingUnitDto } from './dto/update-stock-keeping-unit.dto' +import { StockKeepingUnitsService } from './stock-keeping-units.service' + +@ApiTags('AdminStockKeepingUnits') +@Controller('admin/stock-keeping-units') +export class StockKeepingUnitsController { + constructor(private readonly service: StockKeepingUnitsService) {} + + @Get() + async findAll(): Promise { + return this.service.findAll() + } + + @Post() + async create( + @Body() data: CreateStockKeepingUnitDto, + ): Promise { + return this.service.create(data) + } + + @Patch(':id') + async update( + @Param('id') id: string, + @Body() data: UpdateStockKeepingUnitDto, + ): Promise { + return this.service.update(id, data) + } +} diff --git a/src/modules/admin/stock-keeping-units/stock-keeping-units.module.ts b/src/modules/admin/stock-keeping-units/stock-keeping-units.module.ts new file mode 100644 index 0000000..38bba75 --- /dev/null +++ b/src/modules/admin/stock-keeping-units/stock-keeping-units.module.ts @@ -0,0 +1,11 @@ +import { PrismaModule } from '@/prisma/prisma.module' +import { Module } from '@nestjs/common' +import { StockKeepingUnitsController } from './stock-keeping-units.controller' +import { StockKeepingUnitsService } from './stock-keeping-units.service' + +@Module({ + imports: [PrismaModule], + controllers: [StockKeepingUnitsController], + providers: [StockKeepingUnitsService], +}) +export class AdminStockKeepingUnitsModule {} diff --git a/src/modules/admin/stock-keeping-units/stock-keeping-units.service.ts b/src/modules/admin/stock-keeping-units/stock-keeping-units.service.ts new file mode 100644 index 0000000..5c156c9 --- /dev/null +++ b/src/modules/admin/stock-keeping-units/stock-keeping-units.service.ts @@ -0,0 +1,30 @@ +import { PrismaService } from '@/prisma/prisma.service' +import { Injectable } from '@nestjs/common' +import { ResponseMapper } from 'common/response/response-mapper' +import { CreateStockKeepingUnitDto } from './dto/create-stock-keeping-unit.dto' +import { UpdateStockKeepingUnitDto } from './dto/update-stock-keeping-unit.dto' + +@Injectable() +export class StockKeepingUnitsService { + constructor(private readonly prisma: PrismaService) {} + + async findAll() { + const items = await this.prisma.stockKeepingUnits.findMany({ + orderBy: { created_at: 'desc' }, + }) + return ResponseMapper.list(items) + } + + async create(data: CreateStockKeepingUnitDto) { + const item = await this.prisma.stockKeepingUnits.create({ data }) + return ResponseMapper.create(item) + } + + async update(id: string, data: UpdateStockKeepingUnitDto) { + const item = await this.prisma.stockKeepingUnits.update({ + where: { id }, + data, + }) + return ResponseMapper.update(item) + } +} diff --git a/src/modules/catalog/catalog.controller.ts b/src/modules/catalog/catalog.controller.ts index e2626f0..b042887 100644 --- a/src/modules/catalog/catalog.controller.ts +++ b/src/modules/catalog/catalog.controller.ts @@ -2,7 +2,15 @@ import { PublicWithToken } from '@/common/decorators/withToken.decorator' import { Controller, Get, Param } from '@nestjs/common' import { ApiTags } from '@nestjs/swagger' import { CatalogsService } from './catalog.service' -import type { CatalogsServiceGetDeviceBrandsResponseDto, CatalogsServiceGetDevicesResponseDto, CatalogsServiceGetGuildGoodCategoriesResponseDto, CatalogsServiceGetGuildsResponseDto, CatalogsServiceGetProvidersResponseDto } from './dto/catalog-response.dto' +import type { + CatalogsServiceGetDeviceBrandsResponseDto, + CatalogsServiceGetDevicesResponseDto, + CatalogsServiceGetGuildGoodCategoriesResponseDto, + CatalogsServiceGetGuildsResponseDto, + CatalogsServiceGetMeasurementsResponseDto, + CatalogsServiceGetProvidersResponseDto, + CatalogsServiceGetSKUResponseDto, +} from './dto/catalog-response.dto' @ApiTags('Catalog') @Controller('catalog') @@ -33,9 +41,27 @@ export class CatalogsController { return this.catalogService.getDeviceBrands() } + @Get('sku') + @PublicWithToken() + async getSKU( + @Param('search') search: string, + ): Promise { + return this.catalogService.getSKU(search) + } + + @Get('measure_units') + @PublicWithToken() + async getMeasurements( + @Param('search') search: string, + ): Promise { + return this.catalogService.getMeasurements() + } + @Get('guilds/:guildId/good_categories') @PublicWithToken() - async getGuildGoodCategories(@Param('guildId') guild_id: string): Promise { + async getGuildGoodCategories( + @Param('guildId') guild_id: string, + ): Promise { return this.catalogService.getGuildGoodCategories(guild_id) } } diff --git a/src/modules/catalog/catalog.service.ts b/src/modules/catalog/catalog.service.ts index 7473413..a950360 100644 --- a/src/modules/catalog/catalog.service.ts +++ b/src/modules/catalog/catalog.service.ts @@ -39,6 +39,35 @@ export class CatalogsService { return ResponseMapper.list(items) } + async getMeasurements() { + const items = await this.prisma.measureUnits.findMany({ + select: { + id: true, + name: true, + code: true, + }, + }) + return ResponseMapper.list(items) + } + + async getSKU(search: string) { + const items = await this.prisma.stockKeepingUnits.findMany({ + // where: { + // OR: [{ code: { contains: search } }, { name: { contains: search } }], + // }, + select: { + id: true, + code: true, + name: true, + is_domestic: true, + is_public: true, + VAT: true, + }, + take: 100, + }) + return ResponseMapper.list(items) + } + async getGuildGoodCategories(guild_id: string) { const items = await this.prisma.goodCategory.findMany({ where: { diff --git a/src/modules/catalog/dto/catalog-response.dto.ts b/src/modules/catalog/dto/catalog-response.dto.ts index 1960e8f..15d4045 100644 --- a/src/modules/catalog/dto/catalog-response.dto.ts +++ b/src/modules/catalog/dto/catalog-response.dto.ts @@ -1,7 +1,23 @@ import type { CatalogsService } from '../catalog.service' -export type CatalogsServiceGetDeviceBrandsResponseDto = Awaited> -export type CatalogsServiceGetDevicesResponseDto = Awaited> -export type CatalogsServiceGetGuildGoodCategoriesResponseDto = Awaited> -export type CatalogsServiceGetGuildsResponseDto = Awaited> -export type CatalogsServiceGetProvidersResponseDto = Awaited> +export type CatalogsServiceGetDeviceBrandsResponseDto = Awaited< + ReturnType +> +export type CatalogsServiceGetDevicesResponseDto = Awaited< + ReturnType +> +export type CatalogsServiceGetGuildGoodCategoriesResponseDto = Awaited< + ReturnType +> +export type CatalogsServiceGetGuildsResponseDto = Awaited< + ReturnType +> +export type CatalogsServiceGetProvidersResponseDto = Awaited< + ReturnType +> +export type CatalogsServiceGetSKUResponseDto = Awaited< + ReturnType +> +export type CatalogsServiceGetMeasurementsResponseDto = Awaited< + ReturnType +> diff --git a/src/modules/consumer/business-activities/complexes/poses/sales-invoices/sales-invoices.service.ts b/src/modules/consumer/business-activities/complexes/poses/sales-invoices/sales-invoices.service.ts index 7ba3a43..281fbc2 100644 --- a/src/modules/consumer/business-activities/complexes/poses/sales-invoices/sales-invoices.service.ts +++ b/src/modules/consumer/business-activities/complexes/poses/sales-invoices/sales-invoices.service.ts @@ -35,7 +35,9 @@ export class SalesInvoicesService { items: { select: { - unit_type: true, + measure_unit_code: true, + measure_unit_text: true, + sku_code: true, discount: true, notes: true, quantity: true, @@ -46,11 +48,21 @@ export class SalesInvoicesService { select: { id: true, name: true, - sku: true, + sku: { + select: { + id: true, + name: true, + }, + }, barcode: true, local_sku: true, pricing_model: true, - unit_type: true, + measure_unit: { + select: { + id: true, + name: true, + }, + }, category: { select: { id: true, diff --git a/src/modules/consumer/business-activities/goods/dto/good.dto.ts b/src/modules/consumer/business-activities/goods/dto/good.dto.ts index 7fc92f0..e21531d 100644 --- a/src/modules/consumer/business-activities/goods/dto/good.dto.ts +++ b/src/modules/consumer/business-activities/goods/dto/good.dto.ts @@ -1,4 +1,4 @@ -import { GoodPricingModel, UnitType } from '@/generated/prisma/enums' +import { GoodPricingModel } from '@/generated/prisma/enums' import { ApiProperty, PartialType } from '@nestjs/swagger' import { IsEnum, IsOptional, IsString } from 'class-validator' @@ -9,15 +9,15 @@ export class CreateGoodDto { @IsString() @ApiProperty({ required: true }) - sku: string + sku_id: string @IsString() @ApiProperty({ required: true }) category_id: string - @IsEnum(UnitType) - @ApiProperty({ required: true, enum: UnitType }) - unit_type: UnitType + @ApiProperty({ required: true }) + @IsString() + measure_unit_id: string @IsEnum(GoodPricingModel) @ApiProperty({ required: true, enum: GoodPricingModel }) diff --git a/src/modules/consumer/business-activities/goods/goods.service.ts b/src/modules/consumer/business-activities/goods/goods.service.ts index 9cdc3fb..7fe0e2f 100644 --- a/src/modules/consumer/business-activities/goods/goods.service.ts +++ b/src/modules/consumer/business-activities/goods/goods.service.ts @@ -12,11 +12,21 @@ export class ConsumerBusinessActivityGoodsService { id: true, name: true, barcode: true, - sku: true, local_sku: true, pricing_model: true, - unit_type: true, image_url: true, + sku: { + select: { + id: true, + name: true, + }, + }, + measure_unit: { + select: { + id: true, + name: true, + }, + }, category: { select: { id: true, @@ -55,7 +65,7 @@ export class ConsumerBusinessActivityGoodsService { } async create(business_activity_id: string, data: CreateGoodDto) { - const { category_id, ...rest } = data + const { category_id, sku_id, measure_unit_id, ...rest } = data const good = await this.prisma.good.create({ data: { @@ -70,6 +80,16 @@ export class ConsumerBusinessActivityGoodsService { id: category_id, }, }, + sku: { + connect: { + id: sku_id, + }, + }, + measure_unit: { + connect: { + id: measure_unit_id, + }, + }, }, }) return ResponseMapper.create(good) @@ -81,7 +101,7 @@ export class ConsumerBusinessActivityGoodsService { id: string, data: UpdateGoodDto, ) { - const { category_id, ...rest } = data + const { category_id, sku_id, measure_unit_id, ...rest } = data const good = await this.prisma.good.update({ where: { business_activity: { @@ -101,6 +121,16 @@ export class ConsumerBusinessActivityGoodsService { id: category_id, }, }, + sku: { + connect: { + id: sku_id, + }, + }, + measure_unit: { + connect: { + id: measure_unit_id, + }, + }, ...rest, }, }) diff --git a/src/modules/consumer/customers/customers.service.ts b/src/modules/consumer/customers/customers.service.ts index f1e2425..c3ab18e 100644 --- a/src/modules/consumer/customers/customers.service.ts +++ b/src/modules/consumer/customers/customers.service.ts @@ -27,7 +27,7 @@ export class consumerCustomersService { }, legal: { select: { - company_name: true, + name: true, registration_number: true, postal_code: true, economic_code: true, diff --git a/src/modules/consumer/customers/sale-invoices/sale-invoices.service.ts b/src/modules/consumer/customers/sale-invoices/sale-invoices.service.ts index a520ec5..459f0b6 100644 --- a/src/modules/consumer/customers/sale-invoices/sale-invoices.service.ts +++ b/src/modules/consumer/customers/sale-invoices/sale-invoices.service.ts @@ -132,7 +132,12 @@ export class CustomerSaleInvoicesService { id: true, name: true, pricing_model: true, - unit_type: true, + measure_unit: { + select: { + id: true, + name: true, + }, + }, category: { select: { id: true, diff --git a/src/modules/consumer/saleInvoices/fiscal/dto/tax-switch.dto.ts b/src/modules/consumer/saleInvoices/fiscal/dto/tax-switch.dto.ts index bdf2dac..6a8240a 100644 --- a/src/modules/consumer/saleInvoices/fiscal/dto/tax-switch.dto.ts +++ b/src/modules/consumer/saleInvoices/fiscal/dto/tax-switch.dto.ts @@ -1,3 +1,9 @@ +import { + CustomerType, + FiscalInvoiceCustomerType, + FiscalRequestType, + PartnerFiscalSwitchType, +} from '@/generated/prisma/enums' import { ApiProperty } from '@nestjs/swagger' import { Type } from 'class-transformer' import { @@ -17,7 +23,67 @@ export enum TaxSendStatus { PENDING = 'PENDING', } +export class CustomerLegalInfoDto { + @ApiProperty({ required: true }) + @IsString() + name: string + + @ApiProperty({ required: true }) + @IsString() + economic_code: string +} + +export class CustomerIndividualInfoDto { + @ApiProperty({ required: true }) + @IsString() + first_name: string + + @ApiProperty({ required: true }) + @IsString() + last_name: string + + @ApiProperty({ required: true }) + @IsString() + national_id: string + + @ApiProperty({ required: true }) + @IsString() + mobile_number: string +} + +export class CustomerInfoDto { + @ApiProperty({ required: true, enum: CustomerType }) + @IsEnum(CustomerType) + type: CustomerType + + @ApiProperty({}) + @Type(() => CustomerLegalInfoDto) + @ValidateNested({ each: true }) + legal_info?: CustomerLegalInfoDto + + @ApiProperty({}) + @Type(() => CustomerIndividualInfoDto) + @ValidateNested({ each: true }) + individual_info?: CustomerIndividualInfoDto +} export class TaxSwitchSendItemPayloadDto { + @ApiProperty({ required: true }) + @IsString() + sku: string + + @ApiProperty({ required: true }) + @IsString() + sku_vat: string + + @ApiProperty() + @IsOptional() + @IsString() + discount: string + + @ApiProperty({ required: true }) + @IsNumber() + unit_price: number + @ApiProperty() @IsString() invoice_item_id: string @@ -26,17 +92,13 @@ export class TaxSwitchSendItemPayloadDto { @IsNumber() quantity: number - @ApiProperty() - @IsNumber() - unit_price: number - @ApiProperty() @IsNumber() total_amount: number - @ApiProperty() + @ApiProperty({ required: true }) @IsString() - unit_type: string + measure_unit: string @ApiProperty({ required: false, nullable: true }) @IsOptional() @@ -52,41 +114,48 @@ export class TaxSwitchSendItemPayloadDto { @IsOptional() @IsObject() payload?: unknown - - @ApiProperty({ required: false, nullable: true, type: Object }) - @IsOptional() - @IsObject() - good_snapshot?: unknown } export class TaxSwitchSendPayloadDto { - @ApiProperty() - @IsString() - invoice_id: string + @ApiProperty({ required: true, enum: FiscalRequestType }) + @IsEnum(FiscalRequestType) + type: FiscalRequestType - @ApiProperty() - @IsString() - invoice_code: string - - @ApiProperty({ required: false, nullable: true }) - @IsOptional() - @IsDateString() - invoice_date: string | null - - @ApiProperty() - @IsNumber() - total_amount: number - - @ApiProperty({ required: false, nullable: true }) - @IsOptional() - @IsString() - provider_code?: string | null + @ApiProperty({ required: true, enum: FiscalInvoiceCustomerType }) + @IsEnum(FiscalInvoiceCustomerType) + customer_type: FiscalInvoiceCustomerType @ApiProperty({ type: [TaxSwitchSendItemPayloadDto] }) @IsArray() @ValidateNested({ each: true }) @Type(() => TaxSwitchSendItemPayloadDto) items: TaxSwitchSendItemPayloadDto[] + + @ApiProperty({ required: false }) + @Type(() => CustomerInfoDto) + @ValidateNested({ each: true }) + customer?: CustomerInfoDto + + @ApiProperty({ required: true, nullable: true }) + @IsString() + invoice_code: string + + @ApiProperty({ required: true, nullable: true }) + @IsOptional() + @IsDateString() + invoice_date: Date + + @ApiProperty({ required: true, nullable: true }) + @IsString() + invoice_id: string + + @ApiProperty() + @IsNumber() + total_amount: number + + @ApiProperty({ required: true, enum: PartnerFiscalSwitchType }) + @IsEnum(PartnerFiscalSwitchType) + provider_code: PartnerFiscalSwitchType } export class TaxSwitchSendItemResultDto { diff --git a/src/modules/consumer/saleInvoices/fiscal/sales-invoice-fiscal.service.ts b/src/modules/consumer/saleInvoices/fiscal/sales-invoice-fiscal.service.ts index 138663d..8ccc4df 100644 --- a/src/modules/consumer/saleInvoices/fiscal/sales-invoice-fiscal.service.ts +++ b/src/modules/consumer/saleInvoices/fiscal/sales-invoice-fiscal.service.ts @@ -1,6 +1,10 @@ import { PrismaService } from '@/prisma/prisma.service' import { Injectable, NotFoundException } from '@nestjs/common' -import { Prisma } from 'generated/prisma/client' +import { + FiscalInvoiceCustomerType, + FiscalRequestType, + Prisma, +} from 'generated/prisma/client' import { TaxSendStatus, TaxSwitchGetResultDto, @@ -137,7 +141,7 @@ export class SalesInvoiceFiscalService { invoiceId: string, posId: string, ): Promise { - const invoice = await this.prisma.salesInvoice.findFirst({ + const invoice = await this.prisma.salesInvoice.findUnique({ where: { id: invoiceId, pos_id: posId, @@ -153,7 +157,10 @@ export class SalesInvoiceFiscalService { quantity: true, unit_price: true, total_amount: true, - unit_type: true, + measure_unit_code: true, + measure_unit_text: true, + sku_code: true, + sku_vat: true, good_id: true, service_id: true, payload: true, @@ -162,9 +169,55 @@ export class SalesInvoiceFiscalService { }, pos: { select: { - provider: { + complex: { select: { - code: true, + business_activity: { + select: { + fiscal_id: true, + economic_code: true, + consumer: { + select: { + legal: { + select: { + partner: { + select: { + fiscal_switch_type: true, + }, + }, + }, + }, + individual: { + select: { + partner: { + select: { + fiscal_switch_type: true, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + customer: { + select: { + type: true, + individual: { + select: { + first_name: true, + last_name: true, + national_id: true, + mobile_number: true, + }, + }, + legal: { + select: { + name: true, + economic_code: true, }, }, }, @@ -176,18 +229,36 @@ export class SalesInvoiceFiscalService { throw new NotFoundException('فاکتور مورد نظر یافت نشد.') } + const { partner } = (invoice.pos.complex.business_activity.consumer.legal || + invoice.pos.complex.business_activity.consumer.individual)! + return { invoice_id: invoice.id, invoice_code: invoice.code, - invoice_date: invoice.invoice_date ? invoice.invoice_date.toISOString() : null, + invoice_date: invoice.invoice_date, total_amount: Number(invoice.total_amount), - provider_code: invoice.pos.provider?.code || null, + // provider_code: invoice.pos.provider?.code || null, + type: FiscalRequestType.MAIN, + provider_code: partner.fiscal_switch_type!, + customer_type: invoice.customer?.type + ? FiscalInvoiceCustomerType.Known + : FiscalInvoiceCustomerType.Unknown, + customer: invoice.customer?.type + ? { + type: invoice.customer.type, + legal_info: invoice.customer.legal ?? undefined, + individual_info: invoice.customer.individual ?? undefined, + } + : undefined, items: invoice.items.map(item => ({ invoice_item_id: item.id, quantity: Number(item.quantity), unit_price: Number(item.unit_price), total_amount: Number(item.total_amount), - unit_type: item.unit_type, + measure_unit: item.measure_unit_code, + sku: item.sku_code, + sku_vat: String(item.sku_vat), + discount: String((item.payload as Record)?.discount || '0'), good_id: item.good_id, service_id: item.service_id, payload: item.payload, diff --git a/src/modules/consumer/saleInvoices/fiscal/switch/nama/nama-fiscal-switch.adapter.ts b/src/modules/consumer/saleInvoices/fiscal/switch/nama/nama-fiscal-switch.adapter.ts index 65bdab5..76628c1 100644 --- a/src/modules/consumer/saleInvoices/fiscal/switch/nama/nama-fiscal-switch.adapter.ts +++ b/src/modules/consumer/saleInvoices/fiscal/switch/nama/nama-fiscal-switch.adapter.ts @@ -1,3 +1,8 @@ +import { + CustomerType, + FiscalInvoiceCustomerType, + FiscalRequestType, +} from '@/generated/prisma/enums' import { Injectable } from '@nestjs/common' import { ITaxSwitchAdapter, @@ -7,36 +12,74 @@ import { TaxSwitchSendItemResultDto, TaxSwitchSendPayloadDto, } from '../../dto/tax-switch.dto' +import { + NamaTaxGetResponseDto, + NamaTaxRequestDto, + NamaTaxSendItemResponseDto, +} from './nama-fiscal-switch.dto' @Injectable() export class NamaTaxSwitchAdapter implements ITaxSwitchAdapter { readonly code = 'NAMA' + private readonly sandboxBaseUrl = + process.env.NAMA_FISCAL_SANDBOX_URL || 'https://sandbox-api.nama.ir' + private readonly productionBaseUrl = + process.env.NAMA_FISCAL_PRODUCTION_URL || 'https://api.nama.ir' + + private readonly sendPath = '/api/v1/fiscal/invoices/single-send' + private readonly sendBulkPath = '/api/v1/invoices' + private readonly checkStatus = '/api/v1/invoices/check-by-uuids' + private readonly checkBulkStatus = '/api/v1/invoices/check-by-uuids' + private readonly getPath = '/api/v1/fiscal/invoices/' + + private get baseUrl() { + return process.env.NODE_ENV === 'production' + ? this.productionBaseUrl + : this.sandboxBaseUrl + } + + private buildSendUrl() { + return `${this.baseUrl}${this.sendPath}` + } + + private buildGetUrl(taxId: string) { + return `${this.baseUrl}${this.getPath}/${taxId}` + } async send(payload: TaxSwitchSendPayloadDto): Promise { + const mappedRequest = this.mapToNamaRequestDto(payload) + return payload.items.map((item, index) => { const sentAt = new Date() const receivedAt = new Date(sentAt.getTime() + 50) - const externalRequest = { - invoiceCode: payload.invoice_code, - itemId: item.invoice_item_id, - quantity: item.quantity, - unitPrice: item.unit_price, - totalAmount: item.total_amount, - } - const externalResponse = { - status: 'ACCEPTED', - trackingCode: `TAX-${payload.invoice_code}-${index + 1}`, + const providerResponse: NamaTaxSendItemResponseDto = { + invoice_item_id: item.invoice_item_id, + status: TaxSendStatus.SENT, + tax_id: `TAX-${payload.invoice_code}-${index + 1}`, + request_payload: { + url: this.buildSendUrl(), + body: mappedRequest, + }, + response_payload: { + provider: this.code, + env: process.env.NODE_ENV || 'development', + endpoint: this.buildSendUrl(), + status: 'ACCEPTED', + }, + sent_at: sentAt.toISOString(), + received_at: receivedAt.toISOString(), } return { - invoice_item_id: item.invoice_item_id, - status: TaxSendStatus.SENT, - tax_id: externalResponse.trackingCode, - request_payload: externalRequest, - response_payload: externalResponse, - sent_at: sentAt.toISOString(), - received_at: receivedAt.toISOString(), + invoice_item_id: providerResponse.invoice_item_id, + status: providerResponse.status, + tax_id: providerResponse.tax_id, + request_payload: providerResponse.request_payload, + response_payload: providerResponse.response_payload, + error_message: providerResponse.error_message, + sent_at: providerResponse.sent_at, + received_at: providerResponse.received_at, } }) } @@ -56,14 +99,100 @@ export class NamaTaxSwitchAdapter implements ITaxSwitchAdapter { } async get(taxId: string): Promise { - return { + const providerResponse: NamaTaxGetResponseDto = { tax_id: taxId, status: TaxSendStatus.SENT, response_payload: { + provider: this.code, + env: process.env.NODE_ENV || 'development', + endpoint: this.buildGetUrl(taxId), status: 'CONFIRMED', - trackingCode: taxId, + tracking_code: taxId, }, received_at: new Date().toISOString(), } + + return { + tax_id: providerResponse.tax_id, + status: providerResponse.status, + response_payload: providerResponse.response_payload, + received_at: providerResponse.received_at, + } + } + + private mapToNamaRequestDto(payload: TaxSwitchSendPayloadDto): NamaTaxRequestDto { + return { + uuid: payload.invoice_id, + economic_code: '', + fiscal_id: '', + payment: [], + header: { + ins: this.mapFiscalRequestType(payload.type), + inp: '2', + inty: this.mapFiscalInvoiceCustomerType(payload.customer_type), + // unique_tax_code: payload.invoice_code, + inno: payload.invoice_code, + tins: '', + indatim: payload.invoice_date.getTime() + '', + name: + `${payload.customer?.individual_info?.first_name} ${payload.customer?.individual_info?.last_name}` || + payload.customer?.legal_info?.name || + '', + tob: this.mapCustomerType(payload.customer?.type), + address: '', + mobile: payload.customer?.individual_info?.mobile_number || '', + bid: + payload.customer?.individual_info?.national_id || + payload.customer?.legal_info?.economic_code || + '', + }, + body: payload.items.map(item => ({ + sstid: item.sku, + vra: item.sku_vat, + // sstt: item.unit_type, + fee: String(item.unit_price), + dis: String(item.discount), + mu: item.measure_unit, + am: String(item.quantity), + consfee: '0', + bros: '0', + spro: '0', + })), + } + } + + private mapFiscalRequestType(type: FiscalRequestType) { + switch (type) { + case FiscalRequestType.MAIN: + return '1' + case FiscalRequestType.UPDATE: + return '2' + case FiscalRequestType.REVOKE: + return '3' + case FiscalRequestType.REMOVE: + return '4' + } + } + + private mapFiscalInvoiceCustomerType(type?: FiscalInvoiceCustomerType) { + switch (type) { + case FiscalInvoiceCustomerType.Unknown: + return '1' + case FiscalInvoiceCustomerType.Known: + return '2' + default: + return '3' + } + } + + private mapCustomerType(type?: CustomerType) { + switch (type) { + case CustomerType.INDIVIDUAL: + return '1' + case CustomerType.LEGAL: + return '2' + default: + return '' + } } } diff --git a/src/modules/consumer/saleInvoices/fiscal/switch/nama/nama-fiscal-switch.dto.ts b/src/modules/consumer/saleInvoices/fiscal/switch/nama/nama-fiscal-switch.dto.ts index 796f79b..5bb375e 100644 --- a/src/modules/consumer/saleInvoices/fiscal/switch/nama/nama-fiscal-switch.dto.ts +++ b/src/modules/consumer/saleInvoices/fiscal/switch/nama/nama-fiscal-switch.dto.ts @@ -1,6 +1,14 @@ import { ApiProperty } from '@nestjs/swagger' import { Type } from 'class-transformer' -import { IsArray, IsString, ValidateNested } from 'class-validator' +import { + IsArray, + IsEnum, + IsObject, + IsOptional, + IsString, + ValidateNested, +} from 'class-validator' +import { TaxSendStatus } from '../../dto/tax-switch.dto' export class NamaTaxBodyItemDto { @ApiProperty() @@ -11,9 +19,9 @@ export class NamaTaxBodyItemDto { @IsString() vra: string - @ApiProperty() - @IsString() - sstt: string + // @ApiProperty() + // @IsString() + // sstt: string @ApiProperty() @IsString() @@ -45,7 +53,7 @@ export class NamaTaxBodyItemDto { } export class NamaTaxHeaderDto { - @ApiProperty() + @ApiProperty({ required: true }) @IsString() ins: string @@ -53,41 +61,43 @@ export class NamaTaxHeaderDto { @IsString() inp: string - @ApiProperty() + @ApiProperty({ required: true }) @IsString() inty: string - @ApiProperty() - @IsString() - unique_tax_code: string + // @ApiProperty({required: true}) + // @IsString() + // unique_tax_code: string - @ApiProperty() + @ApiProperty({ required: true }) @IsString() inno: string - @ApiProperty() + @ApiProperty({ required: true }) @IsString() tins: string - @ApiProperty() + @ApiProperty({ required: true }) @IsString() indatim: string - @ApiProperty() + @ApiProperty({ required: true }) @IsString() name: string - @ApiProperty() + @ApiProperty({ required: true }) @IsString() tob: string @ApiProperty() + @IsOptional() @IsString() - address: string + address?: string @ApiProperty() + @IsOptional() @IsString() - mobile: string + mobile?: string @ApiProperty() @IsString() @@ -122,3 +132,63 @@ export class NamaTaxRequestDto { @IsString() fiscal_id: string } + +export class NamaTaxSendItemResponseDto { + @ApiProperty() + @IsString() + invoice_item_id: string + + @ApiProperty({ enum: TaxSendStatus }) + @IsEnum(TaxSendStatus) + status: TaxSendStatus + + @ApiProperty({ required: false, nullable: true }) + @IsOptional() + @IsString() + tax_id?: string | null + + @ApiProperty({ required: false, nullable: true, type: Object }) + @IsOptional() + @IsObject() + request_payload?: unknown + + @ApiProperty({ required: false, nullable: true, type: Object }) + @IsOptional() + @IsObject() + response_payload?: unknown + + @ApiProperty({ required: false, nullable: true }) + @IsOptional() + @IsString() + error_message?: string | null + + @ApiProperty({ required: false, nullable: true }) + @IsOptional() + @IsString() + sent_at?: string | null + + @ApiProperty({ required: false, nullable: true }) + @IsOptional() + @IsString() + received_at?: string | null +} + +export class NamaTaxGetResponseDto { + @ApiProperty() + @IsString() + tax_id: string + + @ApiProperty({ enum: TaxSendStatus }) + @IsEnum(TaxSendStatus) + status: TaxSendStatus + + @ApiProperty({ required: false, nullable: true, type: Object }) + @IsOptional() + @IsObject() + response_payload?: unknown + + @ApiProperty({ required: false, nullable: true }) + @IsOptional() + @IsString() + received_at?: string | null +} diff --git a/src/modules/consumer/saleInvoices/saleInvoices.service.ts b/src/modules/consumer/saleInvoices/saleInvoices.service.ts index 0dd4347..34b0264 100644 --- a/src/modules/consumer/saleInvoices/saleInvoices.service.ts +++ b/src/modules/consumer/saleInvoices/saleInvoices.service.ts @@ -117,7 +117,12 @@ export class SaleInvoicesService { id: true, name: true, pricing_model: true, - unit_type: true, + measure_unit: { + select: { + id: true, + name: true, + }, + }, category: { select: { @@ -136,7 +141,7 @@ export class SaleInvoicesService { type: true, legal: { select: { - company_name: true, + name: true, economic_code: true, registration_number: true, postal_code: true, diff --git a/src/modules/enums/enums.controller.ts b/src/modules/enums/enums.controller.ts index 0844d56..38721e0 100644 --- a/src/modules/enums/enums.controller.ts +++ b/src/modules/enums/enums.controller.ts @@ -1,7 +1,7 @@ import { PublicWithToken } from '@/common/decorators/withToken.decorator' import { Controller, Get } from '@nestjs/common' -import { EnumsService } from './enums.service' import type { EnumsServiceGetEnumValuesResponseDto } from './dto/enums-response.dto' +import { EnumsService } from './enums.service' @Controller('enums') export class EnumsController { @@ -97,12 +97,6 @@ export class EnumsController { return this.enumsService.getEnumValues('TokenType') } - @Get('unit_type') - @PublicWithToken() - async getUnitType(): Promise { - return this.enumsService.getEnumValues('UnitType') - } - @Get('good_pricing_model') @PublicWithToken() async getGoodPricingModel(): Promise { @@ -114,4 +108,10 @@ export class EnumsController { async getConsumerRoleModel(): Promise { return this.enumsService.getEnumValues('ConsumerRole') } + + @Get('fiscal_response_status') + @PublicWithToken() + async getFiscalResponseStatus(): Promise { + return this.enumsService.getEnumValues('FiscalResponseStatus') + } } diff --git a/src/modules/enums/enums.service.ts b/src/modules/enums/enums.service.ts index d6b5030..98952e5 100644 --- a/src/modules/enums/enums.service.ts +++ b/src/modules/enums/enums.service.ts @@ -3,14 +3,18 @@ import { translateEnumValue } from '@/common/utils/enum-translator.util' import { AccountRole, AccountStatus, + AccountType, ApplicationPlatform, ApplicationPublisher, ApplicationReleaseType, BusinessRole, + ComplexRole, ConsumerRole, ConsumerStatus, ConsumerType, CustomerType, + FiscalInvoiceCustomerType, + FiscalRequestType, FiscalResponseStatus, GoodPricingModel, LicenseStatus, @@ -24,12 +28,14 @@ import { POSType, ProviderRole, ProviderStatus, + SKUGuildType, + TokenType, UnitType, UserStatus, UserType, } from '@/generated/prisma/enums' import { Injectable } from '@nestjs/common' -import { AccountType, GoldKarat, TokenType } from 'common/enums/enums' +import { GoldKarat } from 'common/enums/enums' import { ResponseMapper } from 'common/response/response-mapper' @Injectable() @@ -63,6 +69,7 @@ export class EnumsService { AccountType: this.prepareData(AccountType, 'AccountType'), PartnerRole: this.prepareData(PartnerRole, 'PartnerRole'), BusinessRole: this.prepareData(BusinessRole, 'BusinessRole'), + ComplexRole: this.prepareData(ComplexRole, 'ComplexRole'), ProviderRole: this.prepareData(ProviderRole, 'ProviderRole'), ProviderStatus: this.prepareData(ProviderStatus, 'ProviderStatus'), TokenType: this.prepareData(TokenType, 'TokenType'), @@ -90,6 +97,12 @@ export class EnumsService { FiscalResponseStatus, 'FiscalResponseStatus', ), + FiscalRequestType: this.prepareData(FiscalRequestType, 'FiscalRequestType'), + FiscalInvoiceCustomerType: this.prepareData( + FiscalInvoiceCustomerType, + 'FiscalInvoiceCustomerType', + ), + SKUGuildType: this.prepareData(SKUGuildType, 'SKUGuildType'), } } diff --git a/src/modules/partners/consumers/business-activities/business-activities.service.ts b/src/modules/partners/consumers/business-activities/business-activities.service.ts index 06f8411..87b726f 100644 --- a/src/modules/partners/consumers/business-activities/business-activities.service.ts +++ b/src/modules/partners/consumers/business-activities/business-activities.service.ts @@ -114,6 +114,7 @@ export class BusinessActivitiesService { const createdBusinessActivity = await tx.businessActivity.create({ data: { ...rest, + economic_code: String(data.economic_code), guild: { connect: { id: guild_id, diff --git a/src/modules/pos/customers/dto/create-customer-legal.dto.ts b/src/modules/pos/customers/dto/create-customer-legal.dto.ts index 1464d3a..0bed756 100644 --- a/src/modules/pos/customers/dto/create-customer-legal.dto.ts +++ b/src/modules/pos/customers/dto/create-customer-legal.dto.ts @@ -4,7 +4,7 @@ import { IsNumber, IsString, MaxLength, MinLength } from 'class-validator' export class CreateCustomerLegalDto { @IsString() @ApiProperty({ required: true }) - company_name: string + name: string @IsString() @ApiProperty({ required: true }) diff --git a/src/modules/pos/goods/dto/create-good.dto.ts b/src/modules/pos/goods/dto/create-good.dto.ts index d75e9ad..07108e6 100644 --- a/src/modules/pos/goods/dto/create-good.dto.ts +++ b/src/modules/pos/goods/dto/create-good.dto.ts @@ -13,8 +13,8 @@ export class CreateGoodDto { description?: string @IsString() - @ApiProperty() - sku: string + @ApiProperty({ required: true }) + sku_id: string @IsString() @ApiProperty() @@ -42,6 +42,10 @@ export class CreateGoodDto { @IsNumber() @ApiProperty({ required: false }) base_sale_price?: number + + @IsString() + @ApiProperty({ required: true }) + measure_unit_id: string } export class UpdateGoodDto extends PartialType(CreateGoodDto) {} diff --git a/src/modules/pos/goods/goods.service.ts b/src/modules/pos/goods/goods.service.ts index a4266b0..83b0ae1 100644 --- a/src/modules/pos/goods/goods.service.ts +++ b/src/modules/pos/goods/goods.service.ts @@ -14,11 +14,21 @@ export class GoodsService { barcode: true, created_at: true, description: true, - sku: true, + sku: { + select: { + id: true, + name: true, + }, + }, local_sku: true, is_default_guild_good: true, pricing_model: true, - unit_type: true, + measure_unit: { + select: { + id: true, + name: true, + }, + }, image_url: true, category: { select: { @@ -66,7 +76,7 @@ export class GoodsService { } async create(data: CreateGoodDto, business_activity_id: string) { - const { category_id, ...rest } = data + const { category_id, sku_id, measure_unit_id, ...rest } = data const dataToCreate = { ...rest, @@ -81,6 +91,16 @@ export class GoodsService { const good = await this.prisma.good.create({ data: { ...rest, + measure_unit: { + connect: { + id: measure_unit_id, + }, + }, + sku: { + connect: { + id: sku_id, + }, + }, category: { connect: { id: category_id, diff --git a/src/modules/pos/sales-invoices/dto/sales-invoices-filter.dto.ts b/src/modules/pos/sales-invoices/dto/sales-invoices-filter.dto.ts new file mode 100644 index 0000000..1f5869c --- /dev/null +++ b/src/modules/pos/sales-invoices/dto/sales-invoices-filter.dto.ts @@ -0,0 +1,95 @@ +import { ApiPropertyOptional } from '@nestjs/swagger' +import { Type } from 'class-transformer' +import { + IsDateString, + IsEnum, + IsNumber, + IsOptional, + IsString, + Min, +} from 'class-validator' +import { FiscalResponseStatus } from 'generated/prisma/enums' + +export class SalesInvoicesFilterDto { + @ApiPropertyOptional({ default: 1 }) + @IsOptional() + @Type(() => Number) + @IsNumber() + @Min(1) + page?: number + + @ApiPropertyOptional({ default: 10 }) + @IsOptional() + @Type(() => Number) + @IsNumber() + @Min(1) + perPage?: number + + @ApiPropertyOptional() + @IsOptional() + @IsDateString() + invoice_date_from?: string + + @ApiPropertyOptional() + @IsOptional() + @IsDateString() + invoice_date_to?: string + + @ApiPropertyOptional() + @IsOptional() + @IsDateString() + created_at_from?: string + + @ApiPropertyOptional() + @IsOptional() + @IsDateString() + created_at_to?: string + + @ApiPropertyOptional() + @IsOptional() + @IsString() + code?: string + + @ApiPropertyOptional() + @IsOptional() + @IsString() + customer_name?: string + + @ApiPropertyOptional() + @IsOptional() + @IsString() + customer_mobile?: string + + @ApiPropertyOptional() + @IsOptional() + @IsString() + customer_national_id?: string + + @ApiPropertyOptional() + @IsOptional() + @IsString() + customer_economic_code?: string + + @ApiPropertyOptional({ enum: FiscalResponseStatus }) + @IsOptional() + @IsEnum(FiscalResponseStatus) + status?: FiscalResponseStatus + + @ApiPropertyOptional() + @IsOptional() + @Type(() => Number) + @IsNumber() + total_amount?: number + + @ApiPropertyOptional() + @IsOptional() + @Type(() => Number) + @IsNumber() + total_amount_from?: number + + @ApiPropertyOptional() + @IsOptional() + @Type(() => Number) + @IsNumber() + total_amount_to?: number +} diff --git a/src/modules/pos/sales-invoices/fiscal/sales-invoice-fiscal.controller.ts b/src/modules/pos/sales-invoices/fiscal/sales-invoice-fiscal.controller.ts new file mode 100644 index 0000000..28ef469 --- /dev/null +++ b/src/modules/pos/sales-invoices/fiscal/sales-invoice-fiscal.controller.ts @@ -0,0 +1,43 @@ +import { PosInfo } from '@/common/decorators/posInfo.decorator' +import type { IPosPayload } from '@/common/models/posPayload.model' +import { Controller, Get, Param, Post } from '@nestjs/common' +import { PosSalesInvoiceFiscalService } from './sales-invoice-fiscal.service' + +@Controller('pos/sales_invoices/:invoiceId/fiscal') +export class PosSalesInvoiceFiscalController { + constructor(private readonly service: PosSalesInvoiceFiscalService) {} + + @Post('send') + async send(@PosInfo() posInfo: IPosPayload, @Param('invoiceId') invoiceId: string) { + return this.service.send(invoiceId, posInfo) + } + + @Post('retry') + async retry(@PosInfo() posInfo: IPosPayload, @Param('invoiceId') invoiceId: string) { + return this.service.retry(invoiceId, posInfo) + } + + @Get('status') + async getStatus( + @PosInfo() posInfo: IPosPayload, + @Param('invoiceId') invoiceId: string, + ) { + return this.service.getStatus(invoiceId, posInfo) + } + + @Post('status/refresh') + async refreshStatus( + @PosInfo() posInfo: IPosPayload, + @Param('invoiceId') invoiceId: string, + ) { + return this.service.refreshStatus(invoiceId, posInfo) + } + + @Get('attempts') + async getAttempts( + @PosInfo() posInfo: IPosPayload, + @Param('invoiceId') invoiceId: string, + ) { + return this.service.getAttempts(invoiceId, posInfo) + } +} diff --git a/src/modules/pos/sales-invoices/fiscal/sales-invoice-fiscal.module.ts b/src/modules/pos/sales-invoices/fiscal/sales-invoice-fiscal.module.ts new file mode 100644 index 0000000..f8b1381 --- /dev/null +++ b/src/modules/pos/sales-invoices/fiscal/sales-invoice-fiscal.module.ts @@ -0,0 +1,12 @@ +import { Module } from '@nestjs/common' +import { SalesInvoiceFiscalSwitchService } from '../../../consumer/saleInvoices/fiscal/sales-invoice-fiscal-switch.service' +import { NamaTaxSwitchAdapter } from '../../../consumer/saleInvoices/fiscal/switch/nama/nama-fiscal-switch.adapter' +import { PosSalesInvoiceFiscalController } from './sales-invoice-fiscal.controller' +import { PosSalesInvoiceFiscalService } from './sales-invoice-fiscal.service' + +@Module({ + controllers: [PosSalesInvoiceFiscalController], + providers: [PosSalesInvoiceFiscalService, SalesInvoiceFiscalSwitchService, NamaTaxSwitchAdapter], + exports: [PosSalesInvoiceFiscalService], +}) +export class PosSalesInvoiceFiscalModule {} diff --git a/src/modules/pos/sales-invoices/fiscal/sales-invoice-fiscal.service.ts b/src/modules/pos/sales-invoices/fiscal/sales-invoice-fiscal.service.ts new file mode 100644 index 0000000..cd3fdbf --- /dev/null +++ b/src/modules/pos/sales-invoices/fiscal/sales-invoice-fiscal.service.ts @@ -0,0 +1,411 @@ +import { IPosPayload } from '@/common/models/posPayload.model' +import { PrismaService } from '@/prisma/prisma.service' +import { Injectable, NotFoundException } from '@nestjs/common' +import { + FiscalInvoiceCustomerType, + FiscalRequestType, + FiscalResponseStatus, +} from 'generated/prisma/enums' +import { + TaxSendStatus, + TaxSwitchGetResultDto, + TaxSwitchSendItemResultDto, + TaxSwitchSendPayloadDto, +} from '../../../consumer/saleInvoices/fiscal/dto/tax-switch.dto' +import { SalesInvoiceFiscalSwitchService } from '../../../consumer/saleInvoices/fiscal/sales-invoice-fiscal-switch.service' + +@Injectable() +export class PosSalesInvoiceFiscalService { + constructor( + private readonly prisma: PrismaService, + private readonly fiscalSwitchService: SalesInvoiceFiscalSwitchService, + ) {} + + async send(invoiceId: string, posInfo: IPosPayload) { + const payload = await this.buildPayload(invoiceId, posInfo) + const itemResults = await this.safeSend(payload) + const attempt = await this.persistAttempt(invoiceId, itemResults) + + return { + invoice_id: invoiceId, + fiscal_id: attempt.fiscal_id, + status: attempt.status, + attempt_no: attempt.attempt_no, + } + } + + async retry(invoiceId: string, posInfo: IPosPayload) { + return this.send(invoiceId, posInfo) + } + + async getStatus(invoiceId: string, posInfo: IPosPayload) { + const invoice = await this.getInvoiceForBusiness(invoiceId, posInfo.business_id) + if (!invoice.fiscal) { + return { + invoice_id: invoiceId, + status: FiscalResponseStatus.NOT_SEND, + fiscal: null, + } + } + + const latestAttempt = invoice.fiscal.attempts[0] || null + return { + invoice_id: invoiceId, + status: latestAttempt?.status || FiscalResponseStatus.NOT_SEND, + fiscal: { + id: invoice.fiscal.id, + retry_count: invoice.fiscal.retry_count, + last_attempt_at: invoice.fiscal.last_attempt_at, + }, + latest_attempt: latestAttempt, + } + } + + async refreshStatus(invoiceId: string, posInfo: IPosPayload) { + const invoice = await this.getInvoiceForBusiness(invoiceId, posInfo.business_id) + const latestAttempt = invoice.fiscal?.attempts?.[0] + + if (!invoice.fiscal || !latestAttempt?.tax_id) { + return this.getStatus(invoiceId, posInfo) + } + + const providerCode = invoice.pos.provider?.code + const switchResult = await this.fiscalSwitchService.get( + providerCode, + latestAttempt.tax_id, + ) + const mappedStatus = this.mapSwitchGetStatus(switchResult.status) + + const refreshedAttempt = await this.prisma.$transaction(async tx => { + const nextNo = (latestAttempt.attempt_no || 0) + 1 + const createdAttempt = await tx.saleInvoiceFiscalAttempts.create({ + data: { + fiscal_id: invoice.fiscal!.id, + attempt_no: nextNo, + status: mappedStatus, + tax_id: switchResult.tax_id, + response_payload: switchResult.response_payload + ? JSON.parse(JSON.stringify(switchResult.response_payload)) + : undefined, + received_at: switchResult.received_at + ? new Date(switchResult.received_at) + : null, + type: FiscalRequestType.MAIN, + }, + }) + + await tx.saleInvoiceFiscals.update({ + where: { id: invoice.fiscal!.id }, + data: { + retry_count: nextNo, + last_attempt_at: createdAttempt.created_at, + }, + }) + + return createdAttempt + }) + + return { + invoice_id: invoiceId, + status: refreshedAttempt.status, + latest_attempt: refreshedAttempt, + } + } + + async getAttempts(invoiceId: string, posInfo: IPosPayload) { + const invoice = await this.getInvoiceForBusiness(invoiceId, posInfo.business_id) + if (!invoice.fiscal) { + return { + invoice_id: invoiceId, + fiscal_id: null, + attempts: [], + } + } + + const attempts = await this.prisma.saleInvoiceFiscalAttempts.findMany({ + where: { + fiscal_id: invoice.fiscal.id, + }, + orderBy: { + attempt_no: 'desc', + }, + }) + + return { + invoice_id: invoiceId, + fiscal_id: invoice.fiscal.id, + attempts, + } + } + + private async buildPayload(invoiceId: string, posInfo: IPosPayload) { + const invoice = await this.prisma.salesInvoice.findUnique({ + where: { + id: invoiceId, + pos: { + id: posInfo.pos_id, + complex: { + business_activity_id: posInfo.business_id, + }, + }, + }, + select: { + id: true, + code: true, + invoice_date: true, + total_amount: true, + items: { + select: { + id: true, + quantity: true, + unit_price: true, + total_amount: true, + measure_unit_text: true, + sku_code: true, + sku_vat: true, + measure_unit_code: true, + good_id: true, + service_id: true, + payload: true, + good_snapshot: true, + }, + }, + customer: { + select: { + type: true, + individual: true, + legal: true, + }, + }, + + pos: { + select: { + complex: { + select: { + business_activity: { + select: { + fiscal_id: true, + economic_code: true, + consumer: { + select: { + legal: { + select: { + partner: { + select: { + fiscal_switch_type: true, + }, + }, + }, + }, + individual: { + select: { + partner: { + select: { + fiscal_switch_type: true, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }) + + if (!invoice) { + throw new NotFoundException('فاکتور مورد نظر یافت نشد.') + } + + const { partner } = (invoice.pos.complex.business_activity.consumer.legal || + invoice.pos.complex.business_activity.consumer.individual)! + + return { + invoice_id: invoice.id, + invoice_code: invoice.code, + invoice_date: invoice.invoice_date, + total_amount: Number(invoice.total_amount), + customer_type: invoice.customer + ? FiscalInvoiceCustomerType.Known + : FiscalInvoiceCustomerType.Unknown, + type: FiscalRequestType.MAIN, + provider_code: partner.fiscal_switch_type, + items: invoice.items.map(item => ({ + invoice_item_id: item.id, + quantity: Number(item.quantity), + unit_price: Number(item.unit_price), + total_amount: Number(item.total_amount), + good_id: item.good_id, + service_id: item.service_id, + payload: item.payload, + good_snapshot: item.good_snapshot, + discount: String((item.payload as Record)?.discount || '0'), + sku: item.sku_code, + sku_vat: String(item.sku_vat), + measure_unit: item.measure_unit_code, + // sku: item. + })), + } satisfies TaxSwitchSendPayloadDto + } + + private async safeSend(payload: TaxSwitchSendPayloadDto) { + try { + return await this.fiscalSwitchService.send(payload) + } catch (error: any) { + const now = new Date().toISOString() + return payload.items.map(item => ({ + invoice_item_id: item.invoice_item_id, + status: TaxSendStatus.FAILED, + error_message: error?.message || 'Unexpected fiscal switch error.', + sent_at: now, + received_at: now, + })) + } + } + + private async persistAttempt( + invoiceId: string, + itemResults: TaxSwitchSendItemResultDto[], + ) { + return this.prisma.$transaction(async tx => { + const fiscal = await tx.saleInvoiceFiscals.upsert({ + where: { invoice_id: invoiceId }, + update: {}, + create: { + invoice_id: invoiceId, + }, + }) + + const latest = await tx.saleInvoiceFiscalAttempts.findFirst({ + where: { fiscal_id: fiscal.id }, + orderBy: { attempt_no: 'desc' }, + select: { attempt_no: true }, + }) + const nextAttemptNo = (latest?.attempt_no || 0) + 1 + + const finalStatus = this.mapItemResultsStatus(itemResults) + const firstTaxId = itemResults.find(item => item.tax_id)?.tax_id || null + const sentAt = itemResults.map(item => item.sent_at).find(Boolean) + const receivedAt = itemResults.map(item => item.received_at).find(Boolean) + const errors = itemResults.map(item => item.error_message).filter(Boolean) + const errorMessage = errors.length ? Array.from(new Set(errors)).join(' | ') : null + + const attempt = await tx.saleInvoiceFiscalAttempts.create({ + data: { + fiscal_id: fiscal.id, + attempt_no: nextAttemptNo, + status: finalStatus, + tax_id: firstTaxId, + type: FiscalRequestType.MAIN, + request_payload: JSON.parse( + JSON.stringify(itemResults.map(item => item.request_payload)), + ), + response_payload: JSON.parse( + JSON.stringify(itemResults.map(item => item.response_payload)), + ), + error_message: errorMessage, + sent_at: sentAt ? new Date(sentAt) : null, + received_at: receivedAt ? new Date(receivedAt) : null, + }, + }) + + await tx.saleInvoiceFiscals.update({ + where: { id: fiscal.id }, + data: { + retry_count: nextAttemptNo, + last_attempt_at: attempt.sent_at || attempt.created_at, + }, + }) + + return { + fiscal_id: fiscal.id, + status: attempt.status, + attempt_no: attempt.attempt_no, + } + }) + } + + private mapItemResultsStatus(itemResults: TaxSwitchSendItemResultDto[]) { + if (!itemResults.length) { + return FiscalResponseStatus.NOT_SEND + } + const hasFailure = itemResults.some(item => item.status === TaxSendStatus.FAILED) + if (hasFailure) { + return FiscalResponseStatus.FAILURE + } + const hasSent = itemResults.some(item => item.status === TaxSendStatus.SENT) + if (hasSent) { + return FiscalResponseStatus.SUCCESS + } + return FiscalResponseStatus.NOT_SEND + } + + private mapSwitchGetStatus(status: TaxSwitchGetResultDto['status']) { + switch (status) { + case TaxSendStatus.SENT: + return FiscalResponseStatus.SUCCESS + case TaxSendStatus.FAILED: + return FiscalResponseStatus.FAILURE + default: + return FiscalResponseStatus.NOT_SEND + } + } + + private async getInvoiceForBusiness(invoiceId: string, businessId: string) { + const invoice = await this.prisma.salesInvoice.findFirst({ + where: { + id: invoiceId, + pos: { + complex: { + business_activity_id: businessId, + }, + }, + }, + select: { + id: true, + pos: { + select: { + provider: { + select: { + code: true, + }, + }, + }, + }, + fiscal: { + select: { + id: true, + retry_count: true, + last_attempt_at: true, + attempts: { + orderBy: { + attempt_no: 'desc', + }, + take: 1, + select: { + id: true, + attempt_no: true, + status: true, + tax_id: true, + sent_at: true, + received_at: true, + error_message: true, + created_at: true, + }, + }, + }, + }, + }, + }) + + if (!invoice) { + throw new NotFoundException('فاکتور مورد نظر یافت نشد.') + } + + return invoice + } +} diff --git a/src/modules/pos/sales-invoices/sales-invoices.controller.ts b/src/modules/pos/sales-invoices/sales-invoices.controller.ts index 783033f..a84b189 100644 --- a/src/modules/pos/sales-invoices/sales-invoices.controller.ts +++ b/src/modules/pos/sales-invoices/sales-invoices.controller.ts @@ -1,8 +1,9 @@ -import { Body, Controller, Get, Param, Post } from '@nestjs/common' +import { Body, Controller, Get, Param, Post, Query } from '@nestjs/common' import { PosInfo } from '@/common/decorators/posInfo.decorator' import type { IPosPayload } from '@/common/models/posPayload.model' import { CreateSalesInvoiceDto } from './dto/create-sales-invoice.dto' +import { SalesInvoicesFilterDto } from './dto/sales-invoices-filter.dto' import { SalesInvoicesService } from './sales-invoices.service' @Controller('pos/sales_invoices') @@ -10,13 +11,13 @@ export class SalesInvoicesController { constructor(private readonly salesInvoicesService: SalesInvoicesService) {} @Get() - findAll() { - return this.salesInvoicesService.findAll() + findAll(@PosInfo() posInfo: IPosPayload, @Query() query: SalesInvoicesFilterDto) { + return this.salesInvoicesService.findAll(posInfo, query) } @Get(':id') - findOne(@Param('id') id: string) { - return this.salesInvoicesService.findOne(+id) + findOne(@PosInfo() posInfo: IPosPayload, @Param('id') id: string) { + return this.salesInvoicesService.findOne(posInfo, id) } @Post() diff --git a/src/modules/pos/sales-invoices/sales-invoices.module.ts b/src/modules/pos/sales-invoices/sales-invoices.module.ts index ec6d78e..6b136ca 100644 --- a/src/modules/pos/sales-invoices/sales-invoices.module.ts +++ b/src/modules/pos/sales-invoices/sales-invoices.module.ts @@ -2,10 +2,12 @@ import { Module } from '@nestjs/common' import { SalesInvoiceFiscalSwitchService } from '../../consumer/saleInvoices/fiscal/sales-invoice-fiscal-switch.service' import { SalesInvoiceFiscalService } from '../../consumer/saleInvoices/fiscal/sales-invoice-fiscal.service' import { NamaTaxSwitchAdapter } from '../../consumer/saleInvoices/fiscal/switch/nama/nama-fiscal-switch.adapter' +import { PosSalesInvoiceFiscalModule } from './fiscal/sales-invoice-fiscal.module' import { SalesInvoicesController } from './sales-invoices.controller' import { SalesInvoicesService } from './sales-invoices.service' @Module({ + imports: [PosSalesInvoiceFiscalModule], controllers: [SalesInvoicesController], providers: [ SalesInvoicesService, diff --git a/src/modules/pos/sales-invoices/sales-invoices.service.ts b/src/modules/pos/sales-invoices/sales-invoices.service.ts index ceb9208..963dd63 100644 --- a/src/modules/pos/sales-invoices/sales-invoices.service.ts +++ b/src/modules/pos/sales-invoices/sales-invoices.service.ts @@ -1,12 +1,18 @@ import { IPosPayload } from '@/common/models/posPayload.model' +import { translateEnumValue } from '@/common/utils' import { PrismaService } from '@/prisma/prisma.service' import { BadRequestException, Injectable } from '@nestjs/common' import { ResponseMapper } from 'common/response/response-mapper' import type { CustomerIndividual, CustomerLegal } from 'generated/prisma/client' import { Prisma } from 'generated/prisma/client' -import { CustomerType, PaymentMethodType } from 'generated/prisma/enums' +import { + CustomerType, + FiscalResponseStatus, + PaymentMethodType, +} from 'generated/prisma/enums' import { SalesInvoiceFiscalService } from '../../consumer/saleInvoices/fiscal/sales-invoice-fiscal.service' import { CreateSalesInvoiceDto } from './dto/create-sales-invoice.dto' +import { SalesInvoicesFilterDto } from './dto/sales-invoices-filter.dto' // Define type guard for CustomerIndividual function isCustomerIndividual(customer: any): customer is CustomerIndividual { @@ -50,14 +56,213 @@ export class SalesInvoicesService { private salesInvoiceTaxService: SalesInvoiceFiscalService, ) {} - findAll() { - // TODO: Implement fetching all sales invoices - return [] + async findAll(posInfo: IPosPayload, query: SalesInvoicesFilterDto = {}) { + const page = query.page || 1 + const perPage = Math.min(query.perPage || 10, 100) + + const where = this.buildFindAllWhere(posInfo, query) + const [items, total] = await this.prisma.$transaction(async tx => [ + await tx.salesInvoice.findMany({ + where, + orderBy: { + created_at: 'desc', + }, + skip: (page - 1) * perPage, + take: perPage, + select: { + id: true, + code: true, + invoice_number: true, + invoice_date: true, + created_at: true, + total_amount: true, + customer: { + select: { + type: true, + individual: { + select: { + first_name: true, + last_name: true, + mobile_number: true, + national_id: true, + }, + }, + legal: { + select: { + name: true, + economic_code: true, + registration_number: true, + }, + }, + }, + }, + fiscal: { + select: { + attempts: { + orderBy: { + created_at: 'desc', + }, + take: 1, + select: { + status: true, + }, + }, + }, + }, + }, + }), + await tx.salesInvoice.count({ where }), + ]) + + const summaryItems = items.map(invoice => ({ + ...invoice, + status: translateEnumValue( + 'FiscalResponseStatus', + invoice.fiscal?.attempts?.[0]?.status || FiscalResponseStatus.NOT_SEND, + ), + })) + + return ResponseMapper.paginate(summaryItems, { total, page, perPage }) } - findOne(id: number) { - // TODO: Implement fetching a single sales invoice - return {} + async findOne(posInfo: IPosPayload, id: string) { + const invoice = await this.prisma.salesInvoice.findFirstOrThrow({ + where: { + id, + pos: { + complex: { + business_activity_id: posInfo.business_id, + }, + }, + }, + select: { + id: true, + code: true, + invoice_number: true, + invoice_date: true, + created_at: true, + updated_at: true, + notes: true, + total_amount: true, + unknown_customer: true, + customer: { + select: { + id: true, + type: true, + individual: { + select: { + first_name: true, + last_name: true, + mobile_number: true, + national_id: true, + postal_code: true, + economic_code: true, + }, + }, + legal: { + select: { + name: true, + economic_code: true, + registration_number: true, + postal_code: true, + }, + }, + }, + }, + pos: { + select: { + id: true, + name: true, + complex: { + select: { + id: true, + name: true, + business_activity: { + select: { + id: true, + name: true, + }, + }, + }, + }, + }, + }, + consumer_account: { + select: { + id: true, + role: true, + account: { + select: { + username: true, + }, + }, + }, + }, + items: { + select: { + id: true, + good_id: true, + service_id: true, + quantity: true, + measure_unit_code: true, + measure_unit_text: true, + sku_code: true, + unit_price: true, + discount: true, + total_amount: true, + notes: true, + payload: true, + good_snapshot: true, + }, + }, + payments: { + select: { + id: true, + amount: true, + payment_method: true, + paid_at: true, + created_at: true, + terminal_info: { + select: { + terminal_id: true, + stan: true, + rrn: true, + transaction_date_time: true, + customer_card_no: true, + description: true, + }, + }, + }, + }, + fiscal: { + select: { + id: true, + retry_count: true, + last_attempt_at: true, + attempts: { + orderBy: { + created_at: 'desc', + }, + select: { + id: true, + attempt_no: true, + status: true, + tax_id: true, + error_message: true, + sent_at: true, + received_at: true, + created_at: true, + }, + }, + }, + }, + }, + }) + + return ResponseMapper.single({ + ...invoice, + status: invoice.fiscal?.attempts?.[0]?.status || FiscalResponseStatus.NOT_SEND, + }) } // async send(invoiceId: string, posInfo: IPosPayload) { @@ -83,7 +288,7 @@ export class SalesInvoicesService { // } async create(data: CreateSalesInvoiceDto, posInfo: IPosPayload) { - const { business_id, pos_id, consumer_account_id } = posInfo + const { business_id, pos_id, consumer_account_id, complex_id } = posInfo const normalizedInvoiceDate = this.normalizeInvoiceDate(data.invoice_date) const { payments, terminalInfo } = this.buildPaymentsData( data.payments, @@ -101,6 +306,8 @@ export class SalesInvoicesService { normalizedInvoiceDate, invoiceNumber, consumer_account_id, + businessId: business_id, + complexId: complex_id, pos_id, goodsById, customerId: newCustomerId, @@ -156,6 +363,161 @@ export class SalesInvoicesService { ) } + private buildFindAllWhere(posInfo: IPosPayload, query: SalesInvoicesFilterDto) { + const where: Prisma.SalesInvoiceWhereInput = { + pos: { + complex: { + business_activity_id: posInfo.business_id, + }, + }, + } + + if (query.code?.trim()) { + where.code = { + contains: query.code.trim(), + } + } + + if (query.invoice_date_from || query.invoice_date_to) { + where.invoice_date = { + ...(query.invoice_date_from ? { gte: new Date(query.invoice_date_from) } : {}), + ...(query.invoice_date_to ? { lte: new Date(query.invoice_date_to) } : {}), + } + } + + if (query.created_at_from || query.created_at_to) { + where.created_at = { + ...(query.created_at_from ? { gte: new Date(query.created_at_from) } : {}), + ...(query.created_at_to ? { lte: new Date(query.created_at_to) } : {}), + } + } + + if ( + query.total_amount !== undefined || + query.total_amount_from !== undefined || + query.total_amount_to !== undefined + ) { + where.total_amount = { + ...(query.total_amount !== undefined ? { equals: query.total_amount } : {}), + ...(query.total_amount_from !== undefined + ? { gte: query.total_amount_from } + : {}), + ...(query.total_amount_to !== undefined ? { lte: query.total_amount_to } : {}), + } + } + + if ( + query.customer_name?.trim() || + query.customer_mobile?.trim() || + query.customer_national_id?.trim() || + query.customer_economic_code?.trim() + ) { + where.customer = { + is: { + OR: [ + ...(query.customer_name?.trim() + ? [ + { + individual: { + is: { + OR: [ + { + first_name: { + contains: query.customer_name.trim(), + }, + }, + { + last_name: { + contains: query.customer_name.trim(), + }, + }, + ], + }, + }, + }, + { + legal: { + is: { + name: { + contains: query.customer_name.trim(), + }, + }, + }, + }, + ] + : []), + ...(query.customer_mobile?.trim() + ? [ + { + individual: { + is: { + mobile_number: { + contains: query.customer_mobile.trim(), + }, + }, + }, + }, + ] + : []), + ...(query.customer_national_id?.trim() + ? [ + { + individual: { + is: { + national_id: { + contains: query.customer_national_id.trim(), + }, + }, + }, + }, + ] + : []), + ...(query.customer_economic_code?.trim() + ? [ + { + legal: { + is: { + OR: [ + { + economic_code: { + contains: query.customer_economic_code.trim(), + }, + }, + { + registration_number: { + contains: query.customer_economic_code.trim(), + }, + }, + ], + }, + }, + }, + ] + : []), + ], + }, + } + } + + if (query.status) { + if (query.status === FiscalResponseStatus.NOT_SEND) { + where.fiscal = null + } else { + where.fiscal = { + is: { + attempts: { + some: { + status: query.status, + }, + }, + }, + } + } + } + + return where + } + private normalizeInvoiceDate(invoiceDate: Date | string) { return new Date(invoiceDate).toISOString() as any } @@ -339,11 +701,21 @@ export class SalesInvoicesService { select: { id: true, name: true, - sku: true, + sku: { + select: { + id: true, + name: true, + }, + }, local_sku: true, barcode: true, pricing_model: true, - unit_type: true, + measure_unit: { + select: { + id: true, + name: true, + }, + }, base_sale_price: true, image_url: true, category: { @@ -364,6 +736,8 @@ export class SalesInvoicesService { normalizedInvoiceDate: Date invoiceNumber: number consumer_account_id: string + businessId: string + complexId: string pos_id: string goodsById: Map customerId: string | null @@ -376,6 +750,8 @@ export class SalesInvoicesService { pos_id, goodsById, customerId, + businessId, + complexId, } = params const { customer_id, customer_type, customer, payments, ...invoiceData } = data @@ -384,7 +760,7 @@ export class SalesInvoicesService { invoice_date: normalizedInvoiceDate, invoice_number: invoiceNumber, total_amount: data.total_amount, - code: 'INV-' + Date.now(), + code: this.generateInvoiceCode(businessId, complexId, pos_id, invoiceNumber), items: { createMany: { data: data.items.map(item => ({ @@ -392,6 +768,7 @@ export class SalesInvoicesService { quantity: item.quantity, unit_price: item.unit_price, total_amount: item.total_amount, + measure_unit_text: item.unit_type, payload: item.payload ? JSON.parse(JSON.stringify(item.payload)) : undefined, good_snapshot: item.good_id ? JSON.parse( @@ -483,4 +860,13 @@ export class SalesInvoicesService { } } } + + private generateInvoiceCode( + business_id: string, + complex_id: string, + pos_id: string, + invoice_number: number, + ) { + return `${business_id.substring(0, 2)}-${complex_id.substring(0, 2)}-${pos_id.substring(0, 2)}-${invoice_number.toString()}` + } }