feat: 支持充值商品配置和档位首充
This commit is contained in:
@@ -309,6 +309,39 @@ impl From<module_runtime::RuntimeProfileTaskConfigAdminDisableInput>
|
||||
}
|
||||
}
|
||||
|
||||
impl From<module_runtime::RuntimeProfileRechargeProductAdminListInput>
|
||||
for RuntimeProfileRechargeProductAdminListInput
|
||||
{
|
||||
fn from(input: module_runtime::RuntimeProfileRechargeProductAdminListInput) -> Self {
|
||||
Self {
|
||||
admin_user_id: input.admin_user_id,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<module_runtime::RuntimeProfileRechargeProductAdminUpsertInput>
|
||||
for RuntimeProfileRechargeProductAdminUpsertInput
|
||||
{
|
||||
fn from(input: module_runtime::RuntimeProfileRechargeProductAdminUpsertInput) -> Self {
|
||||
Self {
|
||||
admin_user_id: input.admin_user_id,
|
||||
product_id: input.product_id,
|
||||
title: input.title,
|
||||
price_cents: input.price_cents,
|
||||
kind: map_runtime_profile_recharge_product_kind(input.kind),
|
||||
points_amount: input.points_amount,
|
||||
bonus_points: input.bonus_points,
|
||||
duration_days: input.duration_days,
|
||||
badge_label: input.badge_label,
|
||||
description: input.description,
|
||||
tier: map_runtime_profile_membership_tier(input.tier),
|
||||
enabled: input.enabled,
|
||||
sort_order: input.sort_order,
|
||||
updated_at_micros: input.updated_at_micros,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<module_runtime::RuntimeProfileRedeemCodeAdminUpsertInput>
|
||||
for RuntimeProfileRedeemCodeAdminUpsertInput
|
||||
{
|
||||
@@ -1157,6 +1190,40 @@ pub(crate) fn map_runtime_profile_task_config_admin_procedure_result(
|
||||
))
|
||||
}
|
||||
|
||||
pub(crate) fn map_runtime_profile_recharge_product_admin_list_procedure_result(
|
||||
result: RuntimeProfileRechargeProductAdminListProcedureResult,
|
||||
) -> Result<Vec<RuntimeProfileRechargeProductConfigRecord>, SpacetimeClientError> {
|
||||
if !result.ok {
|
||||
return Err(SpacetimeClientError::procedure_failed(result.error_message));
|
||||
}
|
||||
|
||||
Ok(result
|
||||
.entries
|
||||
.into_iter()
|
||||
.map(|snapshot| {
|
||||
build_runtime_profile_recharge_product_config_record(
|
||||
map_runtime_profile_recharge_product_config_snapshot(snapshot),
|
||||
)
|
||||
})
|
||||
.collect())
|
||||
}
|
||||
|
||||
pub(crate) fn map_runtime_profile_recharge_product_admin_procedure_result(
|
||||
result: RuntimeProfileRechargeProductAdminProcedureResult,
|
||||
) -> Result<RuntimeProfileRechargeProductConfigRecord, SpacetimeClientError> {
|
||||
if !result.ok {
|
||||
return Err(SpacetimeClientError::procedure_failed(result.error_message));
|
||||
}
|
||||
|
||||
let snapshot = result
|
||||
.record
|
||||
.ok_or_else(|| SpacetimeClientError::missing_snapshot("recharge product config 快照"))?;
|
||||
|
||||
Ok(build_runtime_profile_recharge_product_config_record(
|
||||
map_runtime_profile_recharge_product_config_snapshot(snapshot),
|
||||
))
|
||||
}
|
||||
|
||||
pub(crate) fn map_runtime_profile_redeem_code_admin_procedure_result(
|
||||
result: RuntimeProfileRedeemCodeAdminProcedureResult,
|
||||
) -> Result<RuntimeProfileRedeemCodeRecord, SpacetimeClientError> {
|
||||
@@ -2237,6 +2304,29 @@ pub(crate) fn map_runtime_profile_recharge_product_snapshot(
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn map_runtime_profile_recharge_product_config_snapshot(
|
||||
snapshot: RuntimeProfileRechargeProductConfigSnapshot,
|
||||
) -> module_runtime::RuntimeProfileRechargeProductConfigSnapshot {
|
||||
module_runtime::RuntimeProfileRechargeProductConfigSnapshot {
|
||||
product_id: snapshot.product_id,
|
||||
title: snapshot.title,
|
||||
price_cents: snapshot.price_cents,
|
||||
kind: map_runtime_profile_recharge_product_kind_back(snapshot.kind),
|
||||
points_amount: snapshot.points_amount,
|
||||
bonus_points: snapshot.bonus_points,
|
||||
duration_days: snapshot.duration_days,
|
||||
badge_label: snapshot.badge_label,
|
||||
description: snapshot.description,
|
||||
tier: map_runtime_profile_membership_tier_back(snapshot.tier),
|
||||
enabled: snapshot.enabled,
|
||||
sort_order: snapshot.sort_order,
|
||||
created_by: snapshot.created_by,
|
||||
created_at_micros: snapshot.created_at_micros,
|
||||
updated_by: snapshot.updated_by,
|
||||
updated_at_micros: snapshot.updated_at_micros,
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn map_runtime_profile_membership_benefit_snapshot(
|
||||
snapshot: RuntimeProfileMembershipBenefitSnapshot,
|
||||
) -> module_runtime::RuntimeProfileMembershipBenefitSnapshot {
|
||||
@@ -5037,6 +5127,19 @@ pub(crate) fn map_runtime_profile_redeem_code_mode_back(
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn map_runtime_profile_recharge_product_kind(
|
||||
value: module_runtime::RuntimeProfileRechargeProductKind,
|
||||
) -> crate::module_bindings::RuntimeProfileRechargeProductKind {
|
||||
match value {
|
||||
module_runtime::RuntimeProfileRechargeProductKind::Points => {
|
||||
crate::module_bindings::RuntimeProfileRechargeProductKind::Points
|
||||
}
|
||||
module_runtime::RuntimeProfileRechargeProductKind::Membership => {
|
||||
crate::module_bindings::RuntimeProfileRechargeProductKind::Membership
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn map_runtime_profile_recharge_product_kind_back(
|
||||
value: crate::module_bindings::RuntimeProfileRechargeProductKind,
|
||||
) -> module_runtime::RuntimeProfileRechargeProductKind {
|
||||
@@ -5050,6 +5153,25 @@ pub(crate) fn map_runtime_profile_recharge_product_kind_back(
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn map_runtime_profile_membership_tier(
|
||||
value: module_runtime::RuntimeProfileMembershipTier,
|
||||
) -> crate::module_bindings::RuntimeProfileMembershipTier {
|
||||
match value {
|
||||
module_runtime::RuntimeProfileMembershipTier::Normal => {
|
||||
crate::module_bindings::RuntimeProfileMembershipTier::Normal
|
||||
}
|
||||
module_runtime::RuntimeProfileMembershipTier::Month => {
|
||||
crate::module_bindings::RuntimeProfileMembershipTier::Month
|
||||
}
|
||||
module_runtime::RuntimeProfileMembershipTier::Season => {
|
||||
crate::module_bindings::RuntimeProfileMembershipTier::Season
|
||||
}
|
||||
module_runtime::RuntimeProfileMembershipTier::Year => {
|
||||
crate::module_bindings::RuntimeProfileMembershipTier::Year
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn map_runtime_profile_membership_status_back(
|
||||
value: crate::module_bindings::RuntimeProfileMembershipStatus,
|
||||
) -> module_runtime::RuntimeProfileMembershipStatus {
|
||||
|
||||
Reference in New Issue
Block a user