66527f6cdc
## 修改内容 - 新增按 `trace_id + coupon_id` 幂等的逐次单券事件表。 - 保留每日资产记录,同时独立保存每次领券事件,避免同设备同日重跑串场。 - 后台逐场成功率和单券明细改为读取逐次事件。 - 增加历史数据回填迁移、本地 mock 脚本和回归测试。 ## 验证结果 - 领券相关测试:22 项通过。 - 全新 SQLite 数据库执行 `alembic upgrade head`:通过。 - 全量测试:508 项通过;另外 8 项为现有无关失败。 --------- Co-authored-by: unknown <798648091@qq.com> Reviewed-on: #166 Co-authored-by: linkeyu <linkeyu@wonderable.ai> Co-committed-by: linkeyu <linkeyu@wonderable.ai>
58 lines
2.7 KiB
Python
58 lines
2.7 KiB
Python
"""所有 ORM model 必须在这里 import 一次,Alembic / metadata 才能扫到。"""
|
|
from app.models.ad_ecpm import AdEcpmRecord # noqa: F401
|
|
from app.models.ad_feed_reward import AdFeedRewardRecord # noqa: F401
|
|
from app.models.ad_pangle_revenue import AdPangleDailyRevenue # noqa: F401
|
|
from app.models.ad_reward import AdRewardRecord # noqa: F401
|
|
from app.models.ad_watch_log import AdWatchLog # noqa: F401
|
|
from app.models.admin import AdminAuditLog, AdminUser # noqa: F401
|
|
from app.models.admin_role import AdminRole # noqa: F401
|
|
from app.models.analytics_event import AnalyticsEvent # noqa: F401
|
|
from app.models.analytics_selfstat import ( # noqa: F401
|
|
AnalyticsSelfStat,
|
|
AnalyticsSelfStatEvent,
|
|
)
|
|
from app.models.app_config import AppConfig # noqa: F401
|
|
from app.models.comparison import ComparisonRecord # noqa: F401
|
|
from app.models.cps_activity import CpsActivity # noqa: F401
|
|
from app.models.cps_group import CpsGroup # noqa: F401
|
|
from app.models.cps_link import CpsClick, CpsLink # noqa: F401
|
|
from app.models.cps_order import CpsOrder # noqa: F401
|
|
from app.models.cps_wx_user import CpsWxUser # noqa: F401
|
|
from app.models.comparison_milestone import ComparisonMilestoneClaim # noqa: F401
|
|
from app.models.device import DeviceLiveness # noqa: F401
|
|
from app.models.coupon_state import ( # noqa: F401
|
|
CouponClaimEvent,
|
|
CouponClaimRecord,
|
|
CouponDailyCompletion,
|
|
CouponPromptEngagement,
|
|
CouponSession,
|
|
)
|
|
from app.models.feedback import Feedback # noqa: F401
|
|
from app.models.inactivity import ( # noqa: F401
|
|
InactivityNotificationLog,
|
|
InactivityResetLog,
|
|
)
|
|
from app.models.invite import InviteRelation # noqa: F401
|
|
from app.models.invite_fingerprint import InviteFingerprint # noqa: F401
|
|
from app.models.launch_confirm_sample import LaunchConfirmSample # noqa: F401
|
|
from app.models.meituan_coupon import MeituanCoupon # noqa: F401
|
|
from app.models.notification import Notification # noqa: F401
|
|
from app.models.onboarding import OnboardingCompletion # noqa: F401
|
|
from app.models.phone_rebind_log import PhoneRebindLog # noqa: F401
|
|
from app.models.ops_marquee_seed import OpsMarqueeSeed # noqa: F401
|
|
from app.models.ops_stat_config import OpsStatConfig # noqa: F401
|
|
from app.models.price_observation import PriceObservation # noqa: F401
|
|
from app.models.price_report import PriceReport # noqa: F401
|
|
from app.models.savings import SavingsRecord # noqa: F401
|
|
from app.models.signin import SigninRecord # noqa: F401
|
|
from app.models.store_mapping import StoreMapping # noqa: F401
|
|
from app.models.task import UserTask # noqa: F401
|
|
from app.models.user import User # noqa: F401
|
|
from app.models.wallet import ( # noqa: F401
|
|
CashTransaction,
|
|
CoinAccount,
|
|
CoinTransaction,
|
|
InviteCashTransaction,
|
|
WithdrawOrder,
|
|
)
|