update the api

This commit is contained in:
2026-09-10 19:25:07 +05:30
parent bfe4d3d2f2
commit d2e090214a
8 changed files with 65 additions and 70 deletions

View File

@@ -57,13 +57,7 @@ export default function CommercePage() {
<FeatureUnavailable
title="Orders, products and payments"
description="The Loyaly platform records a purchase against a visit and reports revenue in aggregate, but does not yet expose an orders list, a product catalogue, stock levels, payment-method splits or refunds. Those panels are held back rather than filled with sample data."
endpoints={[
'GET /api/purchases — orders list (POST exists; there is no read)',
'GET /api/products — catalogue, categories, stock',
'GET /api/reports/payments — method split',
'GET /api/reports/refunds',
]}
description="Sales are recorded as a total against a visit, so revenue and basket size are real. What is not recorded yet is the detail behind them — the individual orders, the product catalogue and stock, how customers paid, and refunds. Those sections stay empty rather than being filled with sample data."
/>
</VStack>
);

View File

@@ -121,13 +121,7 @@ export default function DashboardPage() {
<FeatureUnavailable
title="Customer activity and engagement"
description="Selfies, spins, scratch cards, challenges, referrals, events and their impact on repeat visits and revenue are not part of the Loyaly platform contract yet. These panels previously showed generated figures; they are held back until the resources exist so no number on this page is invented."
endpoints={[
'GET /api/activities — the activity catalogue and participation',
'GET /api/activities/impact — customers, repeat visits, attributed purchases',
'GET /api/campaigns — campaign funnels',
'GET /api/reports/journey — visit → engage → purchase → return → refer',
]}
description="Selfies, spins, scratch cards, challenges, referrals and events are not being recorded by any till or app yet, so there is nothing to measure their effect on repeat visits or revenue. As soon as they are, this section fills in on its own — no number here is estimated."
/>
</VStack>
);

View File

@@ -7,31 +7,27 @@ import {FeatureUnavailable} from '@/shared/components/patterns/FeatureUnavailabl
/**
* LYTs.
*
* The entire loyalty programme — reward catalogue, claims, redemptions,
* outstanding LYT liability, expiry windows, accrual rate — has no counterpart
* in the Loyaly platform contract. Every figure this page used to show was
* generated locally, including the "outstanding liability" a merchant would
* reasonably read as money they owe.
* The merchant-app specification (§2.1) states the product direction does NOT
* use loyalty points, LYT balances, redemption or tier calculation — so this
* is not a panel waiting on an endpoint, it is a feature the product dropped.
* The copy says that, rather than implying a reward catalogue is on its way.
*
* The page is kept, and states what it needs. Nothing is simulated.
* Every figure this page used to show was generated locally, including an
* "outstanding liability" in rupees that a merchant would reasonably read as
* money they owe. The route is kept so an existing bookmark still lands
* somewhere that explains itself. Nothing is simulated.
*/
export default function LytsPage() {
return (
<VStack gap={5}>
<PageHeader
title="Lyts"
description="Customer activities and rewards. 1 LYT = ₹1."
description="Loyalty rewards are not part of the current product."
/>
<FeatureUnavailable
title="The LYT programme"
description="Rewards, claims, redemptions and outstanding LYT balance are not part of the platform contract. This page previously showed generated figures — including an outstanding liability in rupees — which a merchant could not tell from real ones."
endpoints={[
'GET /api/rewards — catalogue, cost in LYTs, status, expiry',
'GET /api/rewards/redemptions — claimed vs redeemed over time',
'GET /api/lyts/ledger — issued, redeemed, outstanding balance',
'GET /api/activities — what earns LYTs, and participation',
]}
description="Loyalty points are not part of the current product. The merchant app records visits and sales, not point balances, redemptions or tiers — so there is no LYT liability to report here. This page previously showed generated figures, including an outstanding balance in rupees that a merchant could not tell from real money."
/>
</VStack>
);

View File

@@ -25,8 +25,7 @@ export default async function MerchantProfilePage() {
) : (
<FeatureUnavailable
title="Business profile"
description="The platform identifies the signed-in user but does not yet expose the company record this form edits — business name, GSTIN, timezone, currency and LYT accrual. Rather than showing an editable form backed by nothing, it is held until the resource exists."
endpoints={['GET /api/settings/profile', 'PATCH /api/settings/profile']}
description="Your sign-in details are shown above. The wider company record — business name, GSTIN, registered address, timezone and currency — is not editable here yet, so this section is left out rather than offering a form that would not save."
/>
)}
</SettingsPage>

View File

@@ -33,12 +33,7 @@ export default function LeaderboardPage() {
<FeatureUnavailable
title="Attendance and performance ranking"
description="Ranking staff needs rostering data — shifts, attendance, sales attributed per person — which the platform does not record. /api/team answers who can sign in, not who was on the floor."
endpoints={[
'GET /api/staff — shop-floor roster, distinct from console accounts',
'GET /api/staff/attendance — present, late, absent, on leave',
'GET /api/reports/staff-sales — sales attributed per person',
]}
description="Ranking staff needs shift and attendance records, and sales credited to the person who made them. The platform records who can sign in to this console — not who was on the shop floor, or which sale was theirs. Until the app records that, any ranking here would be guesswork."
/>
</VStack>
);