AyCode.Core/AyCode.Models/README.md

1.9 KiB

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<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

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.