AyCode.Core/AyCode.Models/README.md

42 lines
1.7 KiB
Markdown

# AyCode.Models
@project {
type = "framework"
}
Shared DTOs (Data Transfer Objects) and view models for the AyCode platform. Bridges entities and interfaces into client/server-transferable models.
## Folder Structure
| Folder | Purpose |
|---|---|
| `Enums/` | Message-related enums (content types, message types) |
| `Messages/` | Email message model (currently inactive) |
| `Users/` | User DTOs: minimal, standard, detail variants + password DTOs |
## Root Files
- **`AcModelDtoBase.cs`** — Abstract base DTO with `Guid Id`. Generic version `AcModelDtoBase<TMainEntity>` adds `CreateMainEntity()` for DTO-to-entity instantiation via reflection.
## Key Files
### Enums/
- **`MessageContentType.cs`** — Enum: Text, Image, Video, Audio, File, Location, Contact, Sticker, Gif, VoiceNote, System.
- **`MessageTypesEnum.cs`** — Enum: email(1), sms(2), push(3), chat(4).
### Users/
- **`AcUserModelDtoMinBase.cs`** — Minimal user DTO with `UserDto` and `ProfileDto`. `CopyUserDtoValuesToUser()` for reverse mapping.
- **`AcUserModelDtoBase.cs`** — Extends min base with `ServiceProviders` and `UserToServiceProviders` lists.
- **`AcUserModelDtoDetailBase.cs`** — Full detail DTO: populates email, phone, address, timestamps. Bidirectional mapping via `CopyUserDtoValuesToUser()`.
- **`AcPasswordDtoBase.cs`** — Base with `NewPassword` property.
- **`AcChangePasswordDto.cs`** — Extends password base with `UserId` + `OldPassword`.
- **`AcForgotPasswordDto.cs`** — Extends password base with `Email`.
## Dependencies
| Dependency | Purpose |
|---|---|
| `AyCode.Core` | Core types |
| `AyCode.Entities` | Entity base classes for DTO-entity mapping |
| `AyCode.Interfaces` | Interface contracts implemented by DTOs |