# 使用教程

本教程将指导您如何使用IT资产模型管理库来管理和操作域名资源。

## 基础使用流程

### 初始化域名管理器

首先，您需要导入相关模块并初始化域名管理器：

```typescript
import { DomainManager, Domain, DnsRecordType } from 'it-assets-management-models';

// 初始化域名管理器
const domainManager = DomainManager.create({
  adapter: 'memory', // 使用内存存储
});

// 必须先初始化
await domainManager.initialize();
```

## 核心功能使用

### 创建和管理域名

```typescript
// 创建新域名
const domain: Domain = await domainManager.create({
  name: 'example.com',
  description: '示例域名',
  targetAddress: '192.168.1.1',
  recordType: DnsRecordType.A,
  ttl: 3600,
  enabled: true
});
console.log('创建的域名:', domain);

// 查询域名
const allDomains: Domain[] = await domainManager.findAll();
const foundDomain: Domain = await domainManager.findById(domain.id);

// 更新域名
await domainManager.update(domain.id, {
  description: '更新后的描述',
  ttl: 7200
});

// 切换域名启用状态
await domainManager.toggleStatus(domain.id);

// 删除域名
await domainManager.delete(domain.id);
```

### 使用不同的存储适配器

该库支持多种存储适配器，您可以根据需要选择不同的存储方式：

```typescript
import { DomainManager, StorageFactory } from 'it-assets-management-models';

// 方法1: 直接指定适配器名称
const memoryManager = DomainManager.create({
  adapter: 'memory'
});

// 方法2: 手动创建存储适配器
const fileAdapter = StorageFactory.create('file', {
  basePath: './data/storage'  // 文件存储路径
});

const fileManager = DomainManager.create({
  adapter: fileAdapter
});

// 不同适配器可以并行使用
await memoryManager.initialize();
await fileManager.initialize();
```

### 高级查询功能

库支持复杂的查询条件、排序和分页功能：

```typescript
// 条件查询
const filteredDomains = await domainManager.find({
  conditions: [
    { field: 'enabled', operator: 'eq', value: true },
    { field: 'recordType', operator: 'eq', value: DnsRecordType.CNAME }
  ],
  sort: [
    { field: 'createdAt', order: 'desc' }
  ],
  skip: 0,
  limit: 10
});
```

### 资源清理

使用完毕后，建议释放相关资源：

```typescript
// 使用完毕后释放资源
await domainManager.release();
```

## 内置适配器使用

### 内存适配器 (MemoryAdapter)

**适用场景**：开发环境、临时数据存储、单元测试

```typescript
const config = {
  adapter: 'memory'
};
```

### 文件系统适配器 (FileSystemAdapter)

**适用场景**：单机部署、小型应用、开发/测试环境

```typescript
const config = {
  adapter: 'file',
  options: {
    basePath: './data/storage' // 文件存储路径
  }
};
```

---

## 相关文档

- [安装与构建指南](./installation-guide.md) - 详细的安装和构建步骤
- [架构与项目结构](./architecture-guide.md) - 详细的系统架构和项目组织说明
- [API参考](./api-reference.md) - 完整的API接口文档和数据模型说明
- [扩展指南](./extension-guide.md) - 开发自定义存储适配器和扩展功能
- [存储扩展指南](./storage-extension-guide.md) - 详细说明如何开发和集成自定义存储适配器