# Address

**Kind:** Class

**Source:** `Pams/Web/Pams.WebApp/Client/app/models/common/address.model.ts` (line 2)

**Part of:** [Pams](subsystem-pams)

`Address` is a client-side model for representing address data in the web application. Its `clone()` method creates a separate `Address` instance for editing or passing address state without changing the original object.

## Methods

| Method | Signature | Returns |
|---|---|---|
| `clone` | `clone(ad: Address)` | `void` |

## Properties

| Property | Type |
|---|---|
| `AddressID` | `number` |
| `AddressLine` | `string` |
| `CountryCode` | `string` |
| `CountryName` | `string` |
| `City` | `string` |
| `State` | `string` |
| `PostalCode` | `string` |
| `ZipCode` | `string` |
| `RowGuid` | `string` |
| `AddressTypeID` | `number` |
| `GovernateID` | `number` |
| `HasMarker` | `boolean` |
| `latitude` | `number` |
| `longitude` | `number` |

## Diagram

```mermaid
graph LR
  A[Address instance] --> B[clone()]
  B --> C[New Address instance]
```

## Usage

```ts
import { Address } from 'app/models/common/address.model';

const address = new Address();

const editableAddress = address.clone();

// Update editableAddress as needed.
// address remains available as the original instance.
```

## AI Coding Instructions

- Use `clone()` before editing an address that may also be referenced by existing UI state or another model.
- Treat the cloned value as a separate `Address` instance; do not assume changes are reflected in the original.
- Keep address-related changes within the shared `Address` model rather than duplicating address state shapes in components.
- Verify the model import path against the application's configured TypeScript path aliases.

## Used by

5 references from 5 files. Each is a place in this repository where the symbol is actually used — go read one rather than trusting an example.

### Imported by (5)

- `CompanyBranch` — `Pams/Web/Pams.WebApp/Client/app/models/organization/company-branch.model.ts`:5
- `Account` — `Pams/Web/Pams.WebApp/Client/app/models/person/accounts.model.ts`:10
- `Client` — `Pams/Web/Pams.WebApp/Client/app/models/person/client.model.ts`:5
- `Employee` — `Pams/Web/Pams.WebApp/Client/app/models/person/employee.model.ts`:5
- `Supplier` — `Pams/Web/Pams.WebApp/Client/app/models/person/supplier.model.ts`:9
