Studio

Prompt စာကြည့်တိုက်

အသေးစိတ် Studio prompt များ — ပန်းတိုင်၊ အသုံးပြုသူ၊ စခရင်၊ ဒေတာနှင့် မလုပ်မည့်အရာများ။ ကူးယူ၊ ပြင်ဆင်၊ ship လုပ်ပါ။

Operations

Multi-branch inventory control

Branch အလိုက် stock၊ အကြောင်းပြချက်နှင့် ချိန်ညှိမှု၊ မှတ်တမ်းရှင်း။

Build a production-ready Quark App plugin for multi-branch inventory control.

## Business context
A retail / wholesale operator runs 2–20 branches. Warehouse staff and branch managers must always know on-hand quantity per product per branch. Owners need a cross-branch view and a low-stock list. Adjustments must be auditable (who / when / why) — never silent edits.

## Goal (one sentence)
Ship a calm, mobile-friendly inventory plugin where staff adjust stock with a required reason, managers export CSV, and owners compare branches — using standard Quark App services, entities, pages, and localization.

## Actors & permissions
1. Warehouse staff
   - View stock for branches they can access.
   - Create adjustments (positive or negative) with required reason + optional note.
   - View recent adjustment history for a product/branch.
2. Branch manager
   - Same as staff for their own branch only.
   - Export current stock CSV for their branch.
3. Owner / admin
   - See all branches.
   - Compare quantity of one SKU across branches.
   - Configure low-stock threshold (default 5 for v1; store in settings if easy, else hardcode with a TODO).

Deny cross-branch adjust for branch managers. Show clear empty / forbidden states.

## Primary user flows
### Flow A — Find stock
1. Open Stock list.
2. Filter by branch (required for non-admin), product name or SKU search, toggle “Low stock only”.
3. See columns: Product name, SKU, Branch, Qty, Updated at.
4. Tap a row → Stock detail (current qty + last 20 adjustments).

### Flow B — Adjust stock
1. From list or detail → Adjust.
2. Confirm product + branch (pre-filled when possible).
3. Enter delta as signed number OR “set to” absolute qty (pick one UX; prefer delta with live preview of new qty).
4. Reason: required select or short text (min 3 chars). Presets: Received, Damaged, Count correction, Return, Other.
5. Optional note (max 500 chars).
6. Save → create adjustment ledger row → update on-hand qty atomically → toast success → return to detail.
7. Validation: reject qty going below 0 unless admin override “Allow negative” (default off).

### Flow C — Low stock
1. Low stock page lists products where qty ≤ threshold.
2. Group or filter by branch.
3. One-click jump to Adjust.

### Flow D — Export
1. Manager/admin: Export CSV of current stock for selected branch (or all for admin).
2. Columns: sku, productName, branchName, quantity, updatedAt.

## Screens (v1 must-have)
1. Stock list (default landing)
2. Stock detail + embedded history
3. Adjust stock form
4. Low stock list
5. Settings stub (threshold) — optional if timeboxed; otherwise constant

UI tone: calm lists, large tap targets on mobile, status chips only where useful, no dense dashboards.

## Data model (entities)
StockBalance: id, productId, productName, sku, branchId, branchName, quantity (number), updatedAt, updatedByUserId
StockAdjustment: id, stockBalanceId, productId, branchId, delta, quantityBefore, quantityAfter, reason, note?, actorUserId, actorDisplayName, createdAt
Settings (optional): lowStockThreshold (int, default 5)

Indexes / queries: unique (productId, branchId); list by branch; search by name/sku; low-stock query.

## Edge cases
- Concurrent adjusts: last-write with optimistic quantityBefore check; show conflict message if stale.
- Missing product/branch: block save with clear error.
- Empty catalog: empty state CTA “No stock yet — adjust to create a balance row” (creating balance on first adjust is OK).
- Localization: all labels via locale keys; support en / zh / my patterns used in Quark App.

## Acceptance criteria
- [ ] Staff can adjust with required reason and see history.
- [ ] Branch manager cannot see other branches’ stock.
- [ ] Low stock list respects threshold.
- [ ] CSV export downloads for allowed scope.
- [ ] Qty never goes negative without explicit override.
- [ ] Pages wrapped in standard Page / PageTitle / PageContent patterns.
- [ ] No hardcoded user-facing English-only strings in JSX.

## Out of scope (do not build in v1)
Barcode hardware, purchase orders, inter-branch transfers, costing/FIFO/AVCO, supplier sync, batch/lot/serial, reservations, multi-UOM conversion UI.

Sales

Sales invoice draft → approve → PDF

Line item၊ အတည်ပြု၊ ပေးပြီး၊ PDF ပရင့်။

Build a Quark App sales invoice plugin for a small B2B/B2C sales team.

## Business context
Sales people draft invoices with line items. A manager approves before the invoice is “official”. Finance marks paid and prints a simple PDF for the customer. Status must be obvious at a glance. No tax engine in v1.

## Goal
Ship draft → submit → approve/reject → mark paid → printable PDF, with clear permissions and an audit-friendly status history.

## Actors & permissions
1. Sales user: create/edit drafts; submit for approval; view own invoices (or all if policy simpler — prefer all readable, edit only draft they created).
2. Approver (manager): approve or reject pending invoices; comment required on reject.
3. Accountant / manager: mark approved invoices as paid; open PDF.

State machine (enforce server-side):
draft → pending → approved → paid
draft → pending → rejected → draft (after edit) OR stay rejected read-only
Only draft is editable. Pending locks fields. Paid is immutable.

## Primary flows
### Create & submit
1. New invoice → pick/enter customer name (partner picker if available, else free text + optional customerId).
2. Issue date (default today), due date (optional).
3. Add lines: description (required), qty (>0), unit price (≥0). Optional product link.
4. Subtotal = sum(qty * unitPrice). No tax, no discount fields in v1.
5. Save draft anytime. Submit → status pending; show banner “Waiting for approval”.

### Approve / reject
1. Approver opens pending queue.
2. Approve → status approved; record approver + time.
3. Reject → require comment (min 5 chars) → status rejected; sales can edit and resubmit (back to draft then pending).

### Mark paid & PDF
1. On approved invoice → Mark paid → paidAt = now; optional payment note.
2. Print/PDF view: company placeholder name, invoice number, customer, dates, line table, subtotal, status, paid date if any. Clean A4, printable CSS.

## Screens
1. Invoice list — filters: status, customer text, date range; status chips
2. Invoice form (create/edit)
3. Invoice detail (read) with actions by role
4. Approver queue (pending only) — can be a filter preset on list
5. Printable PDF route/view

## Data model
Invoice: id, number (human-readable, unique), customerId?, customerName, issueDate, dueDate?, status, subtotal, approverUserId?, approverComment?, approvedAt?, paidAt?, paymentNote?, createdByUserId, createdAt, updatedAt
InvoiceLine: id, invoiceId, sortOrder, description, quantity, unitPrice, lineTotal
InvoiceEvent (optional but preferred): id, invoiceId, fromStatus, toStatus, actorUserId, comment?, createdAt

Numbering: INV-YYYYMMDD-#### or sequential; never reuse.

## Validation & UX
- At least one line required to submit.
- Confirm dialog before submit / mark paid.
- Empty list states per filter.
- Mobile: stack line editor; large primary buttons.
- Localize all strings.

## Acceptance criteria
- [ ] Illegal transitions blocked with clear errors.
- [ ] Reject without comment impossible.
- [ ] PDF readable and printable.
- [ ] List filters work; status visible as chips.
- [ ] Quark App page layout + services + DTOs follow plugin standards.

## Out of scope
Tax engines, multi-currency, recurring invoices, credit notes, e-invoice networks, inventory deduction, payment gateway capture/chargebacks, multi-level approval chains.

People

Staff check-in / check-out roster

နေ့စဉ် roster၊ နောက်ကျမှတ်၊ လစဉ် CSV။

Build a Quark App attendance plugin for shops and small offices.

## Business context
Employees punch in/out on phone or shared tablet. Managers need today’s who-is-here list and a monthly CSV for payroll prep. Late is computed simply: after 09:00 + 15 minutes grace (hardcoded v1, document as configurable later).

## Goal
Fast check-in/out, clear daily roster with late flags, month history, CSV export — list-first UI, not charts.

## Actors
1. Employee: punch in/out; see own today status and recent days.
2. Manager: today’s roster (filter branch); month list; export CSV.
3. Admin: same as manager all branches; see grace rule note in UI.

## Flows
### Punch
1. My Attendance shows big Check in if not in; Check out if in.
2. Disable double check-in same day; allow only one open session.
3. Show last punch time prominently.
4. If checkout forgotten yesterday: show banner “Yesterday still open — check out or ask manager” (manager can force close with note).

### Roster
1. Today’s roster rows: employee, branch, status (Not in / In / Out / Late), check-in, check-out.
2. Late = checked in after start+grace.
3. Pull-to-refresh / refresh button.

### Month & export
1. Pick month + optional employee.
2. Export CSV: employeeName, employeeId, date, checkInAt, checkOutAt, isLate, branch.

## Screens
1. My Attendance (employee home)
2. Today roster (manager)
3. Month records
4. Export action on month view

## Data model
AttendanceDay: id, employeeUserId, employeeName, branchId, date (calendar date), checkInAt?, checkOutAt?, isLate, forceClosedBy?, forceCloseNote?, createdAt, updatedAt
Rules constants: workdayStart="09:00", graceMinutes=15 (document in code comments)

## Edge cases
- Timezone: use server/org local consistently; store ISO timestamps; display local.
- Night shift: out of scope — assume same calendar date.
- Manager editing punches: out of scope except force-close open day.

## Acceptance criteria
- [ ] Employee can check in/out in under 2 taps.
- [ ] Late flag correct for grace rule.
- [ ] Manager CSV downloads.
- [ ] Localized labels; Quark App patterns.

## Out of scope
GPS geofencing, face recognition, shift templates, leave/time-off, overtime pay math, biometric devices.

Sales

Loyalty earn & redeem

အရောင်းမှ အမှတ်၊ လျှော့ဈေးလဲ၊ ဖုန်းဖြင့် ရှာ။

Build a Quark App loyalty points plugin for retail counters.

## Business context
Cashiers look up customers by phone, earn points when a sale completes, and redeem points for bill discounts. Customer service needs a ledger. Rules should be easy to change later — v1 hardcodes earn/redeem rates but isolates them in one config module.

## Goal
Register customers, earn/redeem with a non-negative balance ledger, and keep every movement auditable.

## Actors
1. Cashier: lookup by phone; register; earn; redeem; see balance.
2. Customer service: read-only ledger + balance.
3. Admin: view config rates (read-only UI showing hardcoded values is OK).

## Rules (v1 constants in one file)
- Earn: 1 point per 1.00 currency unit of completed sale amount (floor to int).
- Redeem: 100 points = 1.00 currency unit discount.
- Balance never < 0.
- Redeem points must be multiples of 100 (or allow any and floor discount — pick multiples of 100 for clarity).

## Flows
### Lookup / register
1. Enter phone (normalize spaces); search.
2. If missing → Register: name + phone (unique). Soft validate phone length.

### Earn
1. From customer card → Earn.
2. Enter sale reference (text/id) + amount.
3. Compute points; confirm; write ledger earn; increase balance.

### Redeem
1. Enter points to burn; show discount preview.
2. Block if insufficient; confirm; ledger redeem; decrease balance; return discount amount for cashier to apply manually on POS (do not integrate POS in v1).

### Ledger
1. Reverse-chronological list: type, points delta, balance after, sale ref, actor, time.

## Screens
1. Customer lookup
2. Customer profile (balance + actions + recent ledger)
3. Register form
4. Earn form / Redeem form
5. Full ledger page with filters (type, date)

## Data model
LoyaltyCustomer: id, phone (unique), name, balance, createdAt, updatedAt
LoyaltyLedger: id, customerId, type ("earn"|"redeem"), pointsDelta (signed), balanceAfter, saleRef?, discountAmount?, actorUserId, note?, createdAt
LoyaltyConfig (code module): earnRate, redeemBlockSize, redeemValuePerBlock

## Edge cases
- Double-submit: idempotency key optional; at least disable button while saving.
- Race on balance: transactional update; reject if insufficient at commit.

## Acceptance criteria
- [ ] Unique phone enforced.
- [ ] Ledger explains every balance change.
- [ ] Redeem cannot overdraft.
- [ ] Config rates centralized for future admin UI.
- [ ] Localized Quark App UI.

## Out of scope
Tiers, expiry, SMS OTP, wallet apps, automatic POS injection, multi-brand point pools, referral bonuses.

Sales

Single-counter POS helper

အမြန် cart၊ ငွေသား/လွှဲ၊ receipt ရိုးရှင်း — ကောင်တာတစ်ခုသာ။

Build a lightweight Quark App POS helper for a single counter.

## Business context
One cashier sells quickly: pick products, set qty, take cash or transfer, print a simple receipt. Owner glances at today’s tickets. Speed and large tap targets beat features.

## Goal
Sell → pay → receipt → today’s list, with zero multi-register complexity.

## Actors
1. Cashier: full sell flow.
2. Owner: today’s sales list + open receipt.

## Flows
### Sell
1. Home = Sell screen.
2. Product picker: search + recent/favorites grid (seed with sample products if catalog empty; prefer real products plugin if available).
3. Cart lines with +/− steppers and swipe/remove.
4. Running total always visible.
5. Clear cart with confirm.

### Pay
1. Pay sheet: Cash or Transfer.
2. Cash: amount tendered; show change; block if tendered < total.
3. Transfer: mark as paid transfer; optional reference note.
4. Complete → create ticket status completed → open receipt.

### Receipt & today
1. Receipt view: store name placeholder, ticket no, datetime, lines, total, method, tendered/change or transfer ref.
2. Print via browser print.
3. Today’s sales: reverse chrono list; tap to re-open receipt.

## Screens
1. Sell (cart)
2. Pay modal/sheet
3. Receipt
4. Today’s sales

## Data model
PosTicket: id, number, status ("completed"), total, paymentMethod ("cash"|"transfer"), amountTendered?, change?, transferRef?, createdByUserId, createdAt
PosTicketLine: id, ticketId, productId?, name, quantity, unitPrice, lineTotal

## UX constraints
- Thumb-zone primary buttons.
- Numeric keypad friendly.
- No table service, no seats, no modifiers beyond qty.
- Offline not required.

## Acceptance criteria
- [ ] Complete sale under ~15 seconds for 2-line cart (happy path).
- [ ] Change math correct.
- [ ] Receipt printable.
- [ ] Today list updates immediately after sale.
- [ ] Quark App patterns + locales.

## Out of scope
Multi-register, inventory auto-deduct (optional stub OK), barcode drivers, kitchen tickets, split bills, tips, customer display hardware.

Operations

Purchase order & receive goods

Supplier ထံ PO၊ လိုင်းအလိုက် လက်ခံ၊ ပြီးဆုံး။

Build a Quark App purchase order (PO) + goods receipt plugin.

## Business context
Buyers order from suppliers. Warehouse receives against PO lines, often partially. Managers track open vs closed POs. Stock posting to inventory can be a follow-up — v1 tracks qty received on the PO itself.

## Goal
Draft → ordered → partial/received, with partial receives, over-receive guard, and a receive timeline.

## Actors
1. Buyer: create/edit draft; mark ordered; cancel draft.
2. Warehouse: receive quantities against ordered/partial POs.
3. Manager: list/filter; read-only detail.

## State machine
draft → ordered → partial → received
draft → cancelled
ordered/partial cannot return to draft. Cancel only from draft.

## Flows
### Create PO
1. Choose supplier (partner or free text + id).
2. Expected date optional.
3. Lines: product, qtyOrdered > 0, unitCost ≥ 0.
4. Save draft; Mark ordered locks qtyOrdered edits.

### Receive
1. Open ordered/partial PO → Receive.
2. For each line enter qtyReceivedThisTime (≥0).
3. Cap at remaining unless “Allow over-receive” checked (permission: manager/admin).
4. Save receive event; update qtyReceived totals; if all lines complete → received else partial.
5. Timeline shows each receive batch: who, when, per-line qtys.

## Screens
1. PO list (supplier, status filters)
2. PO form
3. PO detail + timeline
4. Receive form

## Data model
PurchaseOrder: id, number, supplierId?, supplierName, status, expectedDate?, createdByUserId, orderedAt?, cancelledAt?, createdAt, updatedAt
PurchaseOrderLine: id, poId, productId?, productName, qtyOrdered, qtyReceived, unitCost
GoodsReceipt: id, poId, actorUserId, note?, createdAt
GoodsReceiptLine: id, receiptId, poLineId, qtyReceived

## Acceptance criteria
- [ ] Partial receive works across multiple sessions.
- [ ] Over-receive blocked by default.
- [ ] Status auto-updates to partial/received.
- [ ] Timeline accurate.
- [ ] Localized Quark App UI.

## Out of scope
Supplier portal, 3-way invoice match, landed cost, automatic inventory posting, approvals matrix, blanket POs.

Finance

Employee expense claims

Claim တင်၊ မှတ်ချက်၊ မန်နေဂျာ approve၊ ပြန်ပေးပြီးမှတ်။

Build a Quark App employee expense claims plugin.

## Business context
Employees submit out-of-pocket spend. Managers approve. Finance marks reimbursed. Keep a clear audit trail. Single currency. Receipt file upload is out of scope — URL text field only.

## Goal
Draft → submitted → approved/rejected → reimbursed, with mobile-friendly forms.

## Actors
1. Employee: create/edit draft; submit; withdraw submitted back to draft; view own claims.
2. Manager: queue of submitted team claims; approve/reject with comment on reject.
3. Finance: mark approved as reimbursed; set reimbursedAt + optional payment ref.

## State machine
draft → submitted → approved → reimbursed
submitted → rejected → draft (employee edits)
Employee can withdraw submitted → draft.
Only owner edits drafts.

## Flows
1. New claim: category (travel|meals|supplies|other), amount > 0, spendDate, note, optional receiptUrl.
2. Submit from detail.
3. Manager approve/reject.
4. Finance mark reimbursed.

## Screens
1. My claims list (status chips)
2. Claim form
3. Claim detail + status history
4. Manager queue
5. Finance reimbursed action on detail

## Data model
ExpenseClaim: id, employeeUserId, category, amount, currencyCode (fixed), spendDate, note?, receiptUrl?, status, managerUserId?, managerComment?, decidedAt?, reimbursedAt?, paymentRef?, createdAt, updatedAt
ExpenseClaimEvent: id, claimId, fromStatus, toStatus, actorUserId, comment?, createdAt

## Acceptance criteria
- [ ] Illegal transitions blocked.
- [ ] Reject requires comment.
- [ ] Employee cannot see others’ claims.
- [ ] Mobile form usable.
- [ ] Locales + Quark App patterns.

## Out of scope
OCR, multi-level approvals, policy engines, payroll export, card feeds, multi-currency FX.

Sales

Simple CRM leads pipeline

Lead ဖမ်း၊ stage ရွှေ့၊ note၊ owner သတ်မှတ်။

Build a Quark App mini-CRM for sales leads.

## Business context
A small sales team captures inbound leads, assigns owners, moves stages, and logs notes. No email automation — just a trustworthy pipeline.

## Goal
Create → assign → stage changes → notes, with list/board views and lost reasons.

## Actors
1. Sales rep: CRUD own leads; notes; stage changes; sees own pipeline (and unassigned).
2. Sales lead: all leads; reassign owner.
3. Admin: same as sales lead; stages fixed in v1 but listed in settings read-only.

## Stages (fixed v1)
New → Contacted → Qualified → Won
Any stage → Lost (require lostReason)
Won/Lost are terminal unless sales lead reopens to Contacted (optional; if complex, keep terminal).

## Flows
1. Create lead: name required; phone or email required (at least one); company; source (walk-in|referral|facebook|other); owner default = creator.
2. Board or list filtered by stage/owner.
3. Detail: fields + notes timeline + stage control.
4. Add note (required non-empty).
5. Reassign owner (sales lead).

## Screens
1. Pipeline board (or list with stage groups)
2. Lead detail
3. Create/edit lead
4. My leads quick filter

## Data model
Lead: id, name, phone?, email?, company?, source, stage, ownerUserId, lostReason?, createdByUserId, createdAt, updatedAt
LeadNote: id, leadId, body, authorUserId, createdAt

## Acceptance criteria
- [ ] Cannot set Lost without reason.
- [ ] Notes newest-first.
- [ ] Owner filter works.
- [ ] Calm UI; localized; Quark App patterns.

## Out of scope
Email/WhatsApp sync, lead scoring AI, quotes, full accounts hierarchy, marketing campaigns.

Operations

Local delivery order tracking

Delivery job၊ rider တာဝန်ပေး၊ delivered အထိ။

Build a Quark App local delivery tracking plugin for shops with riders.

## Business context
Dispatchers create delivery jobs from order references, assign riders, and track status to delivered/failed. Customer service searches by phone or order ref. No live map in v1 — status timeline is enough.

## Goal
Job lifecycle with forced sequential statuses, fail reasons, and searchable history.

## Actors
1. Dispatcher: create jobs; assign/reassign rider; view all open jobs.
2. Rider: see assigned jobs; advance status; mark failed with reason.
3. Customer service: search; read timeline; no status edits.

## Status path (strict)
pending → assigned → picked_up → out_for_delivery → delivered
At assigned or later → failed (require failReason)
Do not skip statuses. UI only shows the next legal action(s).

## Flows
1. Create job: customerName, phone, address (textarea), orderRef, promisedWindow (text, e.g. “2–4pm”).
2. Assign rider from users flagged as riders (simple list / role tag; seed helper OK).
3. Rider updates via large status buttons.
4. Timeline event on every change: actor, from, to, time, comment.

## Screens
1. Jobs list (status, rider filters; open vs done tabs)
2. Create job
3. Job detail + timeline
4. Rider “My jobs” (assigned & active)

## Data model
DeliveryJob: id, orderRef, customerName, phone, address, promisedWindow?, riderUserId?, status, failReason?, createdByUserId, createdAt, updatedAt, completedAt?
DeliveryEvent: id, jobId, fromStatus?, toStatus, actorUserId, comment?, createdAt

## Acceptance criteria
- [ ] Illegal skips blocked.
- [ ] Failed requires reason.
- [ ] Search by phone or orderRef.
- [ ] Rider only sees own assignments (plus maybe unassigned if dispatcher shares — prefer own only).
- [ ] Localized Quark App UI.

## Out of scope
Live GPS, route optimization, SMS/push, POD photos, proof signature, COD settlement math.

Services

Service appointment booking

ဝန်ထမ်းနှင့် slot မှာယူ၊ နေ့ပြက္ခဒိန်၊ ပယ်/ရွှေ့။

Build a Quark App appointment booking plugin for a small clinic or salon (staff-operated, single location).

## Business context
Front desk books services with a staff member on a day calendar. Staff see their own schedule. Admin maintains services (name + duration) and which users are bookable staff. No public self-booking portal in v1.

## Goal
Prevent overlapping appointments per staff, support cancel/reschedule with audit note, and keep a clear day view.

## Actors
1. Front desk: book, cancel, reschedule; see all staff columns/list for a day.
2. Staff: read-only own day schedule.
3. Admin: CRUD services; mark users as bookable staff.

## Rules
- Working hours v1: 09:00–18:00 local; slot starts on 15-minute grid.
- Duration from service: 15 | 30 | 45 | 60 (admin can set any positive int multiple of 15 preferred).
- endAt = startAt + duration.
- No overlap for same staff (compare intervals).
- Buffer times: none beyond duration.
- Status: booked | cancelled | completed (optional complete button; or auto-complete after endAt — prefer manual complete + cancel).

## Flows
### Book
1. Pick date → day calendar.
2. Book: service → staff → start time (enabled slots only) → customer name + phone → optional note.
3. Validate overlap; save booked.

### Reschedule / cancel
1. From appointment: Reschedule (pick new start; same validations) or Cancel (require short reason).
2. Write audit note/event.

### Admin
1. Services list CRUD.
2. Staff list: toggle bookable + display name.

## Screens
1. Day calendar (staff columns or sections)
2. Booking form / drawer
3. Appointment detail
4. Services admin
5. Staff admin
6. My schedule (staff)

## Data model
Service: id, name, durationMinutes, active, createdAt
StaffProfile: id, userId, displayName, bookable, active
Appointment: id, serviceId, serviceNameSnapshot, staffUserId, customerName, phone, startAt, endAt, status, note?, cancelReason?, createdByUserId, createdAt, updatedAt
AppointmentEvent: id, appointmentId, type ("created"|"rescheduled"|"cancelled"|"completed"), actorUserId, message?, createdAt

## Edge cases
- Staff deactivated: block new books; existing remain visible.
- Service deactivated: hide from new books; snapshots keep old name on past appointments.
- Crossing closing time: reject start that would end after 18:00.

## Acceptance criteria
- [ ] Overlap impossible for same staff.
- [ ] Day view readable on tablet.
- [ ] Cancel/reschedule audited.
- [ ] Staff only see own schedule on My schedule.
- [ ] Localized Quark App pages/services.

## Out of scope
Online public booking, deposits/payments, SMS reminders, multi-location, resources/rooms, waitlist, recurring series.
Prompt စုစည်းမှု · Myan Myan Tone