# pimentelstef/storeplatformupdated architecture

> Architecture diagram of the GitHub repository pimentelstef/storeplatformupdated, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/pimentelstef/storeplatformupdated
- Repository: https://github.com/pimentelstef/storeplatformupdated

## Overview

This repository contains separate catalog and order ASP.NET APIs, plus a StorePlatform host and catalog/order contract files. The main user workflows are managing products and creating, retrieving, updating, or deleting orders; both implemented APIs keep records in static in-memory lists. Their controllers construct domain models from input models and serve the results. The excerpts show no call from orders to catalog or integration between the services, so those links are omitted. StorePlatform’s controllers and the contracts’ runtime use are not shown.

Main entry points: [`OrderService/Controllers/OrdersController.cs`](https://github.com/pimentelstef/storeplatformupdated/blob/master/OrderService/Controllers/OrdersController.cs) (Order endpoints), [`CatalogService_New/Controllers/ProductsController.cs`](https://github.com/pimentelstef/storeplatformupdated/blob/master/CatalogService_New/Controllers/ProductsController.cs) (Product endpoints), [`OrderService/Models/Order.cs`](https://github.com/pimentelstef/storeplatformupdated/blob/master/OrderService/Models/Order.cs) (Order model), [`OrderService/Models/OrderInput.cs`](https://github.com/pimentelstef/storeplatformupdated/blob/master/OrderService/Models/OrderInput.cs) (Order input)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_catalog["Catalog API"]
  node_products_api["Product endpoints"]
  node_product_records[("Product records")]
  node_product_model["Product model<br/>[Product.cs]"]
  node_product_input["Product input<br/>[ProductInput.cs]"]
  node_catalog_host["Catalog host<br/>[Program.cs]"]
end

subgraph group_orders["Order API"]
  node_orders_api["Order endpoints"]
  node_order_records[("Order records")]
  node_order_model["Order model<br/>[Order.cs]"]
  node_order_input["Order input<br/>[OrderInput.cs]"]
  node_order_item["Order item<br/>[OrderItem.cs]"]
  node_order_item_input["Order item input<br/>[OrderItemInput.cs]"]
  node_order_host["Order host<br/>[Program.cs]"]
end

subgraph group_platform["StorePlatform"]
  node_platform_host["Platform host<br/>[Program.cs]"]
end

subgraph group_contracts["API Contracts"]
  node_catalog_contract["Catalog contract<br/>[catalog.yaml]"]
  node_orders_contract["Orders contract<br/>[orders.yaml]"]
end

node_catalog_user(("API client"))
node_order_user(("API client"))

node_catalog_user -->|"calls routes"| node_products_api
node_products_api -->|"reads and writes"| node_product_records
node_products_api -->|"accepts input"| node_product_input
node_products_api -->|"creates and returns"| node_product_model
node_catalog_host -.->|"maps controllers"| node_products_api
node_order_user -->|"calls routes"| node_orders_api
node_orders_api -->|"reads and writes"| node_order_records
node_orders_api -->|"accepts input"| node_order_input
node_orders_api -->|"creates and returns"| node_order_model
node_orders_api -->|"creates items"| node_order_item
node_order_model -->|"contains"| node_order_item
node_order_input -->|"contains"| node_order_item_input
node_order_host -.->|"maps controllers"| node_orders_api

click node_products_api "https://github.com/pimentelstef/storeplatformupdated/blob/master/CatalogService_New/Controllers/ProductsController.cs"
click node_product_records "https://github.com/pimentelstef/storeplatformupdated/blob/master/CatalogService_New/Controllers/ProductsController.cs"
click node_product_model "https://github.com/pimentelstef/storeplatformupdated/blob/master/CatalogService_New/Models/Product.cs"
click node_product_input "https://github.com/pimentelstef/storeplatformupdated/blob/master/CatalogService_New/Models/ProductInput.cs"
click node_catalog_host "https://github.com/pimentelstef/storeplatformupdated/blob/master/CatalogService_New/Program.cs"
click node_orders_api "https://github.com/pimentelstef/storeplatformupdated/blob/master/OrderService/Controllers/OrdersController.cs"
click node_order_records "https://github.com/pimentelstef/storeplatformupdated/blob/master/OrderService/Controllers/OrdersController.cs"
click node_order_model "https://github.com/pimentelstef/storeplatformupdated/blob/master/OrderService/Models/Order.cs"
click node_order_input "https://github.com/pimentelstef/storeplatformupdated/blob/master/OrderService/Models/OrderInput.cs"
click node_order_item "https://github.com/pimentelstef/storeplatformupdated/blob/master/OrderService/Models/OrderItem.cs"
click node_order_item_input "https://github.com/pimentelstef/storeplatformupdated/blob/master/OrderService/Models/OrderItemInput.cs"
click node_order_host "https://github.com/pimentelstef/storeplatformupdated/blob/master/OrderService/Program.cs"
click node_platform_host "https://github.com/pimentelstef/storeplatformupdated/blob/master/StorePlatform/Program.cs"
click node_catalog_contract "https://github.com/pimentelstef/storeplatformupdated/blob/master/StorePlatform/contracts/catalog.yaml"
click node_orders_contract "https://github.com/pimentelstef/storeplatformupdated/blob/master/StorePlatform/contracts/orders.yaml"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_products_api,node_product_records,node_product_model,node_product_input,node_catalog_host,node_catalog_user,node_order_user toneBlue
class node_orders_api,node_order_records,node_order_model,node_order_input,node_order_item,node_order_item_input,node_order_host toneAmber
class node_platform_host toneMint
class node_catalog_contract,node_orders_contract toneRose
```

## Components

### Catalog API

- [Product endpoints](https://github.com/pimentelstef/storeplatformupdated/blob/master/CatalogService_New/Controllers/ProductsController.cs): `CatalogService_New/Controllers/ProductsController.cs`
- [Product records](https://github.com/pimentelstef/storeplatformupdated/blob/master/CatalogService_New/Controllers/ProductsController.cs): `CatalogService_New/Controllers/ProductsController.cs`
- [Product model](https://github.com/pimentelstef/storeplatformupdated/blob/master/CatalogService_New/Models/Product.cs): `CatalogService_New/Models/Product.cs`
- [Product input](https://github.com/pimentelstef/storeplatformupdated/blob/master/CatalogService_New/Models/ProductInput.cs): `CatalogService_New/Models/ProductInput.cs`
- [Catalog host](https://github.com/pimentelstef/storeplatformupdated/blob/master/CatalogService_New/Program.cs): `CatalogService_New/Program.cs`

### Order API

- [Order endpoints](https://github.com/pimentelstef/storeplatformupdated/blob/master/OrderService/Controllers/OrdersController.cs): `OrderService/Controllers/OrdersController.cs`
- [Order records](https://github.com/pimentelstef/storeplatformupdated/blob/master/OrderService/Controllers/OrdersController.cs): `OrderService/Controllers/OrdersController.cs`
- [Order model](https://github.com/pimentelstef/storeplatformupdated/blob/master/OrderService/Models/Order.cs): `OrderService/Models/Order.cs`
- [Order input](https://github.com/pimentelstef/storeplatformupdated/blob/master/OrderService/Models/OrderInput.cs): `OrderService/Models/OrderInput.cs`
- [Order item](https://github.com/pimentelstef/storeplatformupdated/blob/master/OrderService/Models/OrderItem.cs): `OrderService/Models/OrderItem.cs`
- [Order item input](https://github.com/pimentelstef/storeplatformupdated/blob/master/OrderService/Models/OrderItemInput.cs): `OrderService/Models/OrderItemInput.cs`
- [Order host](https://github.com/pimentelstef/storeplatformupdated/blob/master/OrderService/Program.cs): `OrderService/Program.cs`

### StorePlatform

- [Platform host](https://github.com/pimentelstef/storeplatformupdated/blob/master/StorePlatform/Program.cs): `StorePlatform/Program.cs`

### API Contracts

- [Catalog contract](https://github.com/pimentelstef/storeplatformupdated/blob/master/StorePlatform/contracts/catalog.yaml): `StorePlatform/contracts/catalog.yaml`
- [Orders contract](https://github.com/pimentelstef/storeplatformupdated/blob/master/StorePlatform/contracts/orders.yaml): `StorePlatform/contracts/orders.yaml`

### Other components

- **API client**
- **API client**

## Connections

- API client → Product endpoints: calls routes (evidence: `CatalogService_New/Controllers/ProductsController.cs`)
- Product endpoints → Product records: reads and writes (evidence: `CatalogService_New/Controllers/ProductsController.cs`)
- Product endpoints → Product input: accepts input (evidence: `CatalogService_New/Controllers/ProductsController.cs`)
- Product endpoints → Product model: creates and returns (evidence: `CatalogService_New/Controllers/ProductsController.cs`)
- Catalog host → Product endpoints: maps controllers
- API client → Order endpoints: calls routes (evidence: `OrderService/Controllers/OrdersController.cs`)
- Order endpoints → Order records: reads and writes (evidence: `OrderService/Controllers/OrdersController.cs`)
- Order endpoints → Order input: accepts input (evidence: `OrderService/Controllers/OrdersController.cs`)
- Order endpoints → Order model: creates and returns (evidence: `OrderService/Controllers/OrdersController.cs`)
- Order endpoints → Order item: creates items (evidence: `OrderService/Controllers/OrdersController.cs`)
- Order model → Order item: contains (evidence: `OrderService/Models/Order.cs`)
- Order input → Order item input: contains (evidence: `OrderService/Models/OrderInput.cs`)
- Order host → Order endpoints: maps controllers
