Реализация реферальной системы и улучшение системы авторизации

- Добавлена полная реферальная система с GraphQL резолверами и UI компонентами
- Улучшена система регистрации с поддержкой ВКонтакте и реферальных ссылок
- Обновлена схема Prisma для поддержки реферальной системы
- Добавлены новые файлы документации правил системы
- Улучшена система партнерства и контрагентов
- Обновлены компоненты авторизации для поддержки новых функций
- Удален устаревший server.log

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Veronika Smirnova
2025-08-11 09:47:00 +03:00
parent af16402f22
commit 8f7ec70fe6
28 changed files with 5827 additions and 4313 deletions

View File

@ -119,6 +119,24 @@ export const typeDefs = gql`
# Типы для кеша склада WB
getWBWarehouseData: WBWarehouseCacheResponse!
# Реферальная система
myReferralLink: String!
myPartnerLink: String!
myReferrals(
dateFrom: DateTime
dateTo: DateTime
type: OrganizationType
source: ReferralSource
search: String
limit: Int
offset: Int
): ReferralsResponse!
myReferralStats: ReferralStats!
myReferralTransactions(
limit: Int
offset: Int
): ReferralTransactionsResponse!
}
type Mutation {
@ -306,6 +324,12 @@ export const typeDefs = gql`
isCurrentUser: Boolean
hasOutgoingRequest: Boolean
hasIncomingRequest: Boolean
# Реферальная система
referralCode: String
referredBy: Organization
referrals: [Organization!]!
referralPoints: Int!
isMyReferral: Boolean!
createdAt: DateTime!
updatedAt: DateTime!
}
@ -346,6 +370,8 @@ export const typeDefs = gql`
phone: String!
inn: String!
type: OrganizationType!
referralCode: String
partnerCode: String
}
input SellerRegistrationInput {
@ -353,6 +379,8 @@ export const typeDefs = gql`
wbApiKey: String
ozonApiKey: String
ozonClientId: String
referralCode: String
partnerCode: String
}
input MarketplaceApiKeyInput {
@ -1430,4 +1458,81 @@ export const typeDefs = gql`
extend type Query {
fulfillmentWarehouseStats: FulfillmentWarehouseStats!
}
# Типы для реферальной системы
type ReferralsResponse {
referrals: [Referral!]!
totalCount: Int!
totalPages: Int!
}
type Referral {
id: ID!
organization: Organization!
source: ReferralSource!
spheresEarned: Int!
registeredAt: DateTime!
status: ReferralStatus!
transactions: [ReferralTransaction!]!
}
type ReferralStats {
totalPartners: Int!
totalSpheres: Int!
monthlyPartners: Int!
monthlySpheres: Int!
referralsByType: [ReferralTypeStats!]!
referralsBySource: [ReferralSourceStats!]!
}
type ReferralTypeStats {
type: OrganizationType!
count: Int!
spheres: Int!
}
type ReferralSourceStats {
source: ReferralSource!
count: Int!
spheres: Int!
}
type ReferralTransactionsResponse {
transactions: [ReferralTransaction!]!
totalCount: Int!
}
type ReferralTransaction {
id: ID!
referrer: Organization!
referral: Organization!
spheres: Int!
type: ReferralTransactionType!
description: String
createdAt: DateTime!
}
enum ReferralSource {
REFERRAL_LINK
AUTO_BUSINESS
}
enum ReferralStatus {
ACTIVE
INACTIVE
BLOCKED
}
enum ReferralTransactionType {
REGISTRATION
AUTO_PARTNERSHIP
FIRST_ORDER
MONTHLY_BONUS
}
enum CounterpartyType {
MANUAL
REFERRAL
AUTO_BUSINESS
}
`