@@ -3725,22 +3725,45 @@ object CirceImplicits {
3725
3725
telegram_ads.asJson.mapObject(_.add(" type" , Json .fromString(" telegram_ads" )))
3726
3726
case telegram_api : TransactionPartnerTelegramApi =>
3727
3727
telegram_api.asJson.mapObject(_.add(" type" , Json .fromString(" telegram_api" )))
3728
+ case affiliate_program : TransactionPartnerAffiliateProgram =>
3729
+ affiliate_program.asJson.mapObject(_.add(" type" , Json .fromString(" affiliate_program" )))
3728
3730
case user : TransactionPartnerUser => user.asJson.mapObject(_.add(" type" , Json .fromString(" user" )))
3729
3731
case other : TransactionPartnerOther .type => other.asJson.mapObject(_.add(" type" , Json .fromString(" other" )))
3730
3732
}
3731
3733
3732
3734
implicit lazy val transactionpartnerDecoder : Decoder [iozhik.OpenEnum [TransactionPartner ]] = for {
3733
3735
fType <- Decoder [String ].prepare(_.downField(" type" ))
3734
3736
value <- fType match {
3735
- case " fragment" => Decoder [TransactionPartnerFragment ].map(iozhik.OpenEnum .Known (_))
3736
- case " telegram_ads" => Decoder [TransactionPartnerTelegramAds .type ].map(iozhik.OpenEnum .Known (_))
3737
- case " telegram_api" => Decoder [TransactionPartnerTelegramApi ].map(iozhik.OpenEnum .Known (_))
3738
- case " user" => Decoder [TransactionPartnerUser ].map(iozhik.OpenEnum .Known (_))
3739
- case " other" => Decoder [TransactionPartnerOther .type ].map(iozhik.OpenEnum .Known (_))
3740
- case unknown => Decoder .const(iozhik.OpenEnum .Unknown [TransactionPartner ](unknown))
3737
+ case " fragment" => Decoder [TransactionPartnerFragment ].map(iozhik.OpenEnum .Known (_))
3738
+ case " telegram_ads" => Decoder [TransactionPartnerTelegramAds .type ].map(iozhik.OpenEnum .Known (_))
3739
+ case " telegram_api" => Decoder [TransactionPartnerTelegramApi ].map(iozhik.OpenEnum .Known (_))
3740
+ case " affiliate_program" => Decoder [TransactionPartnerAffiliateProgram ].map(iozhik.OpenEnum .Known (_))
3741
+ case " user" => Decoder [TransactionPartnerUser ].map(iozhik.OpenEnum .Known (_))
3742
+ case " other" => Decoder [TransactionPartnerOther .type ].map(iozhik.OpenEnum .Known (_))
3743
+ case unknown => Decoder .const(iozhik.OpenEnum .Unknown [TransactionPartner ](unknown))
3741
3744
}
3742
3745
} yield value
3743
3746
3747
+ implicit lazy val transactionpartneraffiliateprogramEncoder : Encoder [TransactionPartnerAffiliateProgram ] =
3748
+ (x : TransactionPartnerAffiliateProgram ) => {
3749
+ Json .fromFields(
3750
+ List (
3751
+ " sponsor_user" -> x.sponsorUser.asJson,
3752
+ " commission_per_mille" -> x.commissionPerMille.asJson
3753
+ ).filter(! _._2.isNull)
3754
+ )
3755
+ }
3756
+
3757
+ implicit lazy val transactionpartneraffiliateprogramDecoder : Decoder [TransactionPartnerAffiliateProgram ] =
3758
+ Decoder .instance { h =>
3759
+ for {
3760
+ _sponsorUser <- h.get[Option [User ]](" sponsor_user" )
3761
+ _commissionPerMille <- h.get[Int ](" commission_per_mille" )
3762
+ } yield {
3763
+ TransactionPartnerAffiliateProgram (sponsorUser = _sponsorUser, commissionPerMille = _commissionPerMille)
3764
+ }
3765
+ }
3766
+
3744
3767
implicit lazy val transactionpartnerotherEncoder : Encoder [TransactionPartnerOther .type ] =
3745
3768
(_ : TransactionPartnerOther .type ) => ().asJson
3746
3769
@@ -3758,6 +3781,7 @@ object CirceImplicits {
3758
3781
Json .fromFields(
3759
3782
List (
3760
3783
" user" -> x.user.asJson,
3784
+ " affiliate" -> x.affiliate.asJson,
3761
3785
" invoice_payload" -> x.invoicePayload.asJson,
3762
3786
" subscription_period" -> x.subscriptionPeriod.asJson,
3763
3787
" paid_media" -> x.paidMedia.asJson,
@@ -3771,6 +3795,7 @@ object CirceImplicits {
3771
3795
Decoder .instance { h =>
3772
3796
for {
3773
3797
_user <- h.get[User ](" user" )
3798
+ _affiliate <- h.get[Option [AffiliateInfo ]](" affiliate" )
3774
3799
_invoicePayload <- h.get[Option [String ]](" invoice_payload" )
3775
3800
_subscriptionPeriod <- h.get[Option [Int ]](" subscription_period" )
3776
3801
_paidMedia <- h.getOrElse[List [iozhik.OpenEnum [PaidMedia ]]](" paid_media" )(List .empty)
@@ -3779,6 +3804,7 @@ object CirceImplicits {
3779
3804
} yield {
3780
3805
TransactionPartnerUser (
3781
3806
user = _user,
3807
+ affiliate = _affiliate,
3782
3808
invoicePayload = _invoicePayload,
3783
3809
subscriptionPeriod = _subscriptionPeriod,
3784
3810
paidMedia = _paidMedia,
@@ -3824,6 +3850,38 @@ object CirceImplicits {
3824
3850
}
3825
3851
}
3826
3852
3853
+ implicit lazy val affiliateinfoEncoder : Encoder [AffiliateInfo ] =
3854
+ (x : AffiliateInfo ) => {
3855
+ Json .fromFields(
3856
+ List (
3857
+ " affiliate_user" -> x.affiliateUser.asJson,
3858
+ " affiliate_chat" -> x.affiliateChat.asJson,
3859
+ " commission_per_mille" -> x.commissionPerMille.asJson,
3860
+ " amount" -> x.amount.asJson,
3861
+ " nanostar_amount" -> x.nanostarAmount.asJson
3862
+ ).filter(! _._2.isNull)
3863
+ )
3864
+ }
3865
+
3866
+ implicit lazy val affiliateinfoDecoder : Decoder [AffiliateInfo ] =
3867
+ Decoder .instance { h =>
3868
+ for {
3869
+ _affiliateUser <- h.get[Option [User ]](" affiliate_user" )
3870
+ _affiliateChat <- h.get[Option [Chat ]](" affiliate_chat" )
3871
+ _commissionPerMille <- h.get[Int ](" commission_per_mille" )
3872
+ _amount <- h.get[Int ](" amount" )
3873
+ _nanostarAmount <- h.get[Option [Int ]](" nanostar_amount" )
3874
+ } yield {
3875
+ AffiliateInfo (
3876
+ affiliateUser = _affiliateUser,
3877
+ affiliateChat = _affiliateChat,
3878
+ commissionPerMille = _commissionPerMille,
3879
+ amount = _amount,
3880
+ nanostarAmount = _nanostarAmount
3881
+ )
3882
+ }
3883
+ }
3884
+
3827
3885
implicit lazy val animationEncoder : Encoder [Animation ] =
3828
3886
(x : Animation ) => {
3829
3887
Json .fromFields(
@@ -6605,25 +6663,34 @@ object CirceImplicits {
6605
6663
(x : StarTransaction ) => {
6606
6664
Json .fromFields(
6607
6665
List (
6608
- " id" -> x.id.asJson,
6609
- " amount" -> x.amount.asJson,
6610
- " date" -> x.date.asJson,
6611
- " source" -> x.source.asJson,
6612
- " receiver" -> x.receiver.asJson
6666
+ " id" -> x.id.asJson,
6667
+ " amount" -> x.amount.asJson,
6668
+ " nanostar_amount" -> x.nanostarAmount.asJson,
6669
+ " date" -> x.date.asJson,
6670
+ " source" -> x.source.asJson,
6671
+ " receiver" -> x.receiver.asJson
6613
6672
).filter(! _._2.isNull)
6614
6673
)
6615
6674
}
6616
6675
6617
6676
implicit lazy val startransactionDecoder : Decoder [StarTransaction ] =
6618
6677
Decoder .instance { h =>
6619
6678
for {
6620
- _id <- h.get[String ](" id" )
6621
- _amount <- h.get[Int ](" amount" )
6622
- _date <- h.get[Int ](" date" )
6623
- _source <- h.get[Option [iozhik.OpenEnum [TransactionPartner ]]](" source" )
6624
- _receiver <- h.get[Option [iozhik.OpenEnum [TransactionPartner ]]](" receiver" )
6679
+ _id <- h.get[String ](" id" )
6680
+ _amount <- h.get[Int ](" amount" )
6681
+ _nanostarAmount <- h.get[Option [Int ]](" nanostar_amount" )
6682
+ _date <- h.get[Int ](" date" )
6683
+ _source <- h.get[Option [iozhik.OpenEnum [TransactionPartner ]]](" source" )
6684
+ _receiver <- h.get[Option [iozhik.OpenEnum [TransactionPartner ]]](" receiver" )
6625
6685
} yield {
6626
- StarTransaction (id = _id, amount = _amount, date = _date, source = _source, receiver = _receiver)
6686
+ StarTransaction (
6687
+ id = _id,
6688
+ amount = _amount,
6689
+ nanostarAmount = _nanostarAmount,
6690
+ date = _date,
6691
+ source = _source,
6692
+ receiver = _receiver
6693
+ )
6627
6694
}
6628
6695
}
6629
6696
0 commit comments