@@ -452,51 +452,28 @@ sequenceDiagram
452452``` mermaid
453453sequenceDiagram
454454 participant Client
455- participant SaleController
456- participant SaleService
457- participant SaleRepo as SaleRepository
458- participant StockService
459- participant StockRepo as StockRepository
460- participant DB as MySQL Database
461-
462- Client->>SaleController: POST /api/sales
463- Note over Client: Sale Order with<br/>Product, Quantity, Customer
464-
465- SaleController->>SaleService: createSale(sale)
466- activate SaleService
455+ participant API as Sale API
456+ participant Service as Business Logic
457+ participant DB as Database
467458
468- SaleService->>StockService: checkAvailability(productId, warehouseId, quantity)
469- activate StockService
470- StockService->>StockRepo: findByProductAndWarehouse(productId, warehouseId)
471- StockRepo->>DB: SELECT * FROM stocks WHERE...
472- DB-->>StockRepo: Stock Entity
473- StockRepo-->>StockService: Stock Entity
474- StockService-->>SaleService: Stock availability result
475- deactivate StockService
459+ Client->>API: POST /api/sales
460+ API->>Service: Process Sale Order
461+ activate Service
462+
463+ Service->>DB: Check Stock Availability
464+ DB-->>Service: Stock Status
476465
477466 alt Stock Available
478- SaleService->>SaleRepo: save(sale)
479- activate SaleRepo
480- SaleRepo->>DB: INSERT INTO sales
481- DB-->>SaleRepo: Sale Entity
482- SaleRepo-->>SaleService: Sale Entity
483- deactivate SaleRepo
484-
485- SaleService->>StockService: reduceStock(productId, warehouseId, quantity)
486- activate StockService
487- StockService->>DB: UPDATE stocks SET quantity = quantity - ?
488- DB-->>StockService: Updated
489- StockService-->>SaleService: Success
490- deactivate StockService
491-
492- SaleService-->>SaleController: Sale Entity
493- SaleController-->>Client: 201 Created
494- deactivate SaleService
467+ Service->>DB: Create Sale Record
468+ Service->>DB: Reduce Stock Quantity
469+ DB-->>Service: Success
470+ Service-->>API: Sale Created
471+ API-->>Client: 201 Created
495472 else Insufficient Stock
496- SaleService-->>SaleController: Error: Insufficient Stock
497- SaleController-->>Client: 400 Bad Request
498- deactivate SaleService
473+ Service-->>API: Stock Unavailable
474+ API-->>Client: 400 Bad Request
499475 end
476+ deactivate Service
500477```
501478
502479### Inter-Warehouse Transfer Flow
@@ -506,88 +483,52 @@ sequenceDiagram
506483``` mermaid
507484sequenceDiagram
508485 participant Client
509- participant TransferController
510- participant TransferService
511- participant TransferRepo as TransferRepository
512- participant StockService
513- participant DB as MySQL Database
486+ participant API as Transfer API
487+ participant Service as Business Logic
488+ participant DB as Database
514489
515- Client->>TransferController: POST /api/transfers
516- Note over Client: Transfer Request: From Warehouse A to B
517-
518- TransferController->>TransferService: createTransfer(transfer)
519- activate TransferService
490+ Client->>API: POST /api/transfers
491+ API->>Service: Create Transfer Request
492+ activate Service
520493
521- TransferService->>StockService: checkStock(productId, fromWarehouseId, quantity)
522- activate StockService
523- StockService->>DB: SELECT quantity FROM stocks
524- DB-->>StockService: Available Quantity
525- StockService-->>TransferService: Stock check result
526- deactivate StockService
494+ Service->>DB: Check Stock in Source Warehouse
495+ DB-->>Service: Stock Status
527496
528497 alt Stock Available
529- TransferService->>TransferRepo: save(transfer)
530- activate TransferRepo
531- TransferRepo->>DB: INSERT INTO transfers (status='PENDING')
532- DB-->>TransferRepo: Transfer (PENDING)
533- TransferRepo-->>TransferService: Transfer (PENDING)
534- deactivate TransferRepo
535- TransferService-->>TransferController: Transfer Entity
536- TransferController-->>Client: 201 Created
537- deactivate TransferService
498+ Service->>DB: Save Transfer (Status: PENDING)
499+ DB-->>Service: Transfer Created
500+ Service-->>API: Transfer Entity
501+ API-->>Client: 201 Created
538502 else Insufficient Stock
539- TransferService-->>TransferController: Error: Insufficient Stock
540- TransferController-->>Client: 400 Bad Request
541- deactivate TransferService
503+ Service-->>API: Stock Unavailable
504+ API-->>Client: 400 Bad Request
542505 end
506+ deactivate Service
543507```
544508
545- ** Phase 2: Approve and Execute Transfer**
509+ ** Phase 2: Execute Transfer**
546510
547511``` mermaid
548512sequenceDiagram
549513 participant Client
550- participant TransferController
551- participant TransferService
552- participant TransferRepo as TransferRepository
553- participant StockService
554- participant DB as MySQL Database
514+ participant API as Transfer API
515+ participant Service as Business Logic
516+ participant DB as Database
555517
556- Client->>TransferController: PUT /api/transfers/{id}
557- Note over Client: Update status: RECEIVED
558-
559- TransferController->>TransferService: updateTransfer(id, updated)
560- activate TransferService
561-
562- TransferService->>DB: BEGIN TRANSACTION
563-
564- TransferService->>StockService: reduceStock(productId, fromWarehouseId, quantity)
565- activate StockService
566- StockService->>DB: UPDATE stocks (reduce from source)
567- DB-->>StockService: Updated
568- StockService-->>TransferService: Success
569- deactivate StockService
570-
571- TransferService->>StockService: addStock(productId, toWarehouseId, quantity)
572- activate StockService
573- StockService->>DB: UPDATE/INSERT stocks (add to destination)
574- DB-->>StockService: Updated
575- StockService-->>TransferService: Success
576- deactivate StockService
577-
578- TransferService->>TransferRepo: save(updated)
579- activate TransferRepo
580- TransferRepo->>DB: UPDATE transfers SET status='RECEIVED'
581- DB-->>TransferRepo: Updated Transfer
582- TransferRepo-->>TransferService: Transfer (RECEIVED)
583- deactivate TransferRepo
518+ Client->>API: PUT /api/transfers/{id}
519+ API->>Service: Execute Transfer
520+ activate Service
584521
585- TransferService->>DB: COMMIT TRANSACTION
586- DB-->>TransferService: Transaction Complete
522+ Service->>DB: BEGIN TRANSACTION
523+ Service->>DB: Reduce Stock from Source
524+ Service->>DB: Add Stock to Destination
525+ Service->>DB: Update Transfer Status (RECEIVED)
526+ Service->>DB: COMMIT TRANSACTION
527+ DB-->>Service: Success
587528
588- TransferService -->>TransferController : Transfer Entity
589- TransferController -->>Client: 200 OK
590- deactivate TransferService
529+ Service -->>API : Transfer Completed
530+ API -->>Client: 200 OK
531+ deactivate Service
591532```
592533
593534
0 commit comments