42 lines
1.7 KiB
Markdown
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 |
|