Skip to content

Asset transfer#286

Merged
yusuftomilola merged 16 commits intoDistinctCodes:mainfrom
nafiuishaaq:assetTransfer
Oct 1, 2025
Merged

Asset transfer#286
yusuftomilola merged 16 commits intoDistinctCodes:mainfrom
nafiuishaaq:assetTransfer

Conversation

@nafiuishaaq
Copy link
Contributor

Title

Add Companies, Branches, and Asset Transfers modules with CRUD and transfer workflow

Summary

Introduces company/branch domain and asset transfer workflow:

  • Companies/Branches CRUD
  • Asset transfer API that records movements and updates asset ownership
  • Unit tests for services

What’s Changed

  • Companies
    • src/companies/companies.module.ts
    • src/companies/entities/company.entity.ts
    • src/companies/dto/create-company.dto.ts
    • src/companies/dto/update-company.dto.ts
    • src/companies/companies.service.ts
    • src/companies/companies.controller.ts
  • Branches
    • src/branches/branches.module.ts
    • src/branches/entities/branch.entity.ts
    • src/branches/dto/create-branch.dto.ts
    • src/branches/dto/update-branch.dto.ts
    • src/branches/branches.service.ts
    • src/branches/branches.controller.ts
  • Asset Transfers
    • src/asset-transfers/asset-transfers.module.ts
    • src/asset-transfers/entities/asset-transfer.entity.ts
    • src/asset-transfers/dto/initiate-transfer.dto.ts
    • src/asset-transfers/asset-transfers.service.ts
    • src/asset-transfers/asset-transfers.controller.ts
  • Inventory Items
    • inventory-items/entities/inventory-item.entity.ts (+ currentDepartmentId)
  • App Wiring
    • src/app.module.ts (register modules and entities)
  • Tests
    • src/companies/companies.service.spec.ts
    • src/branches/branches.service.spec.ts
    • src/asset-transfers/asset-transfers.service.spec.ts

Endpoints

  • Companies
    • POST/GET/GET:id/PATCH:id/DELETE:id → companies
  • Branches
    • POST/GET/GET:id/PATCH:id/DELETE:id → branches
  • Asset Transfers
    • POST asset-transfers/initiate

Database Changes

  • Table companies with name, country, registrationNumber
  • Table branches with name, address, companyId
  • Table asset_transfers with assetId, fromDepartmentId, toDepartmentId, transferDate, initiatedBy, reason
  • Column currentDepartmentId added to inventory_items

How to Test

  • Install deps and start DB
  • Run tests:
    • npm run test
  • Manual checks (optional):
    • Create a company → create a branch → create an inventory item → POST to asset-transfers/initiate and verify the item’s currentDepartmentId updates

Screenshots/Recordings

  • N/A

Checklist

  • Generate companies module
  • Create Company entity
  • Implement service + controller CRUD for companies
  • Add DTOs with validation for companies
  • Generate branches module
  • Create Branch entity
  • Implement service + controller CRUD for branches
  • Add DTOs with validation for branches
  • Generate asset-transfers module
  • Define AssetTransfer entity & DTO
  • Add service + controller method to initiate transfer
  • Update asset ownership (currentDepartmentId) after transfer
  • Wire modules/entities in app.module.ts
  • Unit tests added for Companies, Branches, AssetTransfers services
  • Lint passes locally

Notes

  • registrationNumber is unique in companies.
  • Transfers prefer fromDepartmentId from request; otherwise log previous department.

closes #232

@vercel
Copy link

vercel bot commented Sep 30, 2025

@nafiuishaaq is attempting to deploy a commit to the naijabuz's projects Team on Vercel.

A member of the Team first needs to authorize it.

@yusuftomilola yusuftomilola merged commit 4f09102 into DistinctCodes:main Oct 1, 2025
5 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10. [BACKEND] Implement Asset Transfer Module

2 participants