# dillustrationteam/dil-backend architecture

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

- Interactive diagram: https://gitdiagram.com/dillustrationteam/dil-backend
- Repository: https://github.com/dillustrationteam/dil-backend

## Overview

ArtCommission is a multi-sided art marketplace and commission-management API: clients and creators discover work, arrange commissions or trades, transact through escrow and auctions, and manage delivery, reviews, and disputes. The graph highlights those user-facing stages plus creator tools, AI assistance, chat, revenue, and community features named in the source tree. Relationships are limited to controller calls and data access shown in excerpts or the SOURCE INDEX; README documentation was not provided, and several unsampled subsystems therefore have no asserted call paths.

Main entry points: [`src/ArtCommission.Application/ArtistStudio/ClientProfiles/Queries/GetClientOwnedArtworks/GetClientOwnedArtworksQuery.cs`](https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.Application/ArtistStudio/ClientProfiles/Queries/GetClientOwnedArtworks/GetClientOwnedArtworksQuery.cs) (Owned artwork view), [`src/ArtCommission.API/Controllers/v1/CommissionsController.cs`](https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.API/Controllers/v1/CommissionsController.cs) (Commission endpoints), [`src/ArtCommission.Infrastructure/Services/CommissionService.cs`](https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.Infrastructure/Services/CommissionService.cs) (Commission workflow), [`src/ArtCommission.Application/Common/Interfaces/IApplicationDbContext.cs`](https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.Application/Common/Interfaces/IApplicationDbContext.cs) (Application data access)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and profiles"]
  node_api["API endpoints"]
  node_auth["Account and auth<br/>[AuthController.cs]"]
  node_profiles["Profiles and discovery"]
  node_owned_art["Owned artwork view"]
end

subgraph group_commerce["Commissions and commerce"]
  node_commission_api["Commission endpoints"]
  node_commission_service["Commission workflow"]
  node_commission_data["Commission records<br/>[Commission.cs]"]
  node_auction_api["Auction endpoints"]
  node_auction_commands["Auction operations<br/>[PlaceBidCommand.cs]"]
  node_auction_data["Auction records<br/>[Auction.cs]"]
  node_payments["Payments and wallets"]
  node_trades["Art trades"]
end

subgraph group_creator["Creator tools"]
  node_studio["Artwork studio"]
  node_marketplace["Artwork marketplace"]
end

subgraph group_platform["Platform services"]
  node_chat["Workroom chat<br/>[ChatController.cs]"]
  node_ai["AI assistance<br/>[AiController.cs]"]
  node_moderation["Artwork moderation"]
  node_revenue["Creator revenue"]
  node_events["Events and jury"]
  node_data_context["Application data access"]
end

node_client(("Client"))
node_creator_user(("Creator"))

node_client -->|"authenticates"| node_auth
node_creator_user -->|"authenticates"| node_auth
node_client -->|"requests commission"| node_commission_api
node_creator_user -->|"responds to commission"| node_commission_api
node_commission_api -->|"calls"| node_commission_service
node_commission_service -.->|"manages"| node_commission_data
node_client -->|"bids or buys"| node_auction_api
node_auction_api -->|"dispatches commands"| node_auction_commands
node_auction_commands -.->|"updates auction"| node_auction_data
node_creator_user -.->|"uploads artwork"| node_studio
node_client -.->|"discovers artwork"| node_marketplace
node_client -.->|"proposes trade"| node_trades
node_client -.->|"sends messages"| node_chat
node_creator_user -.->|"sends messages"| node_chat
node_client -.->|"requests assistance"| node_ai
node_creator_user -.->|"submits artwork"| node_moderation
node_creator_user -.->|"views earnings"| node_revenue
node_client -.->|"joins events"| node_events
node_profiles -.->|"reads profile data"| node_data_context
node_revenue -->|"queries wallet ledger"| node_data_context
node_owned_art -->|"reads ownership"| node_data_context
node_owned_art -->|"requests download URL"| node_commission_service
node_client -.->|"views collection"| node_owned_art

click node_api "https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.API/Controllers/ApiControllerBase.cs"
click node_auth "https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.API/Controllers/AuthController.cs"
click node_profiles "https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.API/Controllers/CreatorProfilesController.cs"
click node_studio "https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.Application/ArtistStudio/Commands/UploadArtwork/UploadArtworkCommand.cs"
click node_marketplace "https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.Application/ArtistStudio/Marketplace/MarketplaceHandlers.cs"
click node_commission_api "https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.API/Controllers/v1/CommissionsController.cs"
click node_commission_service "https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.Infrastructure/Services/CommissionService.cs"
click node_commission_data "https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.Domain/Entities/Commission/Commission.cs"
click node_auction_api "https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.API/Controllers/AuctionsController.cs"
click node_auction_commands "https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.Application/Auction/Commands/PlaceBid/PlaceBidCommand.cs"
click node_auction_data "https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.Domain/Entities/Auction/Auction.cs"
click node_payments "https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.API/Controllers/PaymentsController.cs"
click node_trades "https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.API/Controllers/ArtTradesController.cs"
click node_chat "https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.API/Controllers/ChatController.cs"
click node_ai "https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.API/Controllers/AiController.cs"
click node_moderation "https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.API/Controllers/AdminModerationController.cs"
click node_revenue "https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.Application/Revenue/Common/RevenueQueryService.cs"
click node_events "https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.API/Controllers/EventsController.cs"
click node_data_context "https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.Application/Common/Interfaces/IApplicationDbContext.cs"
click node_owned_art "https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.Application/ArtistStudio/ClientProfiles/Queries/GetClientOwnedArtworks/GetClientOwnedArtworksQuery.cs"

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_api,node_auth,node_profiles,node_owned_art,node_client toneBlue
class node_commission_api,node_commission_service,node_commission_data,node_auction_api,node_auction_commands,node_auction_data,node_payments,node_trades toneAmber
class node_studio,node_marketplace toneMint
class node_chat,node_ai,node_moderation,node_revenue,node_events,node_data_context toneRose
class node_creator_user toneIndigo
```

## Components

### Access and profiles

- [API endpoints](https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.API/Controllers/ApiControllerBase.cs): `src/ArtCommission.API/Controllers/ApiControllerBase.cs`
- [Account and auth](https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.API/Controllers/AuthController.cs): `src/ArtCommission.API/Controllers/AuthController.cs`
- [Profiles and discovery](https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.API/Controllers/CreatorProfilesController.cs): `src/ArtCommission.API/Controllers/CreatorProfilesController.cs`
- [Owned artwork view](https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.Application/ArtistStudio/ClientProfiles/Queries/GetClientOwnedArtworks/GetClientOwnedArtworksQuery.cs): `src/ArtCommission.Application/ArtistStudio/ClientProfiles/Queries/GetClientOwnedArtworks/GetClientOwnedArtworksQuery.cs`

### Commissions and commerce

- [Commission endpoints](https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.API/Controllers/v1/CommissionsController.cs): `src/ArtCommission.API/Controllers/v1/CommissionsController.cs`
- [Commission workflow](https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.Infrastructure/Services/CommissionService.cs): `src/ArtCommission.Infrastructure/Services/CommissionService.cs`
- [Commission records](https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.Domain/Entities/Commission/Commission.cs): `src/ArtCommission.Domain/Entities/Commission/Commission.cs`
- [Auction endpoints](https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.API/Controllers/AuctionsController.cs): `src/ArtCommission.API/Controllers/AuctionsController.cs`
- [Auction operations](https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.Application/Auction/Commands/PlaceBid/PlaceBidCommand.cs): `src/ArtCommission.Application/Auction/Commands/PlaceBid/PlaceBidCommand.cs`
- [Auction records](https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.Domain/Entities/Auction/Auction.cs): `src/ArtCommission.Domain/Entities/Auction/Auction.cs`
- [Payments and wallets](https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.API/Controllers/PaymentsController.cs): `src/ArtCommission.API/Controllers/PaymentsController.cs`
- [Art trades](https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.API/Controllers/ArtTradesController.cs): `src/ArtCommission.API/Controllers/ArtTradesController.cs`

### Creator tools

- [Artwork studio](https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.Application/ArtistStudio/Commands/UploadArtwork/UploadArtworkCommand.cs): `src/ArtCommission.Application/ArtistStudio/Commands/UploadArtwork/UploadArtworkCommand.cs`
- [Artwork marketplace](https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.Application/ArtistStudio/Marketplace/MarketplaceHandlers.cs): `src/ArtCommission.Application/ArtistStudio/Marketplace/MarketplaceHandlers.cs`

### Platform services

- [Workroom chat](https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.API/Controllers/ChatController.cs): `src/ArtCommission.API/Controllers/ChatController.cs`
- [AI assistance](https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.API/Controllers/AiController.cs): `src/ArtCommission.API/Controllers/AiController.cs`
- [Artwork moderation](https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.API/Controllers/AdminModerationController.cs): `src/ArtCommission.API/Controllers/AdminModerationController.cs`
- [Creator revenue](https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.Application/Revenue/Common/RevenueQueryService.cs): `src/ArtCommission.Application/Revenue/Common/RevenueQueryService.cs`
- [Events and jury](https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.API/Controllers/EventsController.cs): `src/ArtCommission.API/Controllers/EventsController.cs`
- [Application data access](https://github.com/dillustrationteam/dil-backend/blob/main/src/ArtCommission.Application/Common/Interfaces/IApplicationDbContext.cs): `src/ArtCommission.Application/Common/Interfaces/IApplicationDbContext.cs`

### Other components

- **Client**
- **Creator**

## Connections

- Client → Account and auth: authenticates
- Creator → Account and auth: authenticates
- Client → Commission endpoints: requests commission (evidence: `src/ArtCommission.API/Controllers/v1/CommissionsController.cs`)
- Creator → Commission endpoints: responds to commission (evidence: `src/ArtCommission.API/Controllers/v1/CommissionsController.cs`)
- Commission endpoints → Commission workflow: calls (evidence: `src/ArtCommission.API/Controllers/v1/CommissionsController.cs`)
- Commission workflow → Commission records: manages
- Client → Auction endpoints: bids or buys (evidence: `src/ArtCommission.API/Controllers/AuctionsController.cs`)
- Auction endpoints → Auction operations: dispatches commands (evidence: `src/ArtCommission.API/Controllers/AuctionsController.cs`)
- Auction operations → Auction records: updates auction
- Creator → Artwork studio: uploads artwork
- Client → Artwork marketplace: discovers artwork
- Client → Art trades: proposes trade
- Client → Workroom chat: sends messages
- Creator → Workroom chat: sends messages
- Client → AI assistance: requests assistance
- Creator → Artwork moderation: submits artwork
- Creator → Creator revenue: views earnings
- Client → Events and jury: joins events
- Profiles and discovery → Application data access: reads profile data
- Creator revenue → Application data access: queries wallet ledger (evidence: `src/ArtCommission.Application/Revenue/Common/RevenueQueryService.cs`)
- Owned artwork view → Application data access: reads ownership (evidence: `src/ArtCommission.Application/ArtistStudio/ClientProfiles/Queries/GetClientOwnedArtworks/GetClientOwnedArtworksQuery.cs`)
- Owned artwork view → Commission workflow: requests download URL (evidence: `src/ArtCommission.Application/ArtistStudio/ClientProfiles/Queries/GetClientOwnedArtworks/GetClientOwnedArtworksQuery.cs`)
- Client → Owned artwork view: views collection
