Skip to content

apps/api/src/features/marketplace/marketplace.service.ts ​

Auto-generated by scripts/generate-file-docs.ts. Do not edit — overwritten on every run.

Purpose ​

MarketplaceService — member-to-member listings and reviews. Per task spec and docs/internal/design/api-contracts.md (Marketplace): - Member-only feature. VISITOR cannot post, browse, or contact sellers. Read access (list / getById) requires MEMBER+ and ACTIVE status. Write access (create / update / withdraw / markSold / createReview) is held to the same bar plus per-entity ownership rules. - Sellers may post in any of eight categories. Price is optional iff isFree is true; otherwise price is required. - Listings expire after 30 days by default; the caller may supply an explicit expiresAt. - Reviews: one per buyer per listing (enforced by the @@unique on ListingReview). A seller cannot review their own listing. - No direct messaging in this phase; the contact channel is the seller's profile email surfaced via getById. Every state-changing operation writes an AuditLog row inside the same transaction that mutates the listing or review. /

Exports ​

  • export interface ListListingsParams
  • export interface ListListingsResult
  • export interface ListingDetail
  • export class MarketplaceService
  • export const marketplaceService

Imports ​

  • ../../adapters/db
  • ../../lib/errors
  • ../../lib/logger
  • ../../lib/pagination
  • ../../middleware/requireAuth

Imported by ​

Heritage Community Hub — Internal. Access restricted via Cloudflare Access + Entra ID.