fb-spend-automation MVP

Input: google doc

goal:

ΠΠ²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡ‡Π΅Ρ‚ Π·Π°Ρ‚Ρ€Π°Ρ‚ Π² Ρ€Π΅ΠΊΠ»Π°ΠΌΠ½Ρ‹Ρ… ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚Π°Ρ… Facebook. Π’Π°ΠΊ ΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Ρ‡Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎ Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌ Π² Ρ€Π°Π·Ρ€Π΅Π·Π΅ ΠΌΠ΅Π΄ΠΈΠ°Π±Π°Π΅Ρ€ΠΎΠ².

Glossary

  • facebook агСнтство (АгСнство): это компания Ρ…ΠΎΠ»Π΄Π΅Ρ€ которая прСдоставляСт Π½Π°ΠΌ бизнСс Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Ρ‹. Для нас это Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° Π² Facebook, Ρ‡Π΅Ρ€Π΅Π· Π½ΠΈΡ… ΠΌΡ‹ пополняСм балансы, Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ балансы, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅ΠΌ балансы ΠΌΠ΅ΠΆΠ΄Ρƒ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°ΠΌΠΈ
  • facebook бизнСс ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ (Π‘Πœ): это, собствСнно говоря, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚Π° Π‘Πœ Π²Π½ΡƒΡ‚Ρ€ΠΈ Facebook. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ агСнтский Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ свой баланс, свои Ρ€Π΅ΠΊΠ»Π°ΠΌΠ½Ρ‹Π΅ ассСты ΠΈ настройки. Π’Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π³ΠΎ ΠΌΡ‹ запускаСм Ρ€Π΅ΠΊΠ»Π°ΠΌΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
  • Π±Π°Π΅Ρ€: ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π‘Πœ. ΠœΡ‹ Π²Ρ‹Π΄Π°Π΅ΠΌ Π‘Πœ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ Π±Π°Π΅Ρ€Π°ΠΌ для настройки ΠΈ запуска Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹.
  • facebook api: Π² Π΄Π°Π½Π½ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅ΠΌ Facebook Marketing API, ΠΈ доступ ΠΊ Π½Π΅ΠΌΡƒ Ρ‡Π΅Ρ€Π΅Π· GraphQL ΠΊΠ»ΡŽΡ‡.

Userstories

Ρ„ΠΈΠ½ ΠΎΡ‚Π΄Π΅Π»

я ΠΊΠ°ΠΊ финансист Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ:

  • сколько Ρƒ мСня Π΅ΡΡ‚ΡŒ фСйсбук ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚ΠΎΠ², ΠΊΠ°ΠΊΠΎΠΉ Ρƒ мСня остаток баланса Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚Π΅
  • ΠΊΠ°ΠΊΠΈΠ΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ Π½Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ остаток (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π±Ρ€Π°Ρ‚ΡŒ)
  • ΠΊΠ°ΠΊΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ малСнький остаток баланса (ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ)
  • Ρ…ΠΎΡ‡Ρƒ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€ΡƒΠΊΠ°ΠΌΠΈ внСсти фактичСский остаток Π½Π° ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚Π΅ (ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠ°)

admin

я ΠΊΠ°ΠΊ администратор систСмы:

  • добавляю Π² систСму Π½ΠΎΠ²Ρ‹Π΅ агСнтскиС Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Ρ‹ FB
  • добавляю Π² систСму Π½ΠΎΠ²Ρ‹Π΅ бизнСс Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Ρ‹ FB (Ρ‚ΠΎΠΊΠ΅Π½ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°, прокси, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ)
  • ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽ Ρ‡Ρ‚ΠΎ доступ ΠΊ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°ΠΌ сохраняСтся
  • ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ доступов ΠΊ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°ΠΌ, Π² случаС Ссли ΠΎΠ½ΠΈ ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ
  • Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚Π°ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ агСнств ΠΈ Π±Π°Π΅Ρ€ΠΎΠ² (ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ ΠΈ Ρ‚.ΠΏ.)

Π±Π°Π΅Ρ€

я ΠΊΠ°ΠΊ Π±Π°Π΅Ρ€:

  • Ρ…ΠΎΡ‡Ρƒ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΏΠΎ Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌ своих ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚ΠΎΠ²
  • Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ увСдомлСния ΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ΅ ΠΌΠΎΠΈΡ… ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚ΠΎΠ²

Entities

Бписок сущностСй Π² систСмС:

Agency

АгСнтство:

  • created_at: Π΄Π°Ρ‚Π° создания (Π² utc-0)
  • updated_at: врСмя рСдактирования
  • contact_email: тСкстовоС ΠΏΠΎΠ»Π΅ с Π΅-ΠΌΠ΅ΠΉΠ»ΠΎΠΌ
  • contact_tg: тСкстовоС ΠΏΠΎΠ»Π΅ с tg nickname
  • notes: тСкстовоС ΠΏΠΎΠ»Π΅
  • status: Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ статус агСнтства выставляСмый Π² Ρ€ΡƒΡ‡Π½ΡƒΡŽ (тСст, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ, Π°Ρ€Ρ…ΠΈΠ²)

bm_account

Π‘Πœ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚:

  • created_at: Π΄Π°Ρ‚Π° создания (Π² utc-0)
  • updated_at: врСмя рСдактирования
  • agency: ΠΊΠ°ΠΊΠΎΠΌΡƒ агСнтству ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚
  • bmID: ΠΈΠ΄ Π‘Πœ Π²Π½ΡƒΡ‚Ρ€ΠΈ facebook
  • accessToken: Ρ‚ΠΎΠΊΠ΅Π½ для запросов ΠΊ Π°ΠΏΠΈ фСйсбук
  • proxy: proxy con string, для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π°ΠΏΠΈ
  • notes: Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΊ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Ρƒ

ВычисляСмыС свойства:

  • last_sync_at: Π΄Π°Ρ‚Π° послСднСй Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…
  • status: Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ статус ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚Π°
  • buyer: связанный с Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ΠΎΠΌ Π±Π°Π΅Ρ€ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚

spend

спСнды зарСгистрированныС Π² систСмС

  • created_at: Π΄Π°Ρ‚Π° создания записи
  • date: Π΄Π°Ρ‚Π° Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ выгруТаСтся спСнд (ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с Π΄Π°Ρ‚ΠΎΠΉ создания для Ρ€ΡƒΡ‡Π½Ρ‹Ρ… ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΎΠΊ)
  • ba: с ΠΊΠ°ΠΊΠΈΠΌ бизнСс Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ΠΎΠΌ связан спСнд
  • type: Ρ‚ΠΈΠΏ спСнда (initial - Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ, manual - Ρ€ΡƒΠΊΠ°ΠΌΠΈ, api - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ‡Π΅Ρ€Π΅Π· api)
  • user: ΠΊΡ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ» дСйствиС, Ссли ΠΎΠ½ΠΎ Ρ€ΡƒΡ‡Π½ΠΎΠ΅ ΠΈΠ»ΠΈ initial
  • amount: сумма спСнда
  • currency: Π²Π°Π»ΡŽΡ‚Π° Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ учитываСтся спСнд

balances

балансы зарСгистрированныС Π² систСмС

  • created_at: Π΄Π°Ρ‚Π° создания записи
  • date: Π΄Π°Ρ‚Π° Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ баланс
  • ba: с ΠΊΠ°ΠΊΠΈΠΌ бизнСс Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ΠΎΠΌ связанна синхронизация баланса
  • type: Ρ‚ΠΈΠΏ баланса (initial - Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ, manual - Ρ€ΡƒΠΊΠ°ΠΌΠΈ, api - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ‡Π΅Ρ€Π΅Π· api)
  • user: ΠΊΡ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ» дСйствиС, Ссли ΠΎΠ½ΠΎ Ρ€ΡƒΡ‡Π½ΠΎΠ΅ ΠΈΠ»ΠΈ initial
  • amount: сумма
  • currency: Π²Π°Π»ΡŽΡ‚Π° баланса

inquires

дСйствия связанныС с Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°ΠΌΠΈ

  • created_at: Π΄Π°Ρ‚Π° создания записи
  • date: Π΄Π°Ρ‚Π° Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ событиС
  • type: api, manual
  • action: ΠΊΠ°ΠΊΠΎΠ΅ событиС ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ (block, withdrawal_requested, withdrawal_completed)
  • value: сумма заблокированная, сумма запроса Π½Π° Π²Ρ‹Π²ΠΎΠ΄, сумма Π²Ρ‹Π²ΠΎΠ΄Π° β€” зависит ΠΎΡ‚ контСкста
  • user: ΠΊΡ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ» дСйствиС, Ссли ΠΎΠ½ΠΎ Ρ€ΡƒΡ‡Π½ΠΎΠ΅

currencies

  • name: имя Π²Π°Π»ΡŽΡ‚Ρ‹
  • denomination: фСйсбук стрСмится ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ Π²Π°Π»ΡŽΡ‚Ρƒ Π²ΠΎ float, Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΎΠΊ, поэтому ΠΌΡ‹ Π»ΡƒΡ‡ΡˆΠ΅ Π·Π°Π²Π΅Π΄Π΅ΠΌ справочник Π΄Π΅Π½ΠΎΠΌΠΈΠ½Π°Ρ†ΠΈΠΉ ΠΈ Π±ΡƒΠ΄Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ int.

users

  • name: имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
  • email: Π΅ΠΌΠ΅ΠΉΠ» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
  • created_at: Π΄Π°Ρ‚Π° рСгистрации
  • updated_at: Π΄Π°Ρ‚Π° обновлСния Π΄Π°Π½Π½Ρ‹Ρ…
  • role: Ρ€ΠΎΠ»ΡŒ, bayer, admin, fin

bm_users

  • created_at: Π΄Π°Ρ‚Π° привязки
  • bm: ΠΊΠ°ΠΊΠΎΠΉ бизнСс ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚
  • buyer: ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ Π±Π°Π΅Ρ€Ρƒ привязан
  • user: ΠΊΡ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ привязку

sync requests

Π»ΠΎΠ³ всСх запросов ΠΊ Π°ΠΏΠΈ facebook

  • created_at: ΠΊΠΎΠ³Π΄Π°
  • bm: ΠΊΠ°ΠΊΠΎΠΉ Π‘Πœ
  • apiKey: ΠΊΠ°ΠΊΠΎΠΉ Π±Ρ‹Π» использован Π°ΠΏΠΈ ΠΊΠ»ΡŽΡ‡
  • proxy: ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ прокси
  • url: ΠΊΡƒΠ΄Π° ΡΡ‚ΡƒΡ‡Π°Π»ΠΈΡΡŒ
  • payload: Ρ‡Ρ‚ΠΎ отправляли
  • responceStatus: статус ΠΊΠΎΠ΄ ΠΎΡ‚Π²Π΅Ρ‚Π°
  • responceBody: сам ΠΎΡ‚Π²Π΅Ρ‚
  • errorDescription: описаниС ошибки, Ссли ΠΎΠ½Π° Π±Ρ‹Π»Π°

Π’Π°ΠΆΠ½ΠΎ:

  • Π² процСссС использования Π‘Πœ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ привязанный ΠΊ Π½Π΅ΠΌΡƒ Π±Π°Π΅Ρ€. ПослС смСны Π±Π°Π΅Ρ€Π° Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π° старыС Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡΡ‚Π°Ρ‚ΡŒΡΡ Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅ старого Π±Π°Π΅Ρ€Π°, Π° Π½ΠΎΠ²Ρ‹Π΅ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π±Π°Π΅Ρ€Π°.
  • Π½Π΅ понятно ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½Π° вСсти сСбя ручная ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠ°. Если Ρ„ΠΈΠ½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ создал ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΡƒ, Π° послС Π½Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈΠ· Π°ΠΏΠΈ - Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚.
  • Π½Π΅ понятно ΠΊΠ°ΠΊ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ пополнСния баланса, Ρ‚.ΠΊ. ΠΏΡ€ΠΈ ΠΏΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ баланса ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΡ‚Ρ€Π°Ρ‡Π΅Π½ Π΄ΠΎ синхронизации
  • ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ производится ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ? ΠžΡ‚ΠΊΡƒΠ΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ список Π±Π°Π΅Ρ€ΠΎΠ²? Как Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ Π±Π°Π΅Ρ€Ρƒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ для Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚Π΅?

ΠžΡ‚Ρ‡Π΅Ρ‚Ρ‹

ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ Π² систСмС Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ:

bm statuses

agencybmidbalance24h spendcurrencylast_syncstatus
Π±Π΅Π»Ρ‹Π΅ ΠΊΡ€ΠΎΠ»ΠΈΠΊΠΈ19832099350030usdtodayactive
сСрыС ΠΊΡ€ΠΎΠ»ΠΈΠΊΠΈ8924345931000cad7 days agoblocked
сСрыС ΠΊΡ€ΠΎΠ»ΠΈΠΊΠΈ643765284500try10 days agoblocked

spend (с Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠΌ Π·Π° ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ - last 7 days)

buyerbmidspendcurrency
Вася8924345931000cad
ΠŸΠ΅Ρ‚Ρ1983209931000usd
ΠŸΠ΅Ρ‚Ρ89243459310usd
(ΠŸΠ΅Ρ‚Ρ Π² этом случаС успСл ΠΏΠΎΡŽΠ·Π°Ρ‚ΡŒ БА Π΄ΠΎ Васи)

inquires status

agencybmidstatus
сСрыС ΠΊΡ€ΠΎΠ»ΠΈΠΊΠΈ892434593withdrawal_requested
сСрыС ΠΊΡ€ΠΎΠ»ΠΈΠΊΠΈ643765284withdrawal_completed

sync log

datebmapi keyproxyurlpayloadresponce statusresponce bodyerror description
2026.01.31 12:12892434593xxxxx:[email protected]:233https://fb.com/api…200…
2026.01.31 12:11892434593xxxxx:[email protected]:233https://fb.com/api…504…proxy timout

todo: Π΄ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Ρ‰Π΅ Π½ΡƒΠΆΠ½Ρ‹

Technical decisions

ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π°ΠΏΠΈ fb ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅ΠΆΠ°Ρ‚ΡŒ, Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ Ρ‚.ΠΏ. - Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ сбора Π΄Π°Π½Π½Ρ‹Ρ… прСдлагаСтся Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ workflows Π½Π° temporal

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ workflows ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ Π² BQ ΠΈΠ»ΠΈ PG. Π’Π°ΠΊ ΠΆΠ΅ Π² Π½Π΅ΠΌ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ Π°Π»Π΅Ρ€Ρ‚ΠΎΠ² (Π½Π° этапС mvp это out of scope).

Для построСния ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ MetaBase.

ВсС Π΄Π°Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π°Π±Π»ΠΈΡ† ΠΈΠΌΠΌΡƒΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹Π΅ β€” Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ append only.

Для построСния Π²Π΅Π± интСрфСйса ΠΌΡ‹ возьмСм sveltekit + betterauth для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ.

mocks

Π ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠΊΠΈ Ρ‚ΡƒΡ‚

Π­ΠΊΡ€Π°Π½Ρ‹

  • авторизация
  • сброс пароля
  • Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ пароля
  • ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ агСнтствамии
    • список агСнств
    • Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ агСнтства
    • Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ агСнтства
  • ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π‘Πœ
    • список Π‘Πœ
    • Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π‘Πœ
    • Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π‘Πœ
  • ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ (Π°Π΄ΠΌΠΈΠ½)
    • список ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ
    • Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
    • Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
      • Ρ„ΠΎΡ€ΠΌΠ° добавлСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
  • Ρ€Π°Π·Π΄Π΅Π» ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹
    • bm statuses (всС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ ΠΏΠΎ сСбС для Π±Π°Π΅Ρ€ΠΎΠ²)
    • spend (всС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ ΠΏΠΎ сСбС для Π±Π°Π΅Ρ€ΠΎΠ²)
    • inquires status (Π°Π΄ΠΌΠΈΠ½Ρ‹, финансисты)
    • sync log (Π°Π΄ΠΌΠΈΠ½Ρ‹)
  • ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π‘Πœ (Π°Π΄ΠΌΠΈΠ½Ρ‹)
    • список Π±ΠΌ с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π±Π°Π΅Ρ€Π°
    • Ρ„ΠΎΡ€ΠΌΠ° назначСния Π±Π°Π΅Ρ€Π°