docs: drop Phase D.x markers now that the referral loop is closed
The "Phase D.1/D.2/D.3" comment scaffolding and the "Paddle webhook will fill this in" references became actively misleading after D.3 landed — anyone reading the code would think referral conversion was still pending. Also corrects a stale "Paddle" reference to "Stripe" (we never shipped Paddle; ended up on Stripe after the Paddle → Polar → Stripe MoR onboarding pivot). Pure docstring sweep, no behaviour change. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
ce36ce36fd
commit
1be0c5a436
5 changed files with 24 additions and 19 deletions
|
|
@ -169,16 +169,17 @@ class User(Base):
|
|||
settings_json: Mapped[dict | None] = mapped_column(JSON)
|
||||
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=utcnow)
|
||||
last_login_at: Mapped[datetime | None] = mapped_column(DateTime(timezone=True))
|
||||
# Referrals (Phase D.1). The code is unique + URL-safe; generated on
|
||||
# first need rather than at row creation so existing accounts get one
|
||||
# the next time they hit /settings.
|
||||
# Referral code is unique + URL-safe; generated on first need rather
|
||||
# than at row creation so existing accounts get one the next time
|
||||
# they hit /settings.
|
||||
referral_code: Mapped[str | None] = mapped_column(String(16), nullable=True)
|
||||
referred_by_user_id: Mapped[int | None] = mapped_column(
|
||||
ForeignKey("users.id", ondelete="SET NULL"), nullable=True,
|
||||
)
|
||||
# Paid-tier credit window (Phase D.2). Null = no credit. When set and
|
||||
# > now(), the user gets paid-tier features regardless of `tier`.
|
||||
# Populated by admin CLI (manual grants) or Paddle webhook (D.3).
|
||||
# Paid-tier credit window. Null = no credit. When set and > now(),
|
||||
# the user gets paid-tier features regardless of `tier`. Populated
|
||||
# by admin CLI (manual grants) and by referral conversion (45 days
|
||||
# per converted referral, both parties).
|
||||
credit_until: Mapped[datetime | None] = mapped_column(
|
||||
DateTime(timezone=True), nullable=True,
|
||||
)
|
||||
|
|
@ -248,8 +249,9 @@ class Referral(Base):
|
|||
"""One row per captured (referrer, referred) pair. Created at signup
|
||||
when the new user supplied a valid `?ref=<code>`. The conversion
|
||||
fields (`converted_at`, `credited_at`) stay null until the referred
|
||||
user makes their first paid subscription — Phase D.3 fills them in
|
||||
via the Paddle webhook."""
|
||||
user makes their first paid subscription — the Stripe webhook calls
|
||||
``referral_service.convert_referral`` to fill them in and extend
|
||||
both parties' ``credit_until``."""
|
||||
__tablename__ = "referrals"
|
||||
id: Mapped[int] = mapped_column(_PK, primary_key=True, autoincrement=True)
|
||||
referrer_user_id: Mapped[int] = mapped_column(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue