From a0adbfc8e8bf9d6a8ef27c0fbb16a9ad9474f8af Mon Sep 17 00:00:00 2001 From: Perry George Date: Tue, 20 May 2025 12:43:14 +0100 Subject: [PATCH 1/3] docs: deprecation notices on license methods --- docs/docs/licenses/cancel-many.md | 9 +++++++-- docs/docs/licenses/cancel.md | 8 +++++++- docs/docs/licenses/create-many.md | 8 +++++++- docs/docs/licenses/create.md | 8 +++++++- docs/docs/licenses/update-many.md | 2 +- docs/docs/licenses/update.md | 6 ++++++ 6 files changed, 35 insertions(+), 6 deletions(-) diff --git a/docs/docs/licenses/cancel-many.md b/docs/docs/licenses/cancel-many.md index caddba3..0a8b657 100644 --- a/docs/docs/licenses/cancel-many.md +++ b/docs/docs/licenses/cancel-many.md @@ -4,7 +4,12 @@ sidebar_position: 12 # Cancel many Licenses -This method will cancel many ad hoc Licenses +This method will cancel many ad hoc Licenses. +:::danger + +Deprecated. Use [cancel subscription](../subscriptions/cancel.md). + +::: ## Code Sample @@ -26,4 +31,4 @@ _Type:_ `string[]` ## Return Type -For more information about this request see our API documentation on [cancel many Licenses](https://docs.salable.app/api/v2#tag/Licenses/operation/cancelLicenses) +For more information about this request, see our API documentation on [cancel many Licenses](https://docs.salable.app/api/v2#tag/Licenses/operation/cancelLicenses) diff --git a/docs/docs/licenses/cancel.md b/docs/docs/licenses/cancel.md index 8b0c8df..38d2d78 100644 --- a/docs/docs/licenses/cancel.md +++ b/docs/docs/licenses/cancel.md @@ -6,6 +6,12 @@ sidebar_position: 11 This method will cancel an ad hoc License +:::danger + +Deprecated. Use [cancel subscription](../subscriptions/cancel.md). + +::: + ## Code Sample ```typescript @@ -26,4 +32,4 @@ _Type:_ `string` ## Return Type -For more information about this request see our API documentation on [cancel License](https://docs.salable.app/api/v2#tag/Licenses/operation/cancelLicense) +For more information about this request, see our API documentation on [cancel License](https://docs.salable.app/api/v2#tag/Licenses/operation/cancelLicense) diff --git a/docs/docs/licenses/create-many.md b/docs/docs/licenses/create-many.md index bc754d2..afca757 100644 --- a/docs/docs/licenses/create-many.md +++ b/docs/docs/licenses/create-many.md @@ -4,7 +4,13 @@ sidebar_position: 2 # Create Many Licenses -This method creates many ad hoc licenses +This method creates many ad hoc licenses. + +:::danger + +Deprecated. Use [create subscription](../subscriptions/create.md). To create seats on a per seat subscription use [add seats](../subscriptions/add-seats.md). + +::: ## Code Sample diff --git a/docs/docs/licenses/create.md b/docs/docs/licenses/create.md index 1fae387..7cd20b0 100644 --- a/docs/docs/licenses/create.md +++ b/docs/docs/licenses/create.md @@ -4,7 +4,13 @@ sidebar_position: 1 # Create License -This method creates an ad hoc license +This method creates an ad hoc license. + +:::danger + +Deprecated. Use [create subscription](../subscriptions/create.md). + +::: ## Code Sample diff --git a/docs/docs/licenses/update-many.md b/docs/docs/licenses/update-many.md index e7c01bf..c4bf34b 100644 --- a/docs/docs/licenses/update-many.md +++ b/docs/docs/licenses/update-many.md @@ -4,7 +4,7 @@ sidebar_position: 9 # Update Many Licenses -This method updates many Licenses with the values passed into the body of the request. +Deprecated. Use [manage seats](../subscriptions/manage-seats.md). ## Code Sample diff --git a/docs/docs/licenses/update.md b/docs/docs/licenses/update.md index c9a7ad2..486d912 100644 --- a/docs/docs/licenses/update.md +++ b/docs/docs/licenses/update.md @@ -6,6 +6,12 @@ sidebar_position: 8 This method updates specific Licenses with the values passed into the body of the request. +:::danger + +Deprecated. Use [update subscription](../subscriptions/update.md). To assign a grantee use [manage seats](../subscriptions/manage-seats.md). + +::: + ## Code Sample ```typescript From 3bcab5508fc956cf4c91ae4162545573a88a58c8 Mon Sep 17 00:00:00 2001 From: Perry George Date: Wed, 21 May 2025 14:11:00 +0100 Subject: [PATCH 2/3] docs: deprecated get all licenses endpoint --- docs/docs/licenses/get-all.md | 8 +++++++- docs/docs/licenses/get-count.md | 6 ++++++ docs/docs/licenses/get-one.md | 8 +++++++- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/docs/docs/licenses/get-all.md b/docs/docs/licenses/get-all.md index 85a08ab..912140c 100644 --- a/docs/docs/licenses/get-all.md +++ b/docs/docs/licenses/get-all.md @@ -4,7 +4,13 @@ sidebar_position: 3 # Get All Licenses -Returns a list of all the licenses created by your Salable organization +Returns a list of all the licenses created by your Salable organization. + +:::danger + +Deprecated. Use [get subscriptions](../subscriptions/get-all.md). + +::: ## Code Sample diff --git a/docs/docs/licenses/get-count.md b/docs/docs/licenses/get-count.md index ec1cbfa..15be759 100644 --- a/docs/docs/licenses/get-count.md +++ b/docs/docs/licenses/get-count.md @@ -6,6 +6,12 @@ sidebar_position: 5 This method returns aggregate count number of Licenses. +:::danger + +Deprecated. Use [subscription count](../subscriptions/get-count.md). + +::: + ## Code Sample ```typescript diff --git a/docs/docs/licenses/get-one.md b/docs/docs/licenses/get-one.md index 44c1ae3..d9adc6c 100644 --- a/docs/docs/licenses/get-one.md +++ b/docs/docs/licenses/get-one.md @@ -4,7 +4,13 @@ sidebar_position: 4 # Get One License -Returns a single license +Returns a single license. + +:::danger + +Deprecated. Use [get subscription](../subscriptions/get-one.md). + +::: ## Code Sample From 649d8c932451092374355375ac04c34011cdff06 Mon Sep 17 00:00:00 2001 From: Perry George Date: Thu, 4 Sep 2025 10:17:48 +0100 Subject: [PATCH 3/3] refactor: updated schema with fields marked as depreacted --- prisma/schema.prisma | 89 ++++++++++++++++++++++++-------------------- 1 file changed, 49 insertions(+), 40 deletions(-) diff --git a/prisma/schema.prisma b/prisma/schema.prisma index fdaf7df..50d58ec 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -11,7 +11,6 @@ generator client { model Product { uuid String @id @default(uuid()) - name String description String? @db.Text logoUrl String? @db.Text displayName String @@ -22,33 +21,32 @@ model Product { organisationPaymentIntegration OrganisationPaymentIntegration? @relation(fields: [organisationPaymentIntegrationUuid], references: [uuid], onUpdate: NoAction) organisationPaymentIntegrationUuid String @default("free") paymentIntegrationProductId String? - appType String @default("custom") + updatedAt DateTime @default(now()) @updatedAt + isTest Boolean @default(false) + archivedAt DateTime? plans Plan[] - capabilities Capability[] features Feature[] pricingTables PricingTable[] licenses License[] subscriptions Subscription[] currencies CurrenciesOnProduct[] - updatedAt DateTime @default(now()) @updatedAt - archivedAt DateTime? - isTest Boolean @default(false) coupons Coupon[] + name String /// @deprecated + appType String @default("custom") /// @deprecated + capabilities Capability[] /// @deprecated + @@index([organisation]) @@index([organisationPaymentIntegrationUuid]) } model Plan { uuid String @id @default(uuid()) - name String description String? @db.Text displayName String slug String @default("") status String isTest Boolean @default(false) - trialDays Int? - evaluation Boolean @default(false) evalDays Int @default(0) organisation String visibility String @@ -57,30 +55,35 @@ model Plan { maxSeatAmount Int @default(-1) interval String length Int - active Boolean - planType String pricingType String @default("free") - environment String - paddlePlanId Int? + archivedAt DateTime? + updatedAt DateTime @default(now()) @updatedAt + hasAcceptedTransaction Boolean @default(false) product Product @relation(fields: [productUuid], references: [uuid], onUpdate: NoAction, onDelete: Cascade) productUuid String featuredOnPricingTable PricingTable? currencies CurrenciesOnPlans[] features FeaturesOnPlans[] - usage LicensesUsageOnPlans[] pricingTables PlansOnPricingTables[] - capabilities CapabilitiesOnPlans[] licenses License[] subscription Subscription[] - salablePlan Boolean @default(false) - updatedAt DateTime @default(now()) @updatedAt - flags FlagsOnPlans[] - hasAcceptedTransaction Boolean @default(false) coupons CouponsOnPlans[] licensesUsage LicensesUsage[] - archivedAt DateTime? + + planType String /// @deprecated + name String /// @deprecated + trialDays Int? /// @deprecated use `evalDays` instead + evaluation Boolean @default(false) /// @deprecated + active Boolean /// @deprecated use `status` instead + environment String /// @deprecated + paddlePlanId Int? /// @deprecated + salablePlan Boolean @default(false) /// @deprecated + usage LicensesUsageOnPlans[] /// @deprecated + capabilities CapabilitiesOnPlans[] /// @deprecated + flags FlagsOnPlans[] /// @deprecated } +/// @deprecated model Capability { uuid String @id @default(uuid()) name String @@ -96,7 +99,6 @@ model Capability { model Feature { uuid String @id @default(uuid()) - name String description String? @db.Text displayName String variableName String? @default("") @@ -105,14 +107,16 @@ model Feature { valueType String @default("numerical") defaultValue String @default("0") showUnlimited Boolean @default(false) + updatedAt DateTime @default(now()) @updatedAt + sortOrder Int @default(0) product Product? @relation(fields: [productUuid], references: [uuid], onUpdate: NoAction, onDelete: Cascade) productUuid String? plans FeaturesOnPlans[] featureEnumOptions FeatureEnumOption[] pricingTables FeaturesOnPricingTables[] - updatedAt DateTime @default(now()) @updatedAt - licenses FeaturesOnLicenses[] - sortOrder Int @default(0) + + name String /// @deprecated + licenses FeaturesOnLicenses[] /// @deprecated @@index([productUuid]) } @@ -137,12 +141,13 @@ model FeaturesOnPlans { enumValue FeatureEnumOption? @relation(fields: [enumValueUuid], references: [uuid], onUpdate: NoAction, onDelete: Cascade) enumValueUuid String? isUnlimited Boolean @default(false) - isUsage Boolean @default(false) - pricePerUnit Float? - minUsage Int? - maxUsage Int? updatedAt DateTime @default(now()) @updatedAt + isUsage Boolean @default(false) /// @deprecated + pricePerUnit Float? /// @deprecated + minUsage Int? /// @deprecated + maxUsage Int? /// @deprecated + @@id([planUuid, featureUuid]) @@index([planUuid]) @@index([featureUuid]) @@ -164,21 +169,22 @@ model FeaturesOnPricingTables { model PricingTable { uuid String @id @default(uuid()) - name String status String @default("ACTIVE") - title String? - text String? @db.Text - theme String @default("light") featureOrder String @default("default") product Product @relation(fields: [productUuid], references: [uuid], onUpdate: NoAction, onDelete: Cascade) productUuid String plans PlansOnPricingTables[] features FeaturesOnPricingTables[] - customTheme Json? featuredPlan Plan? @relation(fields: [featuredPlanUuid], references: [uuid], onUpdate: NoAction, onDelete: Cascade) featuredPlanUuid String? @unique updatedAt DateTime @default(now()) @updatedAt + name String /// @deprecated + title String? /// @deprecated + text String? @db.Text /// @deprecated + theme String @default("light") /// @deprecated + customTheme Json? /// @deprecated + @@index([productUuid]) } @@ -237,8 +243,6 @@ model Session { model License { uuid String @id @default(uuid()) - name String? - email String? subscription Subscription? @relation(fields: [subscriptionUuid], references: [uuid], onUpdate: NoAction, onDelete: Cascade) subscriptionUuid String? status String @@ -250,16 +254,19 @@ model License { productUuid String plan Plan @relation(fields: [planUuid], references: [uuid], onUpdate: NoAction, onDelete: Cascade) planUuid String - capabilities Json - metadata Json? startTime DateTime @default(now()) endTime DateTime updatedAt DateTime @default(now()) @updatedAt - features FeaturesOnLicenses[] /// @deprecated Use `usage` instead. usage LicensesUsageOnPlans[] usageRecords LicensesUsage[] isTest Boolean @default(false) - cancelAtPeriodEnd Boolean @default(false) + + name String? /// @deprecated + email String? /// @deprecated Use subscription `email` instead + cancelAtPeriodEnd Boolean @default(false) /// @deprecated Use subscription `cancelAtPeriodEnd` instead. + features FeaturesOnLicenses[] /// @deprecated Use `usage` instead. + capabilities Json /// @deprecated + metadata Json? /// @deprecated @@index([status, paymentService]) @@index([productUuid]) @@ -369,13 +376,14 @@ model OrganisationPaymentIntegration { products Product[] webhooks Webhook[] accountName String - accountData Json status PaymentIntegrationStatus? accountId String? updatedAt DateTime @default(now()) @updatedAt isTest Boolean @default(false) newPaymentEnabled Boolean @default(false) + accountData Json /// @deprecated + @@index([accountId]) } @@ -434,6 +442,7 @@ model LicensesUsageOnPlans { @@index([planUuid]) } +/// @deprecated model FeaturesOnLicenses { license License @relation(fields: [licenseUuid], references: [uuid], onUpdate: NoAction, onDelete: Cascade) licenseUuid String