# AyCode.Models 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` 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 | --- > **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.