# AutoStore Architecture Overview ## Layer Boundaries ```mermaid graph TB subgraph PL[Presentation Layer] A[StoreController] B[AuthController] end subgraph AL[Application Layer] E[AddItem Use Case] F[DeleteItem Use Case] G[LoginUser Use Case] H[GetItem Use Case] I[ListItems Use Case] J[HandleExpiredItems Use Case] K[TaskScheduler] L[IItemRepository] M[IAuthService] N[IOrderService] O[ITimeProvider] P[IThreadManager] end subgraph DL[Domain Layer] Q[Item] R[User] S[ItemExpirationPolicy] end subgraph IL[Infrastructure Layer] C[HttpServer] D[HttpJwtMiddleware] T[FileItemRepository] U[FileJwtAuthService] V[HttpOrderService] W[SystemTimeProvider] X[SystemThreadManager] Y[CvBlocker] end ``` ## Component Dependencies ```mermaid graph LR StoreController --> AddItem StoreController --> DeleteItem StoreController --> GetItem StoreController --> ListItems StoreController --> IAuthService AuthController --> LoginUser AddItem --> IItemRepository AddItem --> ITimeProvider AddItem --> IOrderService AddItem --> ItemExpirationPolicy DeleteItem --> IItemRepository LoginUser --> IAuthService GetItem --> IItemRepository ListItems --> IItemRepository HandleExpiredItems --> IItemRepository HandleExpiredItems --> ITimeProvider HandleExpiredItems --> IOrderService HandleExpiredItems --> ItemExpirationPolicy TaskScheduler --> ITimeProvider TaskScheduler --> IThreadManager IItemRepository --> Item IAuthService --> User IOrderService --> Item ItemExpirationPolicy --> Item ItemExpirationPolicy --> ITimeProvider