diff --git a/database/migrations/.snapshot-dpage.json b/database/migrations/.snapshot-dpage.json index 7d672cf..09564d1 100644 --- a/database/migrations/.snapshot-dpage.json +++ b/database/migrations/.snapshot-dpage.json @@ -24,7 +24,7 @@ }, "created_at": { "name": "created_at", - "type": "timestamptz", + "type": "timestamptz(6)", "unsigned": false, "autoincrement": false, "primary": false, @@ -40,7 +40,7 @@ }, "updated_at": { "name": "updated_at", - "type": "timestamptz", + "type": "timestamptz(6)", "unsigned": false, "autoincrement": false, "primary": false, @@ -56,266 +56,7 @@ }, "deleted_at": { "name": "deleted_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "unique": false, - "length": 6, - "precision": null, - "scale": null, - "default": null, - "comment": null, - "enumItems": [], - "mappedType": "datetime" - }, - "danak_subscription_id": { - "name": "danak_subscription_id", - "type": "uuid", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "unique": false, - "length": null, - "precision": null, - "scale": null, - "default": null, - "comment": null, - "enumItems": [], - "mappedType": "uuid" - }, - "name": { - "name": "name", - "type": "varchar(255)", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "unique": false, - "length": 255, - "precision": null, - "scale": null, - "default": null, - "comment": null, - "enumItems": [], - "mappedType": "string" - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "unique": false, - "length": 255, - "precision": null, - "scale": null, - "default": null, - "comment": null, - "enumItems": [], - "mappedType": "string" - }, - "domain": { - "name": "domain", - "type": "varchar(255)", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "unique": false, - "length": 255, - "precision": null, - "scale": null, - "default": null, - "comment": null, - "enumItems": [], - "mappedType": "string" - }, - "is_domain_verified": { - "name": "is_domain_verified", - "type": "boolean", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "unique": false, - "length": null, - "precision": null, - "scale": null, - "default": "false", - "comment": null, - "enumItems": [], - "mappedType": "boolean" - }, - "domain_verification_token": { - "name": "domain_verification_token", - "type": "varchar(255)", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "unique": false, - "length": 255, - "precision": null, - "scale": null, - "default": null, - "comment": null, - "enumItems": [], - "mappedType": "string" - }, - "domain_verified_at": { - "name": "domain_verified_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "unique": false, - "length": 6, - "precision": null, - "scale": null, - "default": null, - "comment": null, - "enumItems": [], - "mappedType": "datetime" - }, - "logo_url": { - "name": "logo_url", - "type": "varchar(255)", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": true, - "unique": false, - "length": 255, - "precision": null, - "scale": null, - "default": null, - "comment": null, - "enumItems": [], - "mappedType": "string" - }, - "max_catalogues_count": { - "name": "max_catalogues_count", - "type": "numeric(10,0)", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "unique": false, - "length": null, - "precision": 10, - "scale": 0, - "default": "0", - "comment": null, - "enumItems": [], - "mappedType": "decimal" - } - }, - "name": "business", - "schema": "public", - "indexes": [ - { - "columnNames": [ - "danak_subscription_id" - ], - "composite": false, - "keyName": "business_danak_subscription_id_unique", - "constraint": true, - "primary": false, - "unique": true - }, - { - "keyName": "business_created_at_index", - "columnNames": [ - "created_at" - ], - "composite": false, - "constraint": false, - "primary": false, - "unique": false - }, - { - "keyName": "business_deleted_at_index", - "columnNames": [ - "deleted_at" - ], - "composite": false, - "constraint": false, - "primary": false, - "unique": false - }, - { - "keyName": "business_pkey", - "columnNames": [ - "id" - ], - "composite": false, - "constraint": true, - "primary": true, - "unique": true - } - ], - "checks": [], - "foreignKeys": {}, - "nativeEnums": {} - }, - { - "columns": { - "id": { - "name": "id", - "type": "char(26)", - "unsigned": false, - "autoincrement": false, - "primary": true, - "nullable": false, - "unique": false, - "length": 26, - "precision": null, - "scale": null, - "default": null, - "comment": null, - "enumItems": [], - "mappedType": "character" - }, - "created_at": { - "name": "created_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "unique": false, - "length": 6, - "precision": null, - "scale": null, - "default": "now()", - "comment": null, - "enumItems": [], - "mappedType": "datetime" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamptz", - "unsigned": false, - "autoincrement": false, - "primary": false, - "nullable": false, - "unique": false, - "length": 6, - "precision": null, - "scale": null, - "default": "now()", - "comment": null, - "enumItems": [], - "mappedType": "datetime" - }, - "deleted_at": { - "name": "deleted_at", - "type": "timestamptz", + "type": "timestamptz(6)", "unsigned": false, "autoincrement": false, "primary": false, @@ -384,7 +125,7 @@ "autoincrement": false, "primary": false, "nullable": false, - "unique": false, + "unique": true, "length": 26, "precision": null, "scale": null, @@ -402,58 +143,60 @@ "business_id" ], "composite": false, - "keyName": "admins_business_id_unique", "constraint": true, - "primary": false, - "unique": true + "keyName": "admins_business_id_unique", + "unique": true, + "primary": false }, { - "keyName": "admins_created_at_index", "columnNames": [ "created_at" ], "composite": false, "constraint": false, - "primary": false, - "unique": false + "keyName": "admins_created_at_index", + "unique": false, + "primary": false }, { - "keyName": "admins_deleted_at_index", "columnNames": [ "deleted_at" ], "composite": false, "constraint": false, - "primary": false, - "unique": false + "keyName": "admins_deleted_at_index", + "unique": false, + "primary": false }, { - "keyName": "admins_pkey", "columnNames": [ "id" ], "composite": false, - "constraint": true, - "primary": true, - "unique": true + "constraint": false, + "keyName": "admins_pkey", + "unique": true, + "primary": true } ], "checks": [], "foreignKeys": { "admins_business_id_foreign": { - "constraintName": "admins_business_id_foreign", "columnNames": [ "business_id" ], + "constraintName": "admins_business_id_foreign", "localTableName": "public.admins", + "referencedTableName": "public.business", "referencedColumnNames": [ "id" ], - "referencedTableName": "public.business", - "updateRule": "cascade" + "updateRule": "cascade", + "deleteRule": "no action" } }, - "nativeEnums": {} + "nativeEnums": {}, + "comment": null }, { "columns": { @@ -475,7 +218,7 @@ }, "created_at": { "name": "created_at", - "type": "timestamptz", + "type": "timestamptz(6)", "unsigned": false, "autoincrement": false, "primary": false, @@ -491,7 +234,7 @@ }, "updated_at": { "name": "updated_at", - "type": "timestamptz", + "type": "timestamptz(6)", "unsigned": false, "autoincrement": false, "primary": false, @@ -507,7 +250,7 @@ }, "deleted_at": { "name": "deleted_at", - "type": "timestamptz", + "type": "timestamptz(6)", "unsigned": false, "autoincrement": false, "primary": false, @@ -521,6 +264,22 @@ "enumItems": [], "mappedType": "datetime" }, + "danak_subscription_id": { + "name": "danak_subscription_id", + "type": "uuid", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "unique": true, + "length": null, + "precision": null, + "scale": null, + "default": null, + "comment": null, + "enumItems": [], + "mappedType": "uuid" + }, "name": { "name": "name", "type": "varchar(255)", @@ -553,6 +312,234 @@ "enumItems": [], "mappedType": "string" }, + "domain": { + "name": "domain", + "type": "varchar(255)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "unique": false, + "length": 255, + "precision": null, + "scale": null, + "default": null, + "comment": null, + "enumItems": [], + "mappedType": "string" + }, + "is_domain_verified": { + "name": "is_domain_verified", + "type": "bool", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "unique": false, + "length": null, + "precision": null, + "scale": null, + "default": "false", + "comment": null, + "enumItems": [], + "mappedType": "boolean" + }, + "domain_verification_token": { + "name": "domain_verification_token", + "type": "varchar(255)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "unique": false, + "length": 255, + "precision": null, + "scale": null, + "default": null, + "comment": null, + "enumItems": [], + "mappedType": "string" + }, + "domain_verified_at": { + "name": "domain_verified_at", + "type": "timestamptz(6)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "unique": false, + "length": 6, + "precision": null, + "scale": null, + "default": null, + "comment": null, + "enumItems": [], + "mappedType": "datetime" + }, + "logo_url": { + "name": "logo_url", + "type": "varchar(255)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "unique": false, + "length": 255, + "precision": null, + "scale": null, + "default": null, + "comment": null, + "enumItems": [], + "mappedType": "string" + }, + "max_catalogues_count": { + "name": "max_catalogues_count", + "type": "numeric(10,0)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "unique": false, + "length": null, + "precision": 10, + "scale": 0, + "default": "0", + "comment": null, + "enumItems": [], + "mappedType": "decimal" + } + }, + "name": "business", + "schema": "public", + "indexes": [ + { + "columnNames": [ + "created_at" + ], + "composite": false, + "constraint": false, + "keyName": "business_created_at_index", + "unique": false, + "primary": false + }, + { + "columnNames": [ + "danak_subscription_id" + ], + "composite": false, + "constraint": true, + "keyName": "business_danak_subscription_id_unique", + "unique": true, + "primary": false + }, + { + "columnNames": [ + "deleted_at" + ], + "composite": false, + "constraint": false, + "keyName": "business_deleted_at_index", + "unique": false, + "primary": false + }, + { + "columnNames": [ + "id" + ], + "composite": false, + "constraint": false, + "keyName": "business_pkey", + "unique": true, + "primary": true + } + ], + "checks": [], + "foreignKeys": {}, + "nativeEnums": {}, + "comment": null + }, + { + "columns": { + "id": { + "name": "id", + "type": "char(26)", + "unsigned": false, + "autoincrement": false, + "primary": true, + "nullable": false, + "unique": false, + "length": 26, + "precision": null, + "scale": null, + "default": null, + "comment": null, + "enumItems": [], + "mappedType": "character" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz(6)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "unique": false, + "length": 6, + "precision": null, + "scale": null, + "default": "now()", + "comment": null, + "enumItems": [], + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz(6)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "unique": false, + "length": 6, + "precision": null, + "scale": null, + "default": "now()", + "comment": null, + "enumItems": [], + "mappedType": "datetime" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamptz(6)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "unique": false, + "length": 6, + "precision": null, + "scale": null, + "default": null, + "comment": null, + "enumItems": [], + "mappedType": "datetime" + }, + "name": { + "name": "name", + "type": "varchar(255)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "unique": false, + "length": 255, + "precision": null, + "scale": null, + "default": null, + "comment": null, + "enumItems": [], + "mappedType": "string" + }, "content": { "name": "content", "type": "jsonb", @@ -616,7 +603,7 @@ "autoincrement": false, "primary": false, "nullable": false, - "unique": false, + "unique": true, "length": 26, "precision": null, "scale": null, @@ -624,59 +611,107 @@ "comment": null, "enumItems": [], "mappedType": "character" + }, + "slug": { + "name": "slug", + "type": "varchar(255)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "unique": false, + "length": 255, + "precision": null, + "scale": null, + "default": null, + "comment": null, + "enumItems": [], + "mappedType": "string" } }, "name": "catalogue", "schema": "public", "indexes": [ { - "keyName": "catalogue_created_at_index", + "columnNames": [ + "business_id" + ], + "composite": false, + "constraint": false, + "keyName": "catalogue_business_id_id_index", + "unique": false, + "primary": false + }, + { + "columnNames": [ + "business_id", + "slug" + ], + "composite": true, + "constraint": false, + "keyName": "catalogue_business_id_id_slug_unique", + "unique": true, + "primary": false + }, + { "columnNames": [ "created_at" ], "composite": false, "constraint": false, - "primary": false, - "unique": false + "keyName": "catalogue_created_at_index", + "unique": false, + "primary": false }, { - "keyName": "catalogue_deleted_at_index", "columnNames": [ "deleted_at" ], "composite": false, "constraint": false, - "primary": false, - "unique": false + "keyName": "catalogue_deleted_at_index", + "unique": false, + "primary": false }, { - "keyName": "catalogue_pkey", "columnNames": [ "id" ], "composite": false, - "constraint": true, - "primary": true, - "unique": true + "constraint": false, + "keyName": "catalogue_pkey", + "unique": true, + "primary": true + }, + { + "columnNames": [ + "slug" + ], + "composite": false, + "constraint": false, + "keyName": "catalogue_slug_index", + "unique": false, + "primary": false } ], "checks": [], "foreignKeys": { "catalogue_business_id_foreign": { - "constraintName": "catalogue_business_id_foreign", "columnNames": [ "business_id" ], + "constraintName": "catalogue_business_id_foreign", "localTableName": "public.catalogue", + "referencedTableName": "public.business", "referencedColumnNames": [ "id" ], - "referencedTableName": "public.business", - "deleteRule": "restrict", - "updateRule": "cascade" + "updateRule": "cascade", + "deleteRule": "restrict" } }, - "nativeEnums": {} + "nativeEnums": {}, + "comment": null }, { "columns": { @@ -698,7 +733,7 @@ }, "created_at": { "name": "created_at", - "type": "timestamptz", + "type": "timestamptz(6)", "unsigned": false, "autoincrement": false, "primary": false, @@ -714,7 +749,7 @@ }, "updated_at": { "name": "updated_at", - "type": "timestamptz", + "type": "timestamptz(6)", "unsigned": false, "autoincrement": false, "primary": false, @@ -730,7 +765,7 @@ }, "deleted_at": { "name": "deleted_at", - "type": "timestamptz", + "type": "timestamptz(6)", "unsigned": false, "autoincrement": false, "primary": false, @@ -762,15 +797,15 @@ }, "count": { "name": "count", - "type": "int", + "type": "int4", "unsigned": false, "autoincrement": false, "primary": false, "nullable": false, "unique": false, "length": null, - "precision": null, - "scale": null, + "precision": 32, + "scale": 0, "default": "1", "comment": null, "enumItems": [], @@ -794,7 +829,7 @@ }, "expected_date": { "name": "expected_date", - "type": "timestamptz", + "type": "timestamptz(6)", "unsigned": false, "autoincrement": false, "primary": false, @@ -842,7 +877,7 @@ }, "paid_at": { "name": "paid_at", - "type": "timestamptz", + "type": "timestamptz(6)", "unsigned": false, "autoincrement": false, "primary": false, @@ -877,73 +912,74 @@ "schema": "public", "indexes": [ { - "keyName": "design_requests_created_at_index", + "columnNames": [ + "business_id" + ], + "composite": false, + "constraint": false, + "keyName": "design_requests_business_id_id_index", + "unique": false, + "primary": false + }, + { "columnNames": [ "created_at" ], "composite": false, "constraint": false, - "primary": false, - "unique": false + "keyName": "design_requests_created_at_index", + "unique": false, + "primary": false }, { - "keyName": "design_requests_deleted_at_index", "columnNames": [ "deleted_at" ], "composite": false, "constraint": false, - "primary": false, - "unique": false + "keyName": "design_requests_deleted_at_index", + "unique": false, + "primary": false }, { - "keyName": "design_requests_business_id_id_index", - "columnNames": [ - "business_id.id" - ], - "composite": false, - "constraint": false, - "primary": false, - "unique": false - }, - { - "keyName": "design_requests_invoice_id_index", "columnNames": [ "invoice_id" ], "composite": false, "constraint": false, - "primary": false, - "unique": false + "keyName": "design_requests_invoice_id_index", + "unique": false, + "primary": false }, { - "keyName": "design_requests_pkey", "columnNames": [ "id" ], "composite": false, - "constraint": true, - "primary": true, - "unique": true + "constraint": false, + "keyName": "design_requests_pkey", + "unique": true, + "primary": true } ], "checks": [], "foreignKeys": { "design_requests_business_id_foreign": { - "constraintName": "design_requests_business_id_foreign", "columnNames": [ "business_id" ], + "constraintName": "design_requests_business_id_foreign", "localTableName": "public.design_requests", + "referencedTableName": "public.business", "referencedColumnNames": [ "id" ], - "referencedTableName": "public.business", - "deleteRule": "restrict", - "updateRule": "cascade" + "updateRule": "cascade", + "deleteRule": "restrict" } }, - "nativeEnums": {} + "nativeEnums": {}, + "comment": null }, { "columns": { @@ -965,7 +1001,7 @@ }, "created_at": { "name": "created_at", - "type": "timestamptz", + "type": "timestamptz(6)", "unsigned": false, "autoincrement": false, "primary": false, @@ -981,7 +1017,7 @@ }, "updated_at": { "name": "updated_at", - "type": "timestamptz", + "type": "timestamptz(6)", "unsigned": false, "autoincrement": false, "primary": false, @@ -997,7 +1033,7 @@ }, "deleted_at": { "name": "deleted_at", - "type": "timestamptz", + "type": "timestamptz(6)", "unsigned": false, "autoincrement": false, "primary": false, @@ -1032,39 +1068,40 @@ "schema": "public", "indexes": [ { - "keyName": "icon_groups_created_at_index", "columnNames": [ "created_at" ], "composite": false, "constraint": false, - "primary": false, - "unique": false + "keyName": "icon_groups_created_at_index", + "unique": false, + "primary": false }, { - "keyName": "icon_groups_deleted_at_index", "columnNames": [ "deleted_at" ], "composite": false, "constraint": false, - "primary": false, - "unique": false + "keyName": "icon_groups_deleted_at_index", + "unique": false, + "primary": false }, { - "keyName": "icon_groups_pkey", "columnNames": [ "id" ], "composite": false, - "constraint": true, - "primary": true, - "unique": true + "constraint": false, + "keyName": "icon_groups_pkey", + "unique": true, + "primary": true } ], "checks": [], "foreignKeys": {}, - "nativeEnums": {} + "nativeEnums": {}, + "comment": null }, { "columns": { @@ -1086,7 +1123,7 @@ }, "created_at": { "name": "created_at", - "type": "timestamptz", + "type": "timestamptz(6)", "unsigned": false, "autoincrement": false, "primary": false, @@ -1102,7 +1139,7 @@ }, "updated_at": { "name": "updated_at", - "type": "timestamptz", + "type": "timestamptz(6)", "unsigned": false, "autoincrement": false, "primary": false, @@ -1118,7 +1155,7 @@ }, "deleted_at": { "name": "deleted_at", - "type": "timestamptz", + "type": "timestamptz(6)", "unsigned": false, "autoincrement": false, "primary": false, @@ -1169,62 +1206,64 @@ "schema": "public", "indexes": [ { - "keyName": "icons_created_at_index", "columnNames": [ "created_at" ], "composite": false, "constraint": false, - "primary": false, - "unique": false + "keyName": "icons_created_at_index", + "unique": false, + "primary": false }, { - "keyName": "icons_deleted_at_index", "columnNames": [ "deleted_at" ], "composite": false, "constraint": false, - "primary": false, - "unique": false + "keyName": "icons_deleted_at_index", + "unique": false, + "primary": false + }, + { + "columnNames": [ + "id" + ], + "composite": false, + "constraint": false, + "keyName": "icons_pkey", + "unique": true, + "primary": true }, { - "keyName": "icons_url_index", "columnNames": [ "url" ], "composite": false, "constraint": false, - "primary": false, - "unique": false - }, - { - "keyName": "icons_pkey", - "columnNames": [ - "id" - ], - "composite": false, - "constraint": true, - "primary": true, - "unique": true + "keyName": "icons_url_index", + "unique": false, + "primary": false } ], "checks": [], "foreignKeys": { "icons_group_id_foreign": { - "constraintName": "icons_group_id_foreign", "columnNames": [ "group_id" ], + "constraintName": "icons_group_id_foreign", "localTableName": "public.icons", + "referencedTableName": "public.icon_groups", "referencedColumnNames": [ "id" ], - "referencedTableName": "public.icon_groups", - "updateRule": "cascade" + "updateRule": "cascade", + "deleteRule": "no action" } }, - "nativeEnums": {} + "nativeEnums": {}, + "comment": null }, { "columns": { @@ -1246,7 +1285,7 @@ }, "created_at": { "name": "created_at", - "type": "timestamptz", + "type": "timestamptz(6)", "unsigned": false, "autoincrement": false, "primary": false, @@ -1262,7 +1301,7 @@ }, "updated_at": { "name": "updated_at", - "type": "timestamptz", + "type": "timestamptz(6)", "unsigned": false, "autoincrement": false, "primary": false, @@ -1278,7 +1317,7 @@ }, "deleted_at": { "name": "deleted_at", - "type": "timestamptz", + "type": "timestamptz(6)", "unsigned": false, "autoincrement": false, "primary": false, @@ -1342,7 +1381,7 @@ }, "expires_at": { "name": "expires_at", - "type": "timestamptz", + "type": "timestamptz(6)", "unsigned": false, "autoincrement": false, "primary": false, @@ -1361,70 +1400,71 @@ "schema": "public", "indexes": [ { - "keyName": "refreshtokens_created_at_index", - "columnNames": [ - "created_at" - ], - "composite": false, - "constraint": false, - "primary": false, - "unique": false - }, - { - "keyName": "refreshtokens_deleted_at_index", - "columnNames": [ - "deleted_at" - ], - "composite": false, - "constraint": false, - "primary": false, - "unique": false - }, - { - "keyName": "refreshtokens_expires_at_index", - "columnNames": [ - "expires_at" - ], - "composite": false, - "constraint": false, - "primary": false, - "unique": false - }, - { - "keyName": "refreshtokens_hashed_token_index", - "columnNames": [ - "hashed_token" - ], - "composite": false, - "constraint": false, - "primary": false, - "unique": false - }, - { - "keyName": "refreshtokens_admin_id_business_id_index", "columnNames": [ "admin_id", "business_id" ], "composite": true, "constraint": false, - "primary": false, - "unique": false + "keyName": "refreshtokens_admin_id_business_id_index", + "unique": false, + "primary": false + }, + { + "columnNames": [ + "created_at" + ], + "composite": false, + "constraint": false, + "keyName": "refreshtokens_created_at_index", + "unique": false, + "primary": false + }, + { + "columnNames": [ + "deleted_at" + ], + "composite": false, + "constraint": false, + "keyName": "refreshtokens_deleted_at_index", + "unique": false, + "primary": false + }, + { + "columnNames": [ + "expires_at" + ], + "composite": false, + "constraint": false, + "keyName": "refreshtokens_expires_at_index", + "unique": false, + "primary": false + }, + { + "columnNames": [ + "hashed_token" + ], + "composite": false, + "constraint": false, + "keyName": "refreshtokens_hashed_token_index", + "unique": false, + "primary": false }, { - "keyName": "refreshtokens_pkey", "columnNames": [ "id" ], "composite": false, - "constraint": true, - "primary": true, - "unique": true + "constraint": false, + "keyName": "refreshtokens_pkey", + "unique": true, + "primary": true } ], "checks": [], "foreignKeys": {}, - "nativeEnums": {} + "nativeEnums": {}, + "comment": null } ], "nativeEnums": {} diff --git a/database/migrations/Migration20260607075945_addIndexToCatalogue.ts b/database/migrations/Migration20260607075945_addIndexToCatalogue.ts new file mode 100644 index 0000000..de79fba --- /dev/null +++ b/database/migrations/Migration20260607075945_addIndexToCatalogue.ts @@ -0,0 +1,17 @@ +import { Migration } from '@mikro-orm/migrations'; + +export class Migration20260607075945_addIndexToCatalogue extends Migration { + + override async up(): Promise { + this.addSql(`create index "catalogue_slug_index" on "catalogue" ("slug");`); + this.addSql(`create index "catalogue_business_id_id_index" on "catalogue" ("business_id");`); + this.addSql(`create unique index "catalogue_business_id_id_slug_unique" on "catalogue" ("business_id", slug);`); + } + + override async down(): Promise { + this.addSql(`drop index "catalogue_slug_index";`); + this.addSql(`drop index "catalogue_business_id_id_index";`); + this.addSql(`drop index "catalogue_business_id_id_slug_unique";`); + } + +} diff --git a/database/migrations/Migration20260607075148_addRequestDesign.ts b/database/migrations/Migration20260607123000_addDesignRequests.ts similarity index 83% rename from database/migrations/Migration20260607075148_addRequestDesign.ts rename to database/migrations/Migration20260607123000_addDesignRequests.ts index 2a580d1..9b0600f 100644 --- a/database/migrations/Migration20260607075148_addRequestDesign.ts +++ b/database/migrations/Migration20260607123000_addDesignRequests.ts @@ -1,15 +1,18 @@ import { Migration } from '@mikro-orm/migrations'; -export class Migration20260607075148_addRequestDesign extends Migration { +export class Migration20260607123000_addDesignRequests extends Migration { override async up(): Promise { this.addSql(`create table "design_requests" ("id" char(26) not null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, "title" varchar(255) not null, "count" int not null default 1, "desc" text null, "expected_date" timestamptz null, "attachments" jsonb not null default '[]', "invoice_id" uuid not null, "paid_at" timestamptz null, "business_id" char(26) not null, constraint "design_requests_pkey" primary key ("id"));`); this.addSql(`create index "design_requests_created_at_index" on "design_requests" ("created_at");`); this.addSql(`create index "design_requests_deleted_at_index" on "design_requests" ("deleted_at");`); - this.addSql(`create index "design_requests_business_id_id_index" on "design_requests" (("business_id"->>'id'));`); + this.addSql(`create index "design_requests_business_id_id_index" on "design_requests" ("business_id");`); this.addSql(`create index "design_requests_invoice_id_index" on "design_requests" ("invoice_id");`); - this.addSql(`alter table "design_requests" add constraint "design_requests_business_id_foreign" foreign key ("business_id") references "business" ("id") on update cascade on delete restrict;`); } + override async down(): Promise { + this.addSql(`drop table if exists "design_requests" cascade;`); + } + } diff --git a/src/modules/catalogue/catalogue.controller.ts b/src/modules/catalogue/catalogue.controller.ts index 4079f7d..b894d9e 100644 --- a/src/modules/catalogue/catalogue.controller.ts +++ b/src/modules/catalogue/catalogue.controller.ts @@ -27,9 +27,9 @@ export class CatalogueController { return this.catalogueService.findOne(id); } - @Get('public/catalogue/slug/:slug') - findOneBySlugAsPublic(@Param('slug') slug: string) { - return this.catalogueService.findOneOrFailBySlug(slug); + @Get('public/catalogue/:businessSlug/:catalogueSlug') + findOneBySlugAsPublic(@Param('businessSlug') businessSlug: string, @Param('catalogueSlug') catalogueSlug: string) { + return this.catalogueService.findOneOrFailBySlug(businessSlug,catalogueSlug); } // ============= Admin Routes ============== diff --git a/src/modules/catalogue/catalogue.service.ts b/src/modules/catalogue/catalogue.service.ts index b899777..5bfa0f2 100644 --- a/src/modules/catalogue/catalogue.service.ts +++ b/src/modules/catalogue/catalogue.service.ts @@ -67,8 +67,8 @@ export class CatalogueService { return catalogue } - async findOneOrFailBySlug(slug: string) { - const catalogue = await this.catalogueRepository.findOne({ slug }) + async findOneOrFailBySlug(businessSlug: string, catalogueSlug: string) { + const catalogue = await this.catalogueRepository.findOne({ business: { slug: businessSlug }, slug: catalogueSlug }) if (!catalogue) { throw new NotFoundException("catalogue by slug not found") } diff --git a/src/modules/catalogue/entities/catalogue.entity.ts b/src/modules/catalogue/entities/catalogue.entity.ts index 2aaa517..6c45154 100644 --- a/src/modules/catalogue/entities/catalogue.entity.ts +++ b/src/modules/catalogue/entities/catalogue.entity.ts @@ -1,6 +1,8 @@ import { Cascade, Collection, Entity, EntityRepositoryType, Enum, - ManyToOne, OneToMany, OneToOne, Opt, Property + Index, + ManyToOne, OneToMany, OneToOne, Opt, Property, + Unique } from "@mikro-orm/core"; import { BaseEntity } from "../../../common/entities/base.entity"; @@ -9,6 +11,9 @@ import { CatalogueSize, CatalogueStatus } from "../enums/company-status.enum"; import { CatalogueRepository } from "../repositories/catalogue.repository"; @Entity({ repository: () => CatalogueRepository }) +@Index({ properties: ['business.id'] }) +@Index({ properties: ['slug'] }) +@Unique({ properties: ['business.id', 'slug'] }) export class Catalogue extends BaseEntity { @Property({ type: "varchar", length: 255}) name!: string; diff --git a/src/modules/design-request/design-request.controller.ts b/src/modules/design-request/design-request.controller.ts index d7e5dc0..36a1b2d 100644 --- a/src/modules/design-request/design-request.controller.ts +++ b/src/modules/design-request/design-request.controller.ts @@ -7,8 +7,10 @@ import { SuperAdminAuthGuard } from '../auth/guards/superAdminAuth.guard'; import { FinishDesignRequestDto } from './dto/finish-design-request.dto'; import { FindDesignRequestsDto } from './dto/find-design-requests.dto'; import { MarkDesignRequestPaidDto } from './dto/mark-design-request-paid.dto'; +import { ApiBearerAuth } from '@nestjs/swagger'; @Controller() +@ApiBearerAuth() export class DesignRequestController { constructor(private readonly designRequestService: DesignRequestService) { } diff --git a/src/modules/design-request/design-request.service.ts b/src/modules/design-request/design-request.service.ts index aaec524..58de3ef 100644 --- a/src/modules/design-request/design-request.service.ts +++ b/src/modules/design-request/design-request.service.ts @@ -25,7 +25,7 @@ export class DesignRequestService { private readonly httpService: HttpService, @Inject(ConfigService) private readonly configService: ConfigService, - ) {} + ) { } private getDesignUnitPrice(count: number): number { if (count < 10) { @@ -59,7 +59,8 @@ export class DesignRequestService { ], }; - let invoiceData: { id: string }; + let invoiceData: { id: string } = { id: '' }; + try { const { data } = await firstValueFrom( @@ -77,8 +78,8 @@ export class DesignRequestService { }), ), ); - invoiceData = data; - } catch (error: unknown) { + invoiceData = data.data.invoice + } catch (error: unknown) { this.logger.error( `Error create invoice: ${error instanceof Error ? error.message : 'Unknown error'}`, );