afc55ab910
- 新建 device 设备表(设备/系统信息 + 网络/时区/模拟器/位置 + 关联用户 + 状态/时间戳), 以客户端 device_id 唯一标识;登录后回填 user_id,游客态可空 - 原 device 模型改名 device_liveness(实为无障碍存活表),腾出 device 名给新表并保持 表名与实体名一致;同步更新 __init__ / repositories / admin queries / 文档引用 - 新增 POST /api/v1/device/report:软鉴权(带 JWT 绑用户、游客也收),按 device_id upsert; 设备信息非空才覆盖,位置 latitude/longitude 整字段覆盖含清空(以本次上报实际为准) - 新增 alembic migration bb47051068c8 建 device 表(裁掉 autogenerate 带出的无关表漂移) - 补 /device/report 端点与 upsert 单元测试 4 例
52 lines
2.6 KiB
Python
52 lines
2.6 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 Device # noqa: F401
|
|
from app.models.device_liveness import DeviceLiveness # noqa: F401
|
|
from app.models.coupon_state import ( # noqa: F401
|
|
CouponClaimRecord,
|
|
CouponDailyCompletion,
|
|
CouponPromptEngagement,
|
|
CouponSession,
|
|
)
|
|
from app.models.feedback import Feedback # noqa: F401
|
|
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.onboarding import OnboardingCompletion # 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 SigninBoostRecord, 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,
|
|
)
|