# Asset Part Transfer API

API for managing asset part transfers between locations

**Version:** 1.0.0

## Overview

### Base URLs

- **Production server**: `https://sv.api.repzo.me`

- **Staging server**: `https://staging.sv.api.repzo.me`

### API Categories

- **Asset Part Transfer**: Operations related to asset part transfer management

## Authentication

This API uses the following authentication methods:

- **ApiKeyAuth**

## Endpoints

### `/asset-part-transfer`

#### GET /asset-part-transfer

**Summary:** Get all asset part transfers

**Description:** Retrieve a list of all asset part transfers with optional filtering and pagination

**Tags:** Asset Part Transfer

##### Parameters

| Name | Location | Type | Required | Description |
| ---- | -------- | ---- | -------- | ----------- |

| `limit` | query | integer | No | Maximum number of records to return |

| `offset` | query | integer | No | Number of records to skip for pagination |

| `sort` | query | string | No | Field to sort by |

| `order` | query | string | No | Sort order (asc or desc) |

| `filter` | query | string | No | Filter conditions in JSON format |

| `search` | query | string | No | Search term for text fields |

##### Responses

**200** - List of asset part transfers retrieved successfully

Content-Type: `application/json`

**400** - Bad request

**401** - Unauthorized

**500** - Internal server error

---

#### POST /asset-part-transfer

**Summary:** Create a new asset part transfer

**Description:** Create a new asset part transfer with the provided data

**Tags:** Asset Part Transfer

##### Request Body

**Content Types:**

- `application/json`

##### Responses

**201** - Asset part transfer created successfully

Content-Type: `application/json`

**400** - Bad request

**401** - Unauthorized

**500** - Internal server error

---

### `/asset-part-transfer/{id}`

#### GET /asset-part-transfer/{id}

**Summary:** Get asset part transfer by ID

**Description:** Retrieve a specific asset part transfer by its ID

**Tags:** Asset Part Transfer

##### Parameters

| Name | Location | Type | Required | Description |
| ---- | -------- | ---- | -------- | ----------- |

| `id` | path | string | Yes | Asset part transfer ID |

##### Responses

**200** - Asset part transfer retrieved successfully

Content-Type: `application/json`

**404** - Asset part transfer not found

**401** - Unauthorized

**500** - Internal server error

---

#### PUT /asset-part-transfer/{id}

**Summary:** Update asset part transfer

**Description:** Update an existing asset part transfer with new data

**Tags:** Asset Part Transfer

##### Parameters

| Name | Location | Type | Required | Description |
| ---- | -------- | ---- | -------- | ----------- |

| `id` | path | string | Yes | Asset part transfer ID |

##### Request Body

**Content Types:**

- `application/json`

##### Responses

**200** - Asset part transfer updated successfully

Content-Type: `application/json`

**400** - Bad request

**404** - Asset part transfer not found

**401** - Unauthorized

**500** - Internal server error

---

#### DELETE /asset-part-transfer/{id}

**Summary:** Delete asset part transfer

**Description:** Delete an existing asset part transfer

**Tags:** Asset Part Transfer

##### Parameters

| Name | Location | Type | Required | Description |
| ---- | -------- | ---- | -------- | ----------- |

| `id` | path | string | Yes | Asset part transfer ID |

##### Responses

**200** - Asset part transfer deleted successfully

Content-Type: `application/json`

**404** - Asset part transfer not found

**401** - Unauthorized

**500** - Internal server error

---

### `/asset-part-transfer/{id}/complete`

#### POST /asset-part-transfer/{id}/complete

**Summary:** Complete asset part transfer

**Description:** Mark an asset part transfer as completed

**Tags:** Asset Part Transfer

##### Parameters

| Name | Location | Type | Required | Description |
| ---- | -------- | ---- | -------- | ----------- |

| `id` | path | string | Yes | Asset part transfer ID |

##### Responses

**200** - Asset part transfer completed successfully

Content-Type: `application/json`

**404** - Asset part transfer not found

**401** - Unauthorized

**500** - Internal server error

---

## Data Models

### AssetPartTransfer

| Property | Type | Required | Description |
| -------- | ---- | -------- | ----------- |

| `_id` | string | No | Unique identifier for the asset part transfer |

| `transferNumber` | string | Yes | Unique transfer number |

| `fromLocation` | object | Yes | No description |

| `toLocation` | object | Yes | No description |

| `requestedBy` | string | Yes | User who requested the transfer |

| `approvedBy` | string | No | User who approved the transfer |

| `transferredBy` | string | No | User who executed the transfer |

| `requestDate` | string | No | Date when transfer was requested |

| `approvalDate` | string | No | Date when transfer was approved |

| `transferDate` | string | No | Date when transfer was executed |

| `scheduledDate` | string | No | Scheduled transfer date |

| `status` | string | No | Status of the transfer |

| `priority` | string | No | Priority of the transfer |

| `reason` | string | No | Reason for the transfer |

| `items` | array | Yes | No description |

| `totalItems` | integer | No | Total number of items being transferred |

| `transportMethod` | string | No | Method of transport |

| `carrier` | string | No | Carrier/transporter name |

| `trackingNumber` | string | No | Tracking number if applicable |

| `estimatedArrival` | string | No | Estimated arrival time |

| `actualArrival` | string | No | Actual arrival time |

| `cost` | number | No | Transfer cost |

| `currency` | string | No | Currency code |

| `documents` | array | No | No description |

| `notes` | string | No | General notes |

| `metadata` | object | No | Additional metadata |

| `createdAt` | string | No | Record creation timestamp |

| `updatedAt` | string | No | Record last update timestamp |

### AssetPartTransferInput

| Property | Type | Required | Description |
| -------- | ---- | -------- | ----------- |

| `transferNumber` | string | Yes | Unique transfer number |

| `fromLocation` | object | Yes | No description |

| `toLocation` | object | Yes | No description |

| `requestedBy` | string | Yes | User who requested the transfer |

| `approvedBy` | string | No | User who approved the transfer |

| `transferredBy` | string | No | User who executed the transfer |

| `requestDate` | string | No | Date when transfer was requested |

| `approvalDate` | string | No | Date when transfer was approved |

| `transferDate` | string | No | Date when transfer was executed |

| `scheduledDate` | string | No | Scheduled transfer date |

| `status` | string | No | Status of the transfer |

| `priority` | string | No | Priority of the transfer |

| `reason` | string | No | Reason for the transfer |

| `items` | array | Yes | No description |

| `totalItems` | integer | No | Total number of items being transferred |

| `transportMethod` | string | No | Method of transport |

| `carrier` | string | No | Carrier/transporter name |

| `trackingNumber` | string | No | Tracking number if applicable |

| `estimatedArrival` | string | No | Estimated arrival time |

| `actualArrival` | string | No | Actual arrival time |

| `cost` | number | No | Transfer cost |

| `currency` | string | No | Currency code |

| `documents` | array | No | No description |

| `notes` | string | No | General notes |

| `metadata` | object | No | Additional metadata |

## TypeScript Usage

See [asset-part-transfer-examples.md](./asset-part-transfer-examples.md) for detailed TypeScript usage examples.
