- Integrated `SubscriptionInfoBar` component into the profile page for displaying subscription details. - Updated GraphQL types to include subscription-related fields and filters. - Enhanced the profile data management by adding subscription handling capabilities. - Added a new utility function `getRemainingDays` to calculate remaining days until a specified date.
96 lines
1.9 KiB
GraphQL
96 lines
1.9 KiB
GraphQL
fragment SubscriptionFields on Subscription {
|
|
documentId
|
|
isActive
|
|
expiresAt
|
|
autoRenew
|
|
customer {
|
|
...CustomerFields
|
|
}
|
|
subscriptionHistories {
|
|
...SubscriptionHistoryFields
|
|
}
|
|
}
|
|
|
|
fragment SubscriptionHistoryFields on SubscriptionHistory {
|
|
documentId
|
|
period
|
|
startDate
|
|
endDate
|
|
amount
|
|
currency
|
|
state
|
|
paymentId
|
|
source
|
|
description
|
|
}
|
|
|
|
fragment SubscriptionSettingFields on SubscriptionSetting {
|
|
documentId
|
|
maxOrdersPerMonth
|
|
referralRewardDays
|
|
referralBonusDays
|
|
description
|
|
trialPeriodDays
|
|
trialEnabled
|
|
}
|
|
|
|
fragment SubscriptionPriceFields on SubscriptionPrice {
|
|
documentId
|
|
period
|
|
price
|
|
currency
|
|
isActive
|
|
description
|
|
}
|
|
|
|
query GetSubscription($telegramId: Long) {
|
|
subscriptions(filters: { customer: { telegramId: { eq: $telegramId } } }) {
|
|
...SubscriptionFields
|
|
}
|
|
}
|
|
|
|
query getSubscriptionSettings {
|
|
subscriptionSetting {
|
|
...SubscriptionSettingFields
|
|
}
|
|
}
|
|
|
|
query GetSubscriptionPrices($isActive: Boolean) {
|
|
subscriptionPrices(filters: { isActive: { eq: $isActive } }, sort: "price:asc") {
|
|
...SubscriptionPriceFields
|
|
}
|
|
}
|
|
|
|
query GetSubscriptionHistory($subscriptionId: ID!) {
|
|
subscriptionHistories(
|
|
filters: { subscription: { documentId: { eq: $subscriptionId } } }
|
|
sort: "startDate:desc"
|
|
) {
|
|
...SubscriptionHistoryFields
|
|
}
|
|
}
|
|
|
|
mutation CreateSubscription($input: SubscriptionInput!) {
|
|
createSubscription(data: $input) {
|
|
...SubscriptionFields
|
|
}
|
|
}
|
|
|
|
mutation UpdateSubscription($documentId: ID!, $data: SubscriptionInput!) {
|
|
updateSubscription(documentId: $documentId, data: $data) {
|
|
...SubscriptionFields
|
|
}
|
|
}
|
|
|
|
mutation CreateSubscriptionHistory($input: SubscriptionHistoryInput!) {
|
|
createSubscriptionHistory(data: $input) {
|
|
...SubscriptionHistoryFields
|
|
}
|
|
}
|
|
|
|
mutation UpdateSubscriptionHistory($documentId: ID!, $data: SubscriptionHistoryInput!) {
|
|
updateSubscriptionHistory(documentId: $documentId, data: $data) {
|
|
...SubscriptionHistoryFields
|
|
}
|
|
}
|