zapishis-client/packages/graphql/operations/subscriptions.graphql
vchikalkin 38251cd0e8 feat(profile): add subscription information to profile page
- 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.
2025-09-07 16:57:43 +03:00

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
}
}