eBay-Style Marketplace Backend

data-object-management • 1/2/2026

DATA OBJECT MANAGEMENT

Ebaycclone Admin Panel

This document provides comprehensive information about how the Ebaycclone Admin Panel manages data objects, including CRUD operations, validation, relationships, and user interface generation.

Architectural Design Credit and Contact Information

The architectural design of this data object management system is credited to Mindbricks Genesis Engine.

We encourage open communication and welcome any questions or discussions related to the architectural aspects of this data object management system.

Documentation Scope

This guide covers the complete data object management system within the Ebaycclone Admin Panel. It includes dynamic UI generation, CRUD operations, data validation, relationship management, and user experience patterns.

Intended Audience

This documentation is intended for frontend developers, UI/UX designers, and system administrators who need to understand how data objects are managed, displayed, and manipulated within the admin panel.

Data Object Architecture

Overview

The admin panel implements a basic data object management system that generates simple CRUD interfaces for data objects defined in the backend services. Each data object is represented by a data grid for listing and basic modal components for create/update/delete operations.

Data Object Structure

Core Data Object Properties

  • Name: Unique identifier for the data object
  • Display Name: Human-readable name for UI display
  • Component Name: React component name for rendering
  • Properties: Array of data object properties with types

Dynamic UI Generation

Component Generation Pattern



// Data object component structure AuctionOffer auctionOfferOffer
const DataObjectComponentAuctionOfferAuctionOfferOffer = {
  // List view for displaying multiple records
  ListView: {
    component: 'AuctionOfferAuctionOfferOfferAppPage',
    features: ['data-grid', 'export', 'filtering', 'search']
  },
  
  // Modal components for data manipulation
  CreateModal: {
    component: 'AuctionOfferAuctionOfferOfferAppPageCreateModal',
    lazy: true
  },
  
  UpdateModal: {
    component: 'AuctionOfferAuctionOfferOfferAppPageUpdateModal',
    lazy: true
  },
  
  // Action components
  DeleteModal: {
    component: 'AuctionOfferAuctionOfferOfferAppPageDeleteModal',
    lazy: true
  }
};

// Data object component structure AuctionOffer auctionOfferBid
const DataObjectComponentAuctionOfferAuctionOfferBid = {
  // List view for displaying multiple records
  ListView: {
    component: 'AuctionOfferAuctionOfferBidAppPage',
    features: ['data-grid', 'export', 'filtering', 'search']
  },
  
  // Modal components for data manipulation
  CreateModal: {
    component: 'AuctionOfferAuctionOfferBidAppPageCreateModal',
    lazy: true
  },
  
  UpdateModal: {
    component: 'AuctionOfferAuctionOfferBidAppPageUpdateModal',
    lazy: true
  },
  
  // Action components
  DeleteModal: {
    component: 'AuctionOfferAuctionOfferBidAppPageDeleteModal',
    lazy: true
  }
};



// Data object component structure CategoryManagement category
const DataObjectComponentCategoryManagementCategory = {
  // List view for displaying multiple records
  ListView: {
    component: 'CategoryManagementCategoryAppPage',
    features: ['data-grid', 'export', 'filtering', 'search']
  },
  
  // Modal components for data manipulation
  CreateModal: {
    component: 'CategoryManagementCategoryAppPageCreateModal',
    lazy: true
  },
  
  UpdateModal: {
    component: 'CategoryManagementCategoryAppPageUpdateModal',
    lazy: true
  },
  
  // Action components
  DeleteModal: {
    component: 'CategoryManagementCategoryAppPageDeleteModal',
    lazy: true
  }
};

// Data object component structure CategoryManagement subcategory
const DataObjectComponentCategoryManagementSubcategory = {
  // List view for displaying multiple records
  ListView: {
    component: 'CategoryManagementSubcategoryAppPage',
    features: ['data-grid', 'export', 'filtering', 'search']
  },
  
  // Modal components for data manipulation
  CreateModal: {
    component: 'CategoryManagementSubcategoryAppPageCreateModal',
    lazy: true
  },
  
  UpdateModal: {
    component: 'CategoryManagementSubcategoryAppPageUpdateModal',
    lazy: true
  },
  
  // Action components
  DeleteModal: {
    component: 'CategoryManagementSubcategoryAppPageDeleteModal',
    lazy: true
  }
};



// Data object component structure Messaging messagingMessage
const DataObjectComponentMessagingMessagingMessage = {
  // List view for displaying multiple records
  ListView: {
    component: 'MessagingMessagingMessageAppPage',
    features: ['data-grid', 'export', 'filtering', 'search']
  },
  
  // Modal components for data manipulation
  CreateModal: {
    component: 'MessagingMessagingMessageAppPageCreateModal',
    lazy: true
  },
  
  UpdateModal: {
    component: 'MessagingMessagingMessageAppPageUpdateModal',
    lazy: true
  },
  
  // Action components
  DeleteModal: {
    component: 'MessagingMessagingMessageAppPageDeleteModal',
    lazy: true
  }
};



// Data object component structure NotificationManagement notification
const DataObjectComponentNotificationManagementNotification = {
  // List view for displaying multiple records
  ListView: {
    component: 'NotificationManagementNotificationAppPage',
    features: ['data-grid', 'export', 'filtering', 'search']
  },
  
  // Modal components for data manipulation
  CreateModal: {
    component: 'NotificationManagementNotificationAppPageCreateModal',
    lazy: true
  },
  
  UpdateModal: {
    component: 'NotificationManagementNotificationAppPageUpdateModal',
    lazy: true
  },
  
  // Action components
  DeleteModal: {
    component: 'NotificationManagementNotificationAppPageDeleteModal',
    lazy: true
  }
};



// Data object component structure SearchIndexing searchIndex
const DataObjectComponentSearchIndexingSearchIndex = {
  // List view for displaying multiple records
  ListView: {
    component: 'SearchIndexingSearchIndexAppPage',
    features: ['data-grid', 'export', 'filtering', 'search']
  },
  
  // Modal components for data manipulation
  CreateModal: {
    component: 'SearchIndexingSearchIndexAppPageCreateModal',
    lazy: true
  },
  
  UpdateModal: {
    component: 'SearchIndexingSearchIndexAppPageUpdateModal',
    lazy: true
  },
  
  // Action components
  DeleteModal: {
    component: 'SearchIndexingSearchIndexAppPageDeleteModal',
    lazy: true
  }
};



// Data object component structure AdminModeration moderationAction
const DataObjectComponentAdminModerationModerationAction = {
  // List view for displaying multiple records
  ListView: {
    component: 'AdminModerationModerationActionAppPage',
    features: ['data-grid', 'export', 'filtering', 'search']
  },
  
  // Modal components for data manipulation
  CreateModal: {
    component: 'AdminModerationModerationActionAppPageCreateModal',
    lazy: true
  },
  
  UpdateModal: {
    component: 'AdminModerationModerationActionAppPageUpdateModal',
    lazy: true
  },
  
  // Action components
  DeleteModal: {
    component: 'AdminModerationModerationActionAppPageDeleteModal',
    lazy: true
  }
};



// Data object component structure WatchlistCart watchlistItem
const DataObjectComponentWatchlistCartWatchlistItem = {
  // List view for displaying multiple records
  ListView: {
    component: 'WatchlistCartWatchlistItemAppPage',
    features: ['data-grid', 'export', 'filtering', 'search']
  },
  
  // Modal components for data manipulation
  CreateModal: {
    component: 'WatchlistCartWatchlistItemAppPageCreateModal',
    lazy: true
  },
  
  UpdateModal: {
    component: 'WatchlistCartWatchlistItemAppPageUpdateModal',
    lazy: true
  },
  
  // Action components
  DeleteModal: {
    component: 'WatchlistCartWatchlistItemAppPageDeleteModal',
    lazy: true
  }
};

// Data object component structure WatchlistCart cartItem
const DataObjectComponentWatchlistCartCartItem = {
  // List view for displaying multiple records
  ListView: {
    component: 'WatchlistCartCartItemAppPage',
    features: ['data-grid', 'export', 'filtering', 'search']
  },
  
  // Modal components for data manipulation
  CreateModal: {
    component: 'WatchlistCartCartItemAppPageCreateModal',
    lazy: true
  },
  
  UpdateModal: {
    component: 'WatchlistCartCartItemAppPageUpdateModal',
    lazy: true
  },
  
  // Action components
  DeleteModal: {
    component: 'WatchlistCartCartItemAppPageDeleteModal',
    lazy: true
  }
};

// Data object component structure WatchlistCart watchlistList
const DataObjectComponentWatchlistCartWatchlistList = {
  // List view for displaying multiple records
  ListView: {
    component: 'WatchlistCartWatchlistListAppPage',
    features: ['data-grid', 'export', 'filtering', 'search']
  },
  
  // Modal components for data manipulation
  CreateModal: {
    component: 'WatchlistCartWatchlistListAppPageCreateModal',
    lazy: true
  },
  
  UpdateModal: {
    component: 'WatchlistCartWatchlistListAppPageUpdateModal',
    lazy: true
  },
  
  // Action components
  DeleteModal: {
    component: 'WatchlistCartWatchlistListAppPageDeleteModal',
    lazy: true
  }
};



// Data object component structure ProductListing productListingMedia
const DataObjectComponentProductListingProductListingMedia = {
  // List view for displaying multiple records
  ListView: {
    component: 'ProductListingProductListingMediaAppPage',
    features: ['data-grid', 'export', 'filtering', 'search']
  },
  
  // Modal components for data manipulation
  CreateModal: {
    component: 'ProductListingProductListingMediaAppPageCreateModal',
    lazy: true
  },
  
  UpdateModal: {
    component: 'ProductListingProductListingMediaAppPageUpdateModal',
    lazy: true
  },
  
  // Action components
  DeleteModal: {
    component: 'ProductListingProductListingMediaAppPageDeleteModal',
    lazy: true
  }
};

// Data object component structure ProductListing productListingProduct
const DataObjectComponentProductListingProductListingProduct = {
  // List view for displaying multiple records
  ListView: {
    component: 'ProductListingProductListingProductAppPage',
    features: ['data-grid', 'export', 'filtering', 'search']
  },
  
  // Modal components for data manipulation
  CreateModal: {
    component: 'ProductListingProductListingProductAppPageCreateModal',
    lazy: true
  },
  
  UpdateModal: {
    component: 'ProductListingProductListingProductAppPageUpdateModal',
    lazy: true
  },
  
  // Action components
  DeleteModal: {
    component: 'ProductListingProductListingProductAppPageDeleteModal',
    lazy: true
  }
};



// Data object component structure OrderManagement orderManagementOrder
const DataObjectComponentOrderManagementOrderManagementOrder = {
  // List view for displaying multiple records
  ListView: {
    component: 'OrderManagementOrderManagementOrderAppPage',
    features: ['data-grid', 'export', 'filtering', 'search']
  },
  
  // Modal components for data manipulation
  CreateModal: {
    component: 'OrderManagementOrderManagementOrderAppPageCreateModal',
    lazy: true
  },
  
  UpdateModal: {
    component: 'OrderManagementOrderManagementOrderAppPageUpdateModal',
    lazy: true
  },
  
  // Action components
  DeleteModal: {
    component: 'OrderManagementOrderManagementOrderAppPageDeleteModal',
    lazy: true
  }
};

// Data object component structure OrderManagement orderManagementOrderItem
const DataObjectComponentOrderManagementOrderManagementOrderItem = {
  // List view for displaying multiple records
  ListView: {
    component: 'OrderManagementOrderManagementOrderItemAppPage',
    features: ['data-grid', 'export', 'filtering', 'search']
  },
  
  // Modal components for data manipulation
  CreateModal: {
    component: 'OrderManagementOrderManagementOrderItemAppPageCreateModal',
    lazy: true
  },
  
  UpdateModal: {
    component: 'OrderManagementOrderManagementOrderItemAppPageUpdateModal',
    lazy: true
  },
  
  // Action components
  DeleteModal: {
    component: 'OrderManagementOrderManagementOrderItemAppPageDeleteModal',
    lazy: true
  }
};

// Data object component structure OrderManagement sys_orderManagementOrderPayment
const DataObjectComponentOrderManagementSys_orderManagementOrderPayment = {
  // List view for displaying multiple records
  ListView: {
    component: 'OrderManagementSys_orderManagementOrderPaymentAppPage',
    features: ['data-grid', 'export', 'filtering', 'search']
  },
  
  // Modal components for data manipulation
  CreateModal: {
    component: 'OrderManagementSys_orderManagementOrderPaymentAppPageCreateModal',
    lazy: true
  },
  
  UpdateModal: {
    component: 'OrderManagementSys_orderManagementOrderPaymentAppPageUpdateModal',
    lazy: true
  },
  
  // Action components
  DeleteModal: {
    component: 'OrderManagementSys_orderManagementOrderPaymentAppPageDeleteModal',
    lazy: true
  }
};

// Data object component structure OrderManagement sys_paymentCustomer
const DataObjectComponentOrderManagementSys_paymentCustomer = {
  // List view for displaying multiple records
  ListView: {
    component: 'OrderManagementSys_paymentCustomerAppPage',
    features: ['data-grid', 'export', 'filtering', 'search']
  },
  
  // Modal components for data manipulation
  CreateModal: {
    component: 'OrderManagementSys_paymentCustomerAppPageCreateModal',
    lazy: true
  },
  
  UpdateModal: {
    component: 'OrderManagementSys_paymentCustomerAppPageUpdateModal',
    lazy: true
  },
  
  // Action components
  DeleteModal: {
    component: 'OrderManagementSys_paymentCustomerAppPageDeleteModal',
    lazy: true
  }
};

// Data object component structure OrderManagement sys_paymentMethod
const DataObjectComponentOrderManagementSys_paymentMethod = {
  // List view for displaying multiple records
  ListView: {
    component: 'OrderManagementSys_paymentMethodAppPage',
    features: ['data-grid', 'export', 'filtering', 'search']
  },
  
  // Modal components for data manipulation
  CreateModal: {
    component: 'OrderManagementSys_paymentMethodAppPageCreateModal',
    lazy: true
  },
  
  UpdateModal: {
    component: 'OrderManagementSys_paymentMethodAppPageUpdateModal',
    lazy: true
  },
  
  // Action components
  DeleteModal: {
    component: 'OrderManagementSys_paymentMethodAppPageDeleteModal',
    lazy: true
  }
};



// Data object component structure Feedback feedback
const DataObjectComponentFeedbackFeedback = {
  // List view for displaying multiple records
  ListView: {
    component: 'FeedbackFeedbackAppPage',
    features: ['data-grid', 'export', 'filtering', 'search']
  },
  
  // Modal components for data manipulation
  CreateModal: {
    component: 'FeedbackFeedbackAppPageCreateModal',
    lazy: true
  },
  
  UpdateModal: {
    component: 'FeedbackFeedbackAppPageUpdateModal',
    lazy: true
  },
  
  // Action components
  DeleteModal: {
    component: 'FeedbackFeedbackAppPageDeleteModal',
    lazy: true
  }
};



// Data object component structure Auth user
const DataObjectComponentAuthUser = {
  // List view for displaying multiple records
  ListView: {
    component: 'AuthUserAppPage',
    features: ['data-grid', 'export', 'filtering', 'search']
  },
  
  // Modal components for data manipulation
  CreateModal: {
    component: 'AuthUserAppPageCreateModal',
    lazy: true
  },
  
  UpdateModal: {
    component: 'AuthUserAppPageUpdateModal',
    lazy: true
  },
  
  // Action components
  DeleteModal: {
    component: 'AuthUserAppPageDeleteModal',
    lazy: true
  }
};


Service Data Objects

AuctionOffer Service Data Objects

Service Overview

  • Service Name: auctionOffer
  • Service Display Name: AuctionOffer
  • Total Data Objects: 2

Data Objects

AuctionOfferOffer Data Object

Basic Information

  • Object Name: auctionOfferOffer
  • Display Name: AuctionOfferOffer
  • Component Name: AuctionOfferAuctionOfferOfferAppPage
  • Description: Represents an offer (best offer/counter-offer) made on a fixed-price product. Tracks buyer, seller, amounts, currency, state transitions, counter-offers, and expiry.

Object Properties

Property Name Type Required Default Definition

| buyerId | ID | | N/A | Buyer making the offer. |

| currency | String | | N/A | ISO currency (e.g., USD, EUR) for the offer. |

| productId | ID | | N/A | Product the offer applies to (must be fixed-price, acceptOffers true). |

| counterOfferId | ID | | N/A | References another offer (counter-offer chain). |

| counterMessage | String | | N/A | Message accompanying seller's counter-offer (optional). |

| counterAmount | Double | | N/A | Counter-offer amount (when offer is COUNTERED). |

| offerAmount | Double | | N/A | Primary offer amount from buyer. |

| message | String | | N/A | Message/special notes from buyer (optional). |

| sellerId | ID | | N/A | Seller of the product (recipient of offer; auto-fetched from product). |

| status | Enum | | N/A | Current offer status (e.g., PENDING, ACCEPTED, DECLINED, COUNTERED, EXPIRED, CANCELLED). |

| expiresAt | Date | | N/A | When this offer expires (optional). |

| respondedAt | Date | | N/A | When the seller (or buyer, for counter-offer) responded/updated the offer status. |

Enum Properties

status Enum Property

Property Definition: Current offer status (e.g., PENDING, ACCEPTED, DECLINED, COUNTERED, EXPIRED, CANCELLED).

Enum Options

Name Value Index

| PENDING | "PENDING" | 0 |

| ACCEPTED | "ACCEPTED" | 1 |

| DECLINED | "DECLINED" | 2 |

| COUNTERED | "COUNTERED" | 3 |

| EXPIRED | "EXPIRED" | 4 |

| CANCELLED | "CANCELLED" | 5 |

Generated UI Components

  • List Component: AuctionOfferAuctionOfferOfferAppPageList - Displays paginated data with filtering and sorting
  • Create Modal: AuctionOfferAuctionOfferOfferAppPageCreateModal - Form for creating new records
  • Update Modal: AuctionOfferAuctionOfferOfferAppPageUpdateModal - Form for editing existing records
  • Delete Modal: AuctionOfferAuctionOfferOfferAppPageDeleteModal - Confirmation dialog for deletion

API Endpoints

  • List: GET /auctionOfferOffer/list - Retrieve paginated list of records
  • Get: GET /auctionOfferOffer/get - Retrieve single record by ID
  • Create: POST /auctionOfferOffer/create - Create new record
  • Update: PUT /auctionOfferOffer/update - Update existing record
  • Delete: DELETE /auctionOfferOffer/delete - Delete record by ID

Route Configuration

  • List Route: /dashboard/auctionOffer/auctionOfferOffer
  • Create Route: /dashboard/auctionOffer/auctionOfferOffer/create
  • Update Route: /dashboard/auctionOffer/auctionOfferOffer/update/:id
  • Delete Route: /dashboard/auctionOffer/auctionOfferOffer/delete/:id

AuctionOfferBid Data Object

Basic Information

  • Object Name: auctionOfferBid
  • Display Name: AuctionOfferBid
  • Component Name: AuctionOfferAuctionOfferBidAppPage
  • Description: Represents an individual bid placed on an auction-type product. Linked to product and user, tracks bid amount, currency, status (ACTIVE, WON, LOST, CANCELLED), and time placed.

Object Properties

Property Name Type Required Default Definition

| userId | ID | | N/A | User placing the bid. |

| bidAmount | Double | | N/A | Bid amount placed by the user. |

| placedAt | Date | | N/A | When the bid was placed. |

| currency | String | | N/A | ISO currency for the bid (e.g., USD, EUR). |

| status | Enum | | N/A | Bid status: ACTIVE, WON, LOST, CANCELLED. |

| productId | ID | | N/A | Product being bid on (must be AUCTION type). |

Enum Properties

status Enum Property

Property Definition: Bid status: ACTIVE, WON, LOST, CANCELLED.

Enum Options

Name Value Index

| ACTIVE | "ACTIVE" | 0 |

| WON | "WON" | 1 |

| LOST | "LOST" | 2 |

| CANCELLED | "CANCELLED" | 3 |

Generated UI Components

  • List Component: AuctionOfferAuctionOfferBidAppPageList - Displays paginated data with filtering and sorting
  • Create Modal: AuctionOfferAuctionOfferBidAppPageCreateModal - Form for creating new records
  • Update Modal: AuctionOfferAuctionOfferBidAppPageUpdateModal - Form for editing existing records
  • Delete Modal: AuctionOfferAuctionOfferBidAppPageDeleteModal - Confirmation dialog for deletion

API Endpoints

  • List: GET /auctionOfferBid/list - Retrieve paginated list of records
  • Get: GET /auctionOfferBid/get - Retrieve single record by ID
  • Create: POST /auctionOfferBid/create - Create new record
  • Update: PUT /auctionOfferBid/update - Update existing record
  • Delete: DELETE /auctionOfferBid/delete - Delete record by ID

Route Configuration

  • List Route: /dashboard/auctionOffer/auctionOfferBid
  • Create Route: /dashboard/auctionOffer/auctionOfferBid/create
  • Update Route: /dashboard/auctionOffer/auctionOfferBid/update/:id
  • Delete Route: /dashboard/auctionOffer/auctionOfferBid/delete/:id

CategoryManagement Service Data Objects

Service Overview

  • Service Name: categoryManagement
  • Service Display Name: CategoryManagement
  • Total Data Objects: 2

Data Objects

Category Data Object

Basic Information

  • Object Name: category
  • Display Name: Category
  • Component Name: CategoryManagementCategoryAppPage
  • Description: Represents a product category in the marketplace (e.g., Electronics, Clothing, Toys), used for browsing, filtering, and discovery. Admins manage categories.

Object Properties

Property Name Type Required Default Definition

| imageUrl | String | | N/A | URL for category image/avatar (optional, used for homepage visuals). |

| subtitle | String | | N/A | Optional short description for UI/tooltips. |

| title | String | | N/A | Display name of the category. |

Generated UI Components

  • List Component: CategoryManagementCategoryAppPageList - Displays paginated data with filtering and sorting
  • Create Modal: CategoryManagementCategoryAppPageCreateModal - Form for creating new records
  • Update Modal: CategoryManagementCategoryAppPageUpdateModal - Form for editing existing records
  • Delete Modal: CategoryManagementCategoryAppPageDeleteModal - Confirmation dialog for deletion

API Endpoints

  • List: GET /category/list - Retrieve paginated list of records
  • Get: GET /category/get - Retrieve single record by ID
  • Create: POST /category/create - Create new record
  • Update: PUT /category/update - Update existing record
  • Delete: DELETE /category/delete - Delete record by ID

Route Configuration

  • List Route: /dashboard/categoryManagement/category
  • Create Route: /dashboard/categoryManagement/category/create
  • Update Route: /dashboard/categoryManagement/category/update/:id
  • Delete Route: /dashboard/categoryManagement/category/delete/:id

Subcategory Data Object

Basic Information

  • Object Name: subcategory
  • Display Name: Subcategory
  • Component Name: CategoryManagementSubcategoryAppPage
  • Description: Represents a subcategory within a parent category (e.g., 'Smartphones' under 'Electronics'). Used for more granular product discovery and navigation. 'group' categorizes special display logic.

Object Properties

Property Name Type Required Default Definition

| categoryId | ID | | N/A | Reference to the parent category (category.id). |

| name | String | | N/A | Display name of the subcategory. |

| group | Enum | | N/A | Classification for subcategory display; restrict to enum of MOST_POPULAR or MORE. |

Enum Properties

group Enum Property

Property Definition: Classification for subcategory display; restrict to enum of MOST_POPULAR or MORE.

Enum Options

Name Value Index

| MOST_POPULAR | "MOST_POPULAR" | 0 |

| MORE | "MORE" | 1 |

Generated UI Components

  • List Component: CategoryManagementSubcategoryAppPageList - Displays paginated data with filtering and sorting
  • Create Modal: CategoryManagementSubcategoryAppPageCreateModal - Form for creating new records
  • Update Modal: CategoryManagementSubcategoryAppPageUpdateModal - Form for editing existing records
  • Delete Modal: CategoryManagementSubcategoryAppPageDeleteModal - Confirmation dialog for deletion

API Endpoints

  • List: GET /subcategory/list - Retrieve paginated list of records
  • Get: GET /subcategory/get - Retrieve single record by ID
  • Create: POST /subcategory/create - Create new record
  • Update: PUT /subcategory/update - Update existing record
  • Delete: DELETE /subcategory/delete - Delete record by ID

Route Configuration

  • List Route: /dashboard/categoryManagement/subcategory
  • Create Route: /dashboard/categoryManagement/subcategory/create
  • Update Route: /dashboard/categoryManagement/subcategory/update/:id
  • Delete Route: /dashboard/categoryManagement/subcategory/delete/:id

Messaging Service Data Objects

Service Overview

  • Service Name: messaging
  • Service Display Name: Messaging
  • Total Data Objects: 1

Data Objects

MessagingMessage Data Object

Basic Information

  • Object Name: messagingMessage
  • Display Name: MessagingMessage
  • Component Name: MessagingMessagingMessageAppPage
  • Description: A direct, text-only in-app message between two users (buyer/seller); stores sender, recipient, content, read status, and timestamp.

Object Properties

Property Name Type Required Default Definition

| fromUserId | ID | | N/A | Sender (user) of this message. |

| toUserId | ID | | N/A | Recipient (user) of this message. |

| content | String | | N/A | Text content of the message. No files or attachments for launch. |

| isRead | Boolean | | N/A | If true, recipient has marked this message as read. |

| sentAt | Date | | N/A | Time the message was sent. If not set, will be createdAt. Used for ordering. |

Generated UI Components

  • List Component: MessagingMessagingMessageAppPageList - Displays paginated data with filtering and sorting
  • Create Modal: MessagingMessagingMessageAppPageCreateModal - Form for creating new records
  • Update Modal: MessagingMessagingMessageAppPageUpdateModal - Form for editing existing records
  • Delete Modal: MessagingMessagingMessageAppPageDeleteModal - Confirmation dialog for deletion

API Endpoints

  • List: GET /messagingMessage/list - Retrieve paginated list of records
  • Get: GET /messagingMessage/get - Retrieve single record by ID
  • Create: POST /messagingMessage/create - Create new record
  • Update: PUT /messagingMessage/update - Update existing record
  • Delete: DELETE /messagingMessage/delete - Delete record by ID

Route Configuration

  • List Route: /dashboard/messaging/messagingMessage
  • Create Route: /dashboard/messaging/messagingMessage/create
  • Update Route: /dashboard/messaging/messagingMessage/update/:id
  • Delete Route: /dashboard/messaging/messagingMessage/delete/:id

NotificationManagement Service Data Objects

Service Overview

  • Service Name: notificationManagement
  • Service Display Name: NotificationManagement
  • Total Data Objects: 1

Data Objects

Notification Data Object

Basic Information

  • Object Name: notification
  • Display Name: Notification
  • Component Name: NotificationManagementNotificationAppPage
  • Description: Stores and manages in-app and email notifications tied to user-facing events like bids, offers, orders, messaging, shipment, and feedback. Includes event type (notificationType) for filter/search, arbitrary event payload, and delivery channel. Soft-delete enforced. In-app notifications always sorted by createdAt DESC on retrieval.

Object Properties

Property Name Type Required Default Definition

| notificationType | Enum | | N/A | Type of event triggering notification (e.g., BID_UPDATED, ORDER_SHIPPED, MESSAGE_RECEIVED, etc.). Used for display/icon and query filter. |

| userId | ID | | N/A | User receiving the notification (recipient). |

| channel | Enum | | N/A | Channel by which notification is delivered: IN_APP or EMAIL. |

| payload | Object | | N/A | Event payload; stores event-specific/structured details for frontend rendering. Structure varies by notificationType. |

| isRead | Boolean | | N/A | Marks if user has read/seen notification (IN_APP only; always true for EMAIL channel) |

Enum Properties

notificationType Enum Property

Property Definition: Type of event triggering notification (e.g., BID_UPDATED, ORDER_SHIPPED, MESSAGE_RECEIVED, etc.). Used for display/icon and query filter.

Enum Options

Name Value Index

| BID_UPDATED | "BID_UPDATED" | 0 |

| BID_OUTBID | "BID_OUTBID" | 1 |

| BID_WON | "BID_WON" | 2 |

| OFFER_PLACED | "OFFER_PLACED" | 3 |

| OFFER_ACCEPTED | "OFFER_ACCEPTED" | 4 |

| OFFER_DECLINED | "OFFER_DECLINED" | 5 |

| OFFER_COUNTERED | "OFFER_COUNTERED" | 6 |

| ORDER_PLACED | "ORDER_PLACED" | 7 |

| ORDER_PAID | "ORDER_PAID" | 8 |

| ORDER_SHIPPED | "ORDER_SHIPPED" | 9 |

| ORDER_DELIVERED | "ORDER_DELIVERED" | 10 |

| ORDER_CANCELLED | "ORDER_CANCELLED" | 11 |

| FEEDBACK_RECEIVED | "FEEDBACK_RECEIVED" | 12 |

| FEEDBACK_REQUESTED | "FEEDBACK_REQUESTED" | 13 |

| MESSAGE_RECEIVED | "MESSAGE_RECEIVED" | 14 |

| MESSAGE_SENT | "MESSAGE_SENT" | 15 |

| SYSTEM_ALERT | "SYSTEM_ALERT" | 16 |

channel Enum Property

Property Definition: Channel by which notification is delivered: IN_APP or EMAIL.

Enum Options

Name Value Index

| IN_APP | "IN_APP" | 0 |

| EMAIL | "EMAIL" | 1 |

Generated UI Components

  • List Component: NotificationManagementNotificationAppPageList - Displays paginated data with filtering and sorting
  • Create Modal: NotificationManagementNotificationAppPageCreateModal - Form for creating new records
  • Update Modal: NotificationManagementNotificationAppPageUpdateModal - Form for editing existing records
  • Delete Modal: NotificationManagementNotificationAppPageDeleteModal - Confirmation dialog for deletion

API Endpoints

  • List: GET /notification/list - Retrieve paginated list of records
  • Get: GET /notification/get - Retrieve single record by ID
  • Create: POST /notification/create - Create new record
  • Update: PUT /notification/update - Update existing record
  • Delete: DELETE /notification/delete - Delete record by ID

Route Configuration

  • List Route: /dashboard/notificationManagement/notification
  • Create Route: /dashboard/notificationManagement/notification/create
  • Update Route: /dashboard/notificationManagement/notification/update/:id
  • Delete Route: /dashboard/notificationManagement/notification/delete/:id

SearchIndexing Service Data Objects

Service Overview

  • Service Name: searchIndexing
  • Service Display Name: SearchIndexing
  • Total Data Objects: 1

Data Objects

SearchIndex Data Object

Basic Information

  • Object Name: searchIndex
  • Display Name: SearchIndex
  • Component Name: SearchIndexingSearchIndexAppPage
  • Description: Materialized/denormalized search index record for a marketplace entity (product, seller, category, subcategory). Used exclusively for high-speed querying in BFF global/public search.

Object Properties

Property Name Type Required Default Definition

| documentType | Enum | | N/A | Type of the indexed document: PRODUCT, SELLER, CATEGORY, SUBCATEGORY |

| document | Object | | N/A | Denormalized snapshot of the entity data, optimized for full-text search. May contain different keys depending on documentType. |

| referenceId | ID | | N/A | ID of the underlying source entity (product, seller, category, subcategory) for reverse-mapping/database triggers. |

| indexedAt | Date | | N/A | Timestamp when the record was (last) indexed. Used for maintenance, debugging, rebuild tracing. |

Enum Properties

documentType Enum Property

Property Definition: Type of the indexed document: PRODUCT, SELLER, CATEGORY, SUBCATEGORY

Enum Options

Name Value Index

| PRODUCT | "PRODUCT" | 0 |

| SELLER | "SELLER" | 1 |

| CATEGORY | "CATEGORY" | 2 |

| SUBCATEGORY | "SUBCATEGORY" | 3 |

Generated UI Components

  • List Component: SearchIndexingSearchIndexAppPageList - Displays paginated data with filtering and sorting
  • Create Modal: SearchIndexingSearchIndexAppPageCreateModal - Form for creating new records
  • Update Modal: SearchIndexingSearchIndexAppPageUpdateModal - Form for editing existing records
  • Delete Modal: SearchIndexingSearchIndexAppPageDeleteModal - Confirmation dialog for deletion

API Endpoints

  • List: GET /searchIndex/list - Retrieve paginated list of records
  • Get: GET /searchIndex/get - Retrieve single record by ID
  • Create: POST /searchIndex/create - Create new record
  • Update: PUT /searchIndex/update - Update existing record
  • Delete: DELETE /searchIndex/delete - Delete record by ID

Route Configuration

  • List Route: /dashboard/searchIndexing/searchIndex
  • Create Route: /dashboard/searchIndexing/searchIndex/create
  • Update Route: /dashboard/searchIndexing/searchIndex/update/:id
  • Delete Route: /dashboard/searchIndexing/searchIndex/delete/:id

AdminModeration Service Data Objects

Service Overview

  • Service Name: adminModeration
  • Service Display Name: AdminModeration
  • Total Data Objects: 1

Data Objects

ModerationAction Data Object

Basic Information

  • Object Name: moderationAction
  • Display Name: ModerationAction
  • Component Name: AdminModerationModerationActionAppPage
  • Description: Audit record for all admin moderation/override actions affecting core business entities. Links to admin, timestamp, entity type/ID, action performed, and reason.

Object Properties

Property Name Type Required Default Definition

| adminId | ID | | N/A | ID of admin performing moderation action. |

| entityId | ID | | N/A | ID of target entity affected by moderation (user/product/etc). |

| actionTimestamp | Date | | N/A | Timestamp moderation action was performed/logged. |

| entityType | Enum | | N/A | Type of entity affected (USER, PRODUCT, FEEDBACK, MEDIA, CATEGORY, NOTIFICATION, ORDER, SEARCHINDEX). |

| reason | String | | N/A | Explanation or justification for the moderation action performed. |

| actionType | Enum | | N/A | Type of moderation action (e.g., SOFT_DELETE, RESTORE, UPDATE_ROLE, MANUAL_CORRECTION, MEDIA_FLAG, INDEX_REBUILD, PAYMENT_FIX, FEEDBACK_OVERRIDE, ADMIN_NOTE). |

Enum Properties

entityType Enum Property

Property Definition: Type of entity affected (USER, PRODUCT, FEEDBACK, MEDIA, CATEGORY, NOTIFICATION, ORDER, SEARCHINDEX).

Enum Options

Name Value Index

| USER | "USER" | 0 |

| PRODUCT | "PRODUCT" | 1 |

| FEEDBACK | "FEEDBACK" | 2 |

| MEDIA | "MEDIA" | 3 |

| CATEGORY | "CATEGORY" | 4 |

| NOTIFICATION | "NOTIFICATION" | 5 |

| ORDER | "ORDER" | 6 |

| SEARCHINDEX | "SEARCHINDEX" | 7 |

actionType Enum Property

Property Definition: Type of moderation action (e.g., SOFT_DELETE, RESTORE, UPDATE_ROLE, MANUAL_CORRECTION, MEDIA_FLAG, INDEX_REBUILD, PAYMENT_FIX, FEEDBACK_OVERRIDE, ADMIN_NOTE).

Enum Options

Name Value Index

| SOFT_DELETE | "SOFT_DELETE" | 0 |

| RESTORE | "RESTORE" | 1 |

| UPDATE_ROLE | "UPDATE_ROLE" | 2 |

| MANUAL_CORRECTION | "MANUAL_CORRECTION" | 3 |

| MEDIA_FLAG | "MEDIA_FLAG" | 4 |

| INDEX_REBUILD | "INDEX_REBUILD" | 5 |

| PAYMENT_FIX | "PAYMENT_FIX" | 6 |

| FEEDBACK_OVERRIDE | "FEEDBACK_OVERRIDE" | 7 |

| ADMIN_NOTE | "ADMIN_NOTE" | 8 |

Generated UI Components

  • List Component: AdminModerationModerationActionAppPageList - Displays paginated data with filtering and sorting
  • Create Modal: AdminModerationModerationActionAppPageCreateModal - Form for creating new records
  • Update Modal: AdminModerationModerationActionAppPageUpdateModal - Form for editing existing records
  • Delete Modal: AdminModerationModerationActionAppPageDeleteModal - Confirmation dialog for deletion

API Endpoints

  • List: GET /moderationAction/list - Retrieve paginated list of records
  • Get: GET /moderationAction/get - Retrieve single record by ID
  • Create: POST /moderationAction/create - Create new record
  • Update: PUT /moderationAction/update - Update existing record
  • Delete: DELETE /moderationAction/delete - Delete record by ID

Route Configuration

  • List Route: /dashboard/adminModeration/moderationAction
  • Create Route: /dashboard/adminModeration/moderationAction/create
  • Update Route: /dashboard/adminModeration/moderationAction/update/:id
  • Delete Route: /dashboard/adminModeration/moderationAction/delete/:id

WatchlistCart Service Data Objects

Service Overview

  • Service Name: watchlistCart
  • Service Display Name: WatchlistCart
  • Total Data Objects: 3

Data Objects

WatchlistItem Data Object

Basic Information

  • Object Name: watchlistItem
  • Display Name: WatchlistItem
  • Component Name: WatchlistCartWatchlistItemAppPage
  • Description: Item in a user’s watchlist, optionally in a named folder; references product and user.

Object Properties

Property Name Type Required Default Definition

| userId | ID | | N/A | Owner of the watchlist item. |

| addedAt | Date | | N/A | Timestamp watchlist item created. |

| productId | ID | | N/A | Referenced product in the watchlist. |

| listId | ID | | N/A | Owning watchlistList; null if in default watchlist. |

Generated UI Components

  • List Component: WatchlistCartWatchlistItemAppPageList - Displays paginated data with filtering and sorting
  • Create Modal: WatchlistCartWatchlistItemAppPageCreateModal - Form for creating new records
  • Update Modal: WatchlistCartWatchlistItemAppPageUpdateModal - Form for editing existing records
  • Delete Modal: WatchlistCartWatchlistItemAppPageDeleteModal - Confirmation dialog for deletion

API Endpoints

  • List: GET /watchlistItem/list - Retrieve paginated list of records
  • Get: GET /watchlistItem/get - Retrieve single record by ID
  • Create: POST /watchlistItem/create - Create new record
  • Update: PUT /watchlistItem/update - Update existing record
  • Delete: DELETE /watchlistItem/delete - Delete record by ID

Route Configuration

  • List Route: /dashboard/watchlistCart/watchlistItem
  • Create Route: /dashboard/watchlistCart/watchlistItem/create
  • Update Route: /dashboard/watchlistCart/watchlistItem/update/:id
  • Delete Route: /dashboard/watchlistCart/watchlistItem/delete/:id

CartItem Data Object

Basic Information

  • Object Name: cartItem
  • Display Name: CartItem
  • Component Name: WatchlistCartCartItemAppPage
  • Description: Single product pending checkout in a user’s cart. Only fixed-price products permitted; quantity supported for multi-unit purchases (if allowed).

Object Properties

Property Name Type Required Default Definition

| addedAt | Date | | N/A | Timestamp added to cart. |

| userId | ID | | N/A | Cart owner. |

| quantity | Integer | | N/A | How many units (if product allows). |

| productId | ID | | N/A | Product being checked out. |

Generated UI Components

  • List Component: WatchlistCartCartItemAppPageList - Displays paginated data with filtering and sorting
  • Create Modal: WatchlistCartCartItemAppPageCreateModal - Form for creating new records
  • Update Modal: WatchlistCartCartItemAppPageUpdateModal - Form for editing existing records
  • Delete Modal: WatchlistCartCartItemAppPageDeleteModal - Confirmation dialog for deletion

API Endpoints

  • List: GET /cartItem/list - Retrieve paginated list of records
  • Get: GET /cartItem/get - Retrieve single record by ID
  • Create: POST /cartItem/create - Create new record
  • Update: PUT /cartItem/update - Update existing record
  • Delete: DELETE /cartItem/delete - Delete record by ID

Route Configuration

  • List Route: /dashboard/watchlistCart/cartItem
  • Create Route: /dashboard/watchlistCart/cartItem/create
  • Update Route: /dashboard/watchlistCart/cartItem/update/:id
  • Delete Route: /dashboard/watchlistCart/cartItem/delete/:id

WatchlistList Data Object

Basic Information

  • Object Name: watchlistList
  • Display Name: WatchlistList
  • Component Name: WatchlistCartWatchlistListAppPage
  • Description: A named folder/list in a user’s watchlist. Default list exists for all users. Custom lists may be created and deleted.

Object Properties

Property Name Type Required Default Definition

| name | String | | N/A | Custom folder or list name. 'Default' is reserved (non-deletable for each user). |

| itemCount | Integer | | N/A | Number of (non-deleted) items in the list/folder. |

| userId | ID | | N/A | Owner of the watchlist list/folder. |

Generated UI Components

  • List Component: WatchlistCartWatchlistListAppPageList - Displays paginated data with filtering and sorting
  • Create Modal: WatchlistCartWatchlistListAppPageCreateModal - Form for creating new records
  • Update Modal: WatchlistCartWatchlistListAppPageUpdateModal - Form for editing existing records
  • Delete Modal: WatchlistCartWatchlistListAppPageDeleteModal - Confirmation dialog for deletion

API Endpoints

  • List: GET /watchlistList/list - Retrieve paginated list of records
  • Get: GET /watchlistList/get - Retrieve single record by ID
  • Create: POST /watchlistList/create - Create new record
  • Update: PUT /watchlistList/update - Update existing record
  • Delete: DELETE /watchlistList/delete - Delete record by ID

Route Configuration

  • List Route: /dashboard/watchlistCart/watchlistList
  • Create Route: /dashboard/watchlistCart/watchlistList/create
  • Update Route: /dashboard/watchlistCart/watchlistList/update/:id
  • Delete Route: /dashboard/watchlistCart/watchlistList/delete/:id

ProductListing Service Data Objects

Service Overview

  • Service Name: productListing
  • Service Display Name: ProductListing
  • Total Data Objects: 2

Data Objects

ProductListingMedia Data Object

Basic Information

  • Object Name: productListingMedia
  • Display Name: ProductListingMedia
  • Component Name: ProductListingProductListingMediaAppPage
  • Description: Stores and manages images/media associated with products, including secure URL, MIME type, and size validation. Each asset can be used by multiple products.

Object Properties

Property Name Type Required Default Definition

| mimeType | String | | N/A | MIME type of the uploaded media (e.g., image/jpeg) |

| productId | ID | | N/A | ID of product associated with this media asset |

| url | String | | N/A | Secure, validated URL for the media asset (S3 or equivalent) |

| size | Integer | | N/A | Media size in bytes (for validation and quota) |

Generated UI Components

  • List Component: ProductListingProductListingMediaAppPageList - Displays paginated data with filtering and sorting
  • Create Modal: ProductListingProductListingMediaAppPageCreateModal - Form for creating new records
  • Update Modal: ProductListingProductListingMediaAppPageUpdateModal - Form for editing existing records
  • Delete Modal: ProductListingProductListingMediaAppPageDeleteModal - Confirmation dialog for deletion

API Endpoints

  • List: GET /productListingMedia/list - Retrieve paginated list of records
  • Get: GET /productListingMedia/get - Retrieve single record by ID
  • Create: POST /productListingMedia/create - Create new record
  • Update: PUT /productListingMedia/update - Update existing record
  • Delete: DELETE /productListingMedia/delete - Delete record by ID

Route Configuration

  • List Route: /dashboard/productListing/productListingMedia
  • Create Route: /dashboard/productListing/productListingMedia/create
  • Update Route: /dashboard/productListing/productListingMedia/update/:id
  • Delete Route: /dashboard/productListing/productListingMedia/delete/:id

ProductListingProduct Data Object

Basic Information

  • Object Name: productListingProduct
  • Display Name: ProductListingProduct
  • Component Name: ProductListingProductListingProductAppPage
  • Description: Represents a single product listing (fixed-price or auction) in the marketplace, with seller, category, type, price information, shipping details, media references, and dynamic auction fields.

Object Properties

Property Name Type Required Default Definition

| currency | String | | N/A | ISO currency code (e.g. USD, EUR) |

| description | Text | | N/A | Product detailed description |

| condition | Enum | | N/A | Condition of product: BRAND_NEW, NEW, or USED |

| startBid | Double | | N/A | The opening bid value (for auction type products) |

| endPrice | Double | | N/A | Optional immediate sale/upper end price for auction (if AUCTION type) |

| price | Double | | N/A | Product price (required if fixed price type) |

| title | String | | N/A | Product title |

| startPrice | Double | | N/A | Minimum starting price for auction (required if AUCTION type) |

| type | Enum | | N/A | Product listing type, either FIXED or AUCTION (immutable after creation) |

| endBid | Double | | N/A | The upper (max) bid value for auction products (if any) |

| estimatedDelivery | Date | | N/A | Estimated delivery date for this product |

| shippingCurrency | String | | N/A | Currency code for shipping cost |

| sellerId | ID | | N/A | Reference to user who listed the product |

| mediaAssetIds | ID | | N/A | References to associated product/media assets |

| shippingMethod | Enum | | N/A | Shipping option for product: STANDARD, EXPRESS, or FREE |

| shipping | Double | | N/A | Shipping cost for this product |

| startBidDate | Date | | N/A | Date/time when auction bidding begins |

| subcategoryId | ID | | N/A | Reference to subcategory |

| categoryId | ID | | N/A | Reference to parent category |

| endBidDate | Date | | N/A | Date/time when auction bidding ends |

| currentBid | Double | | N/A | Current highest bid for auction-type product (updated atomically on bid placement) |

| highestBidderId | ID | | N/A | User ID of current highest bidder (auction-only, updated by auction microservice) |

Enum Properties

condition Enum Property

Property Definition: Condition of product: BRAND_NEW, NEW, or USED

Enum Options

Name Value Index

| BRAND_NEW | "BRAND_NEW" | 0 |

| NEW | "NEW" | 1 |

| USED | "USED" | 2 |

type Enum Property

Property Definition: Product listing type, either FIXED or AUCTION (immutable after creation)

Enum Options

Name Value Index

| FIXED | "FIXED" | 0 |

| AUCTION | "AUCTION" | 1 |

shippingMethod Enum Property

Property Definition: Shipping option for product: STANDARD, EXPRESS, or FREE

Enum Options

Name Value Index

| STANDARD | "STANDARD" | 0 |

| EXPRESS | "EXPRESS" | 1 |

| FREE | "FREE" | 2 |

Generated UI Components

  • List Component: ProductListingProductListingProductAppPageList - Displays paginated data with filtering and sorting
  • Create Modal: ProductListingProductListingProductAppPageCreateModal - Form for creating new records
  • Update Modal: ProductListingProductListingProductAppPageUpdateModal - Form for editing existing records
  • Delete Modal: ProductListingProductListingProductAppPageDeleteModal - Confirmation dialog for deletion

API Endpoints

  • List: GET /productListingProduct/list - Retrieve paginated list of records
  • Get: GET /productListingProduct/get - Retrieve single record by ID
  • Create: POST /productListingProduct/create - Create new record
  • Update: PUT /productListingProduct/update - Update existing record
  • Delete: DELETE /productListingProduct/delete - Delete record by ID

Route Configuration

  • List Route: /dashboard/productListing/productListingProduct
  • Create Route: /dashboard/productListing/productListingProduct/create
  • Update Route: /dashboard/productListing/productListingProduct/update/:id
  • Delete Route: /dashboard/productListing/productListingProduct/delete/:id

OrderManagement Service Data Objects

Service Overview

  • Service Name: orderManagement
  • Service Display Name: OrderManagement
  • Total Data Objects: 5

Data Objects

OrderManagementOrder Data Object

Basic Information

  • Object Name: orderManagementOrder
  • Display Name: OrderManagementOrder
  • Component Name: OrderManagementOrderManagementOrderAppPage
  • Description: Marketplace order record. Stores buyer, shipping, status, items, Stripe payment data, and manual shipment/delivery events. Only accessible to admins or the buyer/seller of order items.

Object Properties

Property Name Type Required Default Definition

| orderNumber | String | | N/A | Unique, human-friendly order number (displayed to users); enforced unique. |

| items | ID | | N/A | Array of orderManagementOrderItem ids representing items in this order. |

| buyerId | ID | | N/A | User ID of the buyer placing the order. |

| status | Enum | | N/A | Order lifecycle: PENDING_PAYMENT, PAID, PROCESSING, SHIPPED, DELIVERED, CANCELLED, REFUNDED |

| paymentMethodId | String | | N/A | Stripe paymentMethodId used for payment. Not stored if cash or other payment (future). |

| stripeCustomerId | String | | N/A | Stripe customerId of buyer; enables saved/paymentMethodId flows. |

| paymentIntentId | String | | N/A | Stripe paymentIntentId; enables webhook correlation and status sync. |

| shippingAddress | Object | | N/A | Shipping address for the order (copy of buyer address at purchase time). |

| summary | Object | | N/A | Object with total, subtotal, currency, shipping, discount breakdown as snapshot of order at time of purchase. |

| trackingNumber | String | | N/A | Optional tracking number entered by seller when marking as shipped. |

| estimatedDelivery | Date | | N/A | Estimated delivery date for order; copied from fastest estimated item or seller input. |

| cancelledAt | Date | | N/A | Timestamp when cancelled by buyer, seller, or admin before shipment. |

| paidAt | Date | | N/A | Timestamp when payment confirmed via Stripe or manual admin update. |

| deliveredAt | Date | | N/A | Timestamp when buyer confirms delivery. |

| shippedAt | Date | | N/A | Timestamp when seller marks as shipped. |

| carrier | String | | N/A | Optional carrier name entered by seller when marking as shipped. |

| _paymentConfirmation | Enum | | N/A | An automatic property that is used to check the confirmed status of the payment set by webhooks. |

Enum Properties

status Enum Property

Property Definition: Order lifecycle: PENDING_PAYMENT, PAID, PROCESSING, SHIPPED, DELIVERED, CANCELLED, REFUNDED

Enum Options

Name Value Index

| PENDING_PAYMENT | "PENDING_PAYMENT" | 0 |

| PAID | "PAID" | 1 |

| PROCESSING | "PROCESSING" | 2 |

| SHIPPED | "SHIPPED" | 3 |

| DELIVERED | "DELIVERED" | 4 |

| CANCELLED | "CANCELLED" | 5 |

| REFUNDED | "REFUNDED" | 6 |

_paymentConfirmation Enum Property

Property Definition: An automatic property that is used to check the confirmed status of the payment set by webhooks.

Enum Options

Name Value Index

| pending | "pending" | 0 |

| processing | "processing" | 1 |

| paid | "paid" | 2 |

| canceled | "canceled" | 3 |

Generated UI Components

  • List Component: OrderManagementOrderManagementOrderAppPageList - Displays paginated data with filtering and sorting
  • Create Modal: OrderManagementOrderManagementOrderAppPageCreateModal - Form for creating new records
  • Update Modal: OrderManagementOrderManagementOrderAppPageUpdateModal - Form for editing existing records
  • Delete Modal: OrderManagementOrderManagementOrderAppPageDeleteModal - Confirmation dialog for deletion

API Endpoints

  • List: GET /orderManagementOrder/list - Retrieve paginated list of records
  • Get: GET /orderManagementOrder/get - Retrieve single record by ID
  • Create: POST /orderManagementOrder/create - Create new record
  • Update: PUT /orderManagementOrder/update - Update existing record
  • Delete: DELETE /orderManagementOrder/delete - Delete record by ID

Route Configuration

  • List Route: /dashboard/orderManagement/orderManagementOrder
  • Create Route: /dashboard/orderManagement/orderManagementOrder/create
  • Update Route: /dashboard/orderManagement/orderManagementOrder/update/:id
  • Delete Route: /dashboard/orderManagement/orderManagementOrder/delete/:id

OrderManagementOrderItem Data Object

Basic Information

  • Object Name: orderManagementOrderItem
  • Display Name: OrderManagementOrderItem
  • Component Name: OrderManagementOrderManagementOrderItemAppPage
  • Description: Order line item representing purchase of a single product from a specific seller as part of an order. Enables feedback, delivery, and per-seller analytics. Immutable after order creation.

Object Properties

Property Name Type Required Default Definition

| shipping | Double | | N/A | Shipping cost for this product (may be 0 for free shipping). |

| orderId | ID | | N/A | Parent order this item belongs to; enables join and lifecycle tracking. |

| quantity | Integer | | N/A | Number of units purchased for this product. |

| productId | ID | | N/A | ID of product purchased in this line item. |

| price | Double | | N/A | Unit price for this product at purchase time. |

| sellerId | ID | | N/A | UserId of seller (owner of product at purchase time). |

| title | String | | N/A | Product title at purchase time (copied for convenience/audit). |

| currency | String | | N/A | Currency code for price/shipping (ISO 4217). |

Generated UI Components

  • List Component: OrderManagementOrderManagementOrderItemAppPageList - Displays paginated data with filtering and sorting
  • Create Modal: OrderManagementOrderManagementOrderItemAppPageCreateModal - Form for creating new records
  • Update Modal: OrderManagementOrderManagementOrderItemAppPageUpdateModal - Form for editing existing records
  • Delete Modal: OrderManagementOrderManagementOrderItemAppPageDeleteModal - Confirmation dialog for deletion

API Endpoints

  • List: GET /orderManagementOrderItem/list - Retrieve paginated list of records
  • Get: GET /orderManagementOrderItem/get - Retrieve single record by ID
  • Create: POST /orderManagementOrderItem/create - Create new record
  • Update: PUT /orderManagementOrderItem/update - Update existing record
  • Delete: DELETE /orderManagementOrderItem/delete - Delete record by ID

Route Configuration

  • List Route: /dashboard/orderManagement/orderManagementOrderItem
  • Create Route: /dashboard/orderManagement/orderManagementOrderItem/create
  • Update Route: /dashboard/orderManagement/orderManagementOrderItem/update/:id
  • Delete Route: /dashboard/orderManagement/orderManagementOrderItem/delete/:id

Sys_orderManagementOrderPayment Data Object

Basic Information

  • Object Name: sys_orderManagementOrderPayment
  • Display Name: Sys_orderManagementOrderPayment
  • Component Name: OrderManagementSys_orderManagementOrderPaymentAppPage
  • Description: A payment storage object to store the payment life cyle of orders based on orderManagementOrder object. It is autocreated based on the source object's checkout config

Object Properties

Property Name Type Required Default Definition

| ownerId | ID | | N/A | * An ID value to represent owner user who created the order* |

| orderId | ID | | N/A | an ID value to represent the orderId which is the ID parameter of the source orderManagementOrder object |

| paymentId | String | | N/A | A String value to represent the paymentId which is generated on the Stripe gateway. This id may represent different objects due to the payment gateway and the chosen flow type |

| paymentStatus | String | | N/A | A string value to represent the payment status which belongs to the lifecyle of a Stripe payment. |

| statusLiteral | String | | N/A | A string value to represent the logical payment status which belongs to the application lifecycle itself. |

| redirectUrl | String | | N/A | A string value to represent return page of the frontend to show the result of the payment, this is used when the callback is made to server not the client. |

Generated UI Components

  • List Component: OrderManagementSys_orderManagementOrderPaymentAppPageList - Displays paginated data with filtering and sorting
  • Create Modal: OrderManagementSys_orderManagementOrderPaymentAppPageCreateModal - Form for creating new records
  • Update Modal: OrderManagementSys_orderManagementOrderPaymentAppPageUpdateModal - Form for editing existing records
  • Delete Modal: OrderManagementSys_orderManagementOrderPaymentAppPageDeleteModal - Confirmation dialog for deletion

API Endpoints

  • List: GET /sys_orderManagementOrderPayment/list - Retrieve paginated list of records
  • Get: GET /sys_orderManagementOrderPayment/get - Retrieve single record by ID
  • Create: POST /sys_orderManagementOrderPayment/create - Create new record
  • Update: PUT /sys_orderManagementOrderPayment/update - Update existing record
  • Delete: DELETE /sys_orderManagementOrderPayment/delete - Delete record by ID

Route Configuration

  • List Route: /dashboard/orderManagement/sys_orderManagementOrderPayment
  • Create Route: /dashboard/orderManagement/sys_orderManagementOrderPayment/create
  • Update Route: /dashboard/orderManagement/sys_orderManagementOrderPayment/update/:id
  • Delete Route: /dashboard/orderManagement/sys_orderManagementOrderPayment/delete/:id

Sys_paymentCustomer Data Object

Basic Information

  • Object Name: sys_paymentCustomer
  • Display Name: Sys_paymentCustomer
  • Component Name: OrderManagementSys_paymentCustomerAppPage
  • Description: A payment storage object to store the customer values of the payment platform

Object Properties

Property Name Type Required Default Definition

| userId | ID | | N/A | * An ID value to represent the user who is created as a stripe customer* |

| customerId | String | | N/A | A string value to represent the customer id which is generated on the Stripe gateway. This id is used to represent the customer in the Stripe gateway |

| platform | String | | N/A | A String value to represent payment platform which is used to make the payment. It is stripe as default. It will be used to distinguesh the payment gateways in the future. |

Generated UI Components

  • List Component: OrderManagementSys_paymentCustomerAppPageList - Displays paginated data with filtering and sorting
  • Create Modal: OrderManagementSys_paymentCustomerAppPageCreateModal - Form for creating new records
  • Update Modal: OrderManagementSys_paymentCustomerAppPageUpdateModal - Form for editing existing records
  • Delete Modal: OrderManagementSys_paymentCustomerAppPageDeleteModal - Confirmation dialog for deletion

API Endpoints

  • List: GET /sys_paymentCustomer/list - Retrieve paginated list of records
  • Get: GET /sys_paymentCustomer/get - Retrieve single record by ID
  • Create: POST /sys_paymentCustomer/create - Create new record
  • Update: PUT /sys_paymentCustomer/update - Update existing record
  • Delete: DELETE /sys_paymentCustomer/delete - Delete record by ID

Route Configuration

  • List Route: /dashboard/orderManagement/sys_paymentCustomer
  • Create Route: /dashboard/orderManagement/sys_paymentCustomer/create
  • Update Route: /dashboard/orderManagement/sys_paymentCustomer/update/:id
  • Delete Route: /dashboard/orderManagement/sys_paymentCustomer/delete/:id

Sys_paymentMethod Data Object

Basic Information

  • Object Name: sys_paymentMethod
  • Display Name: Sys_paymentMethod
  • Component Name: OrderManagementSys_paymentMethodAppPage
  • Description: A payment storage object to store the payment methods of the platform customers

Object Properties

Property Name Type Required Default Definition

| paymentMethodId | String | | N/A | A string value to represent the id of the payment method on the payment platform. |

| userId | ID | | N/A | * An ID value to represent the user who owns the payment method* |

| customerId | String | | N/A | A string value to represent the customer id which is generated on the payment gateway. |

| cardHolderName | String | | N/A | A string value to represent the name of the card holder. It can be different than the registered customer. |

| cardHolderZip | String | | N/A | A string value to represent the zip code of the card holder. It is used for address verification in specific countries. |

| platform | String | | N/A | A String value to represent payment platform which teh paymentMethod belongs. It is stripe as default. It will be used to distinguesh the payment gateways in the future. |

| cardInfo | Object | | N/A | A Json value to store the card details of the payment method. |

Generated UI Components

  • List Component: OrderManagementSys_paymentMethodAppPageList - Displays paginated data with filtering and sorting
  • Create Modal: OrderManagementSys_paymentMethodAppPageCreateModal - Form for creating new records
  • Update Modal: OrderManagementSys_paymentMethodAppPageUpdateModal - Form for editing existing records
  • Delete Modal: OrderManagementSys_paymentMethodAppPageDeleteModal - Confirmation dialog for deletion

API Endpoints

  • List: GET /sys_paymentMethod/list - Retrieve paginated list of records
  • Get: GET /sys_paymentMethod/get - Retrieve single record by ID
  • Create: POST /sys_paymentMethod/create - Create new record
  • Update: PUT /sys_paymentMethod/update - Update existing record
  • Delete: DELETE /sys_paymentMethod/delete - Delete record by ID

Route Configuration

  • List Route: /dashboard/orderManagement/sys_paymentMethod
  • Create Route: /dashboard/orderManagement/sys_paymentMethod/create
  • Update Route: /dashboard/orderManagement/sys_paymentMethod/update/:id
  • Delete Route: /dashboard/orderManagement/sys_paymentMethod/delete/:id

Feedback Service Data Objects

Service Overview

  • Service Name: feedback
  • Service Display Name: Feedback
  • Total Data Objects: 1

Data Objects

Feedback Data Object

Basic Information

  • Object Name: feedback
  • Display Name: Feedback
  • Component Name: FeedbackFeedbackAppPage
  • Description: One feedback per (buyer, orderItem). Stores rating (1-5), comment, ties to seller for analytics. Created only after delivery confirmed on order item.

Object Properties

Property Name Type Required Default Definition

| rating | Integer | | N/A | Rating (1-5 stars) submitted by buyer. Required. |

| orderId | ID | | N/A | Order containing this purchased item. Used for aggregation and validation. |

| buyerId | ID | | N/A | User/buyer leaving feedback. Authenticated user, must match order item buyer. |

| orderItemId | ID | | N/A | Purchased item (line item) in order. Feedback is per (buyer, orderItem). |

| sellerId | ID | | N/A | Seller of product for analytics/aggregation. Not author; used for querying feedback about sellers. |

| comment | String | | N/A | Optional textual feedback comment, max ~500 chars. |

| productId | ID | | N/A | The product listing being reviewed (snapshot at order time). |

Generated UI Components

  • List Component: FeedbackFeedbackAppPageList - Displays paginated data with filtering and sorting
  • Create Modal: FeedbackFeedbackAppPageCreateModal - Form for creating new records
  • Update Modal: FeedbackFeedbackAppPageUpdateModal - Form for editing existing records
  • Delete Modal: FeedbackFeedbackAppPageDeleteModal - Confirmation dialog for deletion

API Endpoints

  • List: GET /feedback/list - Retrieve paginated list of records
  • Get: GET /feedback/get - Retrieve single record by ID
  • Create: POST /feedback/create - Create new record
  • Update: PUT /feedback/update - Update existing record
  • Delete: DELETE /feedback/delete - Delete record by ID

Route Configuration

  • List Route: /dashboard/feedback/feedback
  • Create Route: /dashboard/feedback/feedback/create
  • Update Route: /dashboard/feedback/feedback/update/:id
  • Delete Route: /dashboard/feedback/feedback/delete/:id

Auth Service Data Objects

Service Overview

  • Service Name: auth
  • Service Display Name: Auth
  • Total Data Objects: 1

Data Objects

User Data Object

Basic Information

  • Object Name: user
  • Display Name: User
  • Component Name: AuthUserAppPage
  • Description: A data object that stores the user information and handles login settings.

Object Properties

Property Name Type Required Default Definition

| email | String | | N/A | * A string value to represent the user's email.* |

| password | String | | N/A | * A string value to represent the user's password. It will be stored as hashed.* |

| fullname | String | | N/A | A string value to represent the fullname of the user |

| avatar | String | | N/A | The avatar url of the user. A random avatar will be generated if not provided |

| roleId | String | | N/A | A string value to represent the roleId of the user. |

| emailVerified | Boolean | | N/A | A boolean value to represent the email verification status of the user. |

| phone | String | | N/A | user's phone number |

| address | Object | | N/A | user's adress |

Generated UI Components

  • List Component: AuthUserAppPageList - Displays paginated data with filtering and sorting
  • Create Modal: AuthUserAppPageCreateModal - Form for creating new records
  • Update Modal: AuthUserAppPageUpdateModal - Form for editing existing records
  • Delete Modal: AuthUserAppPageDeleteModal - Confirmation dialog for deletion

API Endpoints

  • List: GET /user/list - Retrieve paginated list of records
  • Get: GET /user/get - Retrieve single record by ID
  • Create: POST /user/create - Create new record
  • Update: PUT /user/update - Update existing record
  • Delete: DELETE /user/delete - Delete record by ID

Route Configuration

  • List Route: /dashboard/auth/user
  • Create Route: /dashboard/auth/user/create
  • Update Route: /dashboard/auth/user/update/:id
  • Delete Route: /dashboard/auth/user/delete/:id

CRUD Operations

Create Operations

Create Form Implementation

// Create forms are generated as lazy-loaded modal components
// Basic form fields are rendered based on data object properties

Create API Integration

// Create operations are handled through service-specific API calls
// Basic validation is performed client-side

Read Operations

List View Implementation

// List views are implemented using MUI DataGrid
// Data is fetched through service-specific API calls

Update Operations

Update Form Implementation

// Update forms are generated as lazy-loaded modal components
// Basic form fields are pre-populated with existing data

Update API Integration

// Update operations are handled through service-specific API calls
// Basic validation is performed client-side

Delete Operations

Delete Implementation

// Delete operations are handled through service-specific API calls
// Confirmation dialogs are implemented as modal components

Data Validation

Client-Side Validation

Validation Implementation

// Basic validation is performed on form fields
// Required fields are validated before submission

Server-Side Validation Integration

API Error Handling

// Server validation errors are displayed to users
// Error messages are shown in the UI components

Data Relationships

Relationship Management

Relationship Implementation

// Basic data relationships are handled through form fields
// Related data is displayed in select components

User Experience Patterns

Loading States

Loading Implementation

// Loading states are handled by MUI DataGrid
// Skeleton loading is provided by the data grid component

Error States

Error Handling UI

// Error states are displayed through UI components
// Error messages are shown to users

Empty States

Empty State UI

// Empty states are handled by MUI DataGrid
// Empty content is displayed when no data is available

Performance Optimization

Data Pagination

Pagination Implementation

// Pagination is handled by MUI DataGrid
// Data is loaded in pages as needed