TESWA — REVIEW PAGE (TEMPORARY)
This page explains the whole plan in simple words. Read it top to bottom. Every decision (D1–D7) and every edge question is now resolved. If it all reads right, say “confirm the plan” and building starts. To change anything, mention the section or decision number. Nothing is built yet — this page changes nothing in the product.
Think of a dealer's subscription like a 30-day pass for a showroom window. The pass decides two things:
🪟 Window spots — how many cars can be “in the window” (displayed to buyers) at the same time. البداية = 15 spots, النمو = 50, الاحترافية = 100.
📣 Bumps (رفعات) — a megaphone that pushes one of your cars back to the top of the search results. Each pass includes some free megaphone shouts every month: البداية = 5, النمو = 15, الاحترافية = 30.
Today there is one mixed pot of bumps. In the new plan there are two wallets:
Monthly wallet — رصيد الباقة Refilled to the full amount at the start of every month. Whatever you don't use is gone when the month ends — it does not pile up.
My wallet — رصيد مشترى Bumps you bought with money(«أضف رصيد رفع»). These are yours forever. They never expire, never disappear — not when the month rolls, not when you change your package, not even if your subscription ends (they just freeze and wait for you).
When you bump a car, Teswa always spends from the monthly wallet first, and only touches your paid wallet when the monthly one is empty. So the free ones (which expire) get used up first, and the ones you paid for are protected.
Example: You have 7 monthly + 5 purchased. You bump 9 cars this month. The first 7 come from the monthly wallet, the next 2 from your paid wallet. You end the month with 0 + 3. Next month starts: 15 + 3.
Upgrading is like moving to a bigger showroom today: you get a brand-new full 30 dayson the bigger package — and the days you didn't use from your old package come back to you as a discount. Nothing you paid is ever wasted.
✅ The bigger package starts immediately — more window spots right away.
✅ A fresh 30 days start today — your new renewal date is one month from now.
✅ The price is fair math: new price − (days left ÷ 30) × old price. Your unused days pay part of the bill.
✅ Your monthly wallet is refilled to the bigger package's full amount — a new month, a full wallet.
✅ Your paid wallet: untouched, as always.
Example 1 (yours): A 10 د.ك package; on day 10 you upgrade to a 20 د.ك package. You have 20 unused days worth 20 ÷ 30 × 10 ≈ 6.667 د.ك. So you pay 20 − 6.667 = 13.333 د.ك — and you get a full fresh 30 days on the big package.
Example 2: Day 20 on النمو (40 د.ك), upgrade to الاحترافية (75): 10 unused days worth 10 ÷ 30 × 40 ≈ 13.333 → you pay 75 − 13.333 = 61.667 د.ك. You get 100 window spots, 30 fresh monthly bumps, and a new month starting today (next renewal at 75).
🎁 During the welcome gift: switching packages is free and instant — real billing only starts at your first renewal.
✅ Upgrading in steps never costs extra: if you go small → medium → big, your discount counts everything you paid this month — so the total is the same as jumping straight to big.
✅ Never below zero: in the rare case a price cut makes someone's discount bigger than the upgrade price, the upgrade is simply free (0 د.ك) — the small leftover disappears; Teswa never pays a dealer to upgrade.
Downgrading is free, but it is scheduled: you keep your current package until your month ends, and the smaller package starts on the next month. You can cancel the downgrade any time before it happens.
What if you have more cars in the window than the smaller package allows?Nothing is kicked out. Your extra cars stay displayeduntil each one's own 60-day ad life ends naturally. But: you can't put newcars in the window until you're back under the limit. The page will show this clearly, for example:Displayed 68 of 50 — no new displays until you're under the limit
Honest truth about today:the current system quietly gives every dealer a free month forever — the renew button doesn't actually work, and no one is ever charged. That was fine for testing; the new plan makes renewal real:
🔁 Renew early, lose nothing. If you renew on day 25, the new 30 days are added on top of your remaining 5 days. Renewing early never wastes days.
📅 Choose your term: renew for 1 month, 3 months, 6 months, or 1 year — and each longer term can carry a discount that YOU set from the admin dashboard(change it any time, no code). Every prepaid month still refills the monthly wallet when it starts.
↩️ Changed your mind about prepaid months?(owner's rule) Months that haven't started yet can be cancelled for a refundof exactly what you paid for them — any time. The month you're currently in is never refundable. And if you downgrade while holding prepaid months, one confirmation handles everything: cancel + refund + switch.
⏳ Forgot to renew? You get a 7-day grace period: your cars stay displayed, but you can't publish new ads or use bumps. We remind you 3 days before the month ends, on the day itself, and again before grace runs out.
🔒 Still didn't renew? The subscription expires: all your displayed cars are parked safely (like pressing pause — each ad's remaining days are frozen, not lost). Nothing is deleted: your inventory, drafts, and paid wallet all wait for you.
🔓 Coming back: pay to renew, and everything unfreezes: your paid bumps are still there, and you choose which cars go back in the window.
👁 You will always SEE it (owner request): during grace and after expiry, the «اشتراك Teswa» page shows a big clear state board (amber for grace, red for expired) with the dates and one renew button — and a banner appears on everypage of the business dashboard, so it's impossible to miss. Details in section 8.
YOU decide the welcome gift from the admin dashboard: which package, how many months, and a claim window of X days (for example: النمو × 2 months, within 30 days of approval). Change any of it any time — with no code changes ever.
Who counts as “new”? The window decides.The card shows for any approved dealer whose approval was within the last X days — so if you switch the deal on after a year, it automatically covers only the recently-approved, never your long-time paying dealers. Once a dealer's window passes unclaimed, their card disappears. The card shows a “متبقي N يوماً على العرض” countdown that is personal to each dealer — counted from their own approval date, so every dealer sees their own number. For special cases you always have personal gifts.
Nothing applies automatically. The new dealer opens «اشتراك Teswa» and sees a clear offer card: أنت مؤهل لباقة النمو مجاناً لمدة شهرين — استلمها The gift starts only when they press Claim and confirm — a simple confirmation explains exactly what they get and when it ends. They can just as well ignore it and pay for any package — the offer stays available until their window ends.
If they claim it while already on a paid package, the free months are added on top at the end of their current month. It's still once per account, ever(the system remembers, so it can't be tricked). When the gift period ends, it behaves exactly like a normal month-end: renew and pay, or grace → expire. And like everything in this plan: every action has a clear confirmation in simple words before it happens.
The study found real bugs the plan will fix (short version):
🐞 Renewals have been free forever (no charge ever happens).
🐞 The «تجديد الباقة» button can never work — the server rejects it.
🐞 Paying for an upgrade doesn't give you any extra days.
🐞 Purchased bumps can be silently deleted when the month rolls.
🐞 The «أضف رصيد رفع» cards on the new page give bumps for free (no payment).
🐞 The display limit isn't enforced on every page — one page can go over it.
🐞 Technically, a dealer's browser could edit its own subscription. Everything moves server-side so this becomes impossible.
The lapsed state gets proper, beautiful UI — never a silent nothing:
🟡 Grace (7 days): the «اشتراك Teswa» page opens with an amber board — “Your package ended — your cars are still displayed until {date}” — with a big renew button and a short list of what's paused (new ads, bumps). A slim amber banner also shows on every business page, and a dot on the sidebar item.
🔴 Expired:the page opens with a red board — “Your subscription is stopped — your cars are not displayed” — plus a reassurance list (your inventory is safe, your ad-days are frozen, your paid bumps are waiting) and the renew button. A red banner shows across the whole dashboard until it's fixed.
All gifts are configured from the admin dashboard, in a new «العروض والباقات المجانية» screen:
🎁 The welcome gift: set package + months + the claim window (e.g. النمو × 2, within 30 days of approval). Dealers inside the window see the Claim card on «اشتراك Teswa» — it applies only when they claim it (section 6). Change the settings whenever you like.
🤝 Personal gifts: pick any dealer and grant X months of package Y. If they already have an active package, the months stack on top; if bigger, they upgrade immediately for the gifted span.
💰 Term discounts: the discounts for 3/6/12-month renewals are also set here — percentages you can change whenever you like.
🛠 Support toolkit: four more admin tools, all recorded and all notifying the dealer — extend a period by days (compensation), extend a grace period, gift bump credits directly, and terminate a running period (for fraud).
🧾 Everything is recorded: every gift appears in the payment history as a 0 د.ك entry («شهر مجاني — باقة مجانية») — for you in the dashboard and for the dealer on their payments page. Honest books, always.
The payment simulator gets rebuilt to behave exactly like Tap Payments(the real gateway we'll connect later — researched from their official developer docs):
💳 Every payment — dealer packages, renewals, bump packs, individual packages — goes through a real-looking checkout, and returns a real payment ID (like chg_TS03A22…) shown on the success screen, in the dealer's payment history, and in your admin dashboard.
↩️ Refunds work for real from your dashboard — full or partial, with their own refund IDs, reflected in the dealer's history, and the purchased thing is taken back accordingly.
🧪 You can also test declined cards, insufficient funds, and timeouts — the same failure cases the real gateway has, so we polish those screens now.
🔌 It mirrors Tap's exact technical contract (same objects, statuses, security signatures). When we integrate the real Tap, it's literally swapping keys — everything else is already built and battle-tested.
📒 Everything shows in «المدفوعات» — even the free things(owner request). The payments page becomes the full story of the account: paid actions with their payment IDs; upgrades with the discount math shown (new price − unused days); the welcome-gift claim and your personal gifts as 0 د.ك entries; a scheduled downgrade and the day it applied; and refunds linked under their original payment. Nothing that changes a dealer's account happens off the books — same view for the dealer and for you in the admin dashboard.
Two adversarial review rounds (five critics) hunted for weird situations. All are now defined. The highlights, in plain words:
• Every prepaid month is tracked individually (its package, its exact paid price, where it came from) — so refunds, upgrades and reports always compute from what was really paid, even with discounts.
• Prepaying ahead: renew for 1/3/6/12 months (with your configured discounts). Each prepaid month keeps its own monthly wallet refill. If you upgrade with prepaid months waiting, each converts by paying just the difference at the rate actually paid — nothing prepaid is ever lost.
• Upgrading while expired or in grace: allowed — it's simply buying the package fresh (full price, new 30 days), and it instantly ends the expired state.
• Claiming the gift while expired: works — the gift starts, everything unfreezes.
• Money can never vanish: if a payment succeeds but the internet hiccups before Teswa hears about it, a safety job re-checks every unfinished payment and applies it. Paying twice from two tabs is blocked.
• Refunds — money and goods are separate: from your dashboard you can refund the money without touching what was bought, revert the purchase without refunding, or do both — three explicit choices, each with a plain-words confirmation, all recorded in the history.
• Extra displayed cars after a downgrade stay fully functional — you can even bump them; the limit only blocks NEW displays.
• During grace your ads keep running (and their ad-days keep counting — service is being delivered); freezing happens only at expiry.
• No “cancel” button needed: stopping = simply not renewing.
• Individual accounts: their per-listing purchases stay per-listing (bought for that ad, live with that ad) — but their payments get the same real payment IDs, history, and refunds.
D1 — DECIDED ✓
Upgrading mid-month: a fresh 30 days start today on the new package, and the unused days of the old package are deducted from the price (new price − unused value).
D2 — DECIDED ✓
Grace period after a missed renewal: 7 days.
D3 — DECIDED ✓
After a downgrade, extra displayed cars stay until each ad expires naturally; no new displays until under the limit.
D4 — DECIDED ✓
Renewing early: the fresh monthly wallet arrives when the new month actually starts.
D5 — DECIDED ✓
Bump packs can be bought during grace — they wait in the paid wallet (bumping itself unlocks after renewal).
D6 — DECIDED ✓
Bumps spend from the monthly wallet first, the paid wallet last.
D7 — DECIDED ✓
The fixed trial is replaced by the admin-configured welcome gift (section 9) — package + months set by you, once per account.