Added comprehensive README.md documentation to every project and subfolder in the solution. Each README describes the purpose, key files, structure, dependencies, and design patterns for its area. This improves codebase navigability and maintainability, and includes a maintenance note to keep docs in sync with future code changes. |
||
|---|---|---|
| .. | ||
| Addresses | ||
| Entities | ||
| EntityComment | ||
| Enums | ||
| Groups | ||
| Locations | ||
| Logins | ||
| MediaInfo | ||
| Messages | ||
| Profiles | ||
| ServiceProviders | ||
| StorageHandlers | ||
| TimeStampInfo | ||
| Users | ||
| AyCode.Interfaces.csproj | ||
| IAcModelDtoBase.cs | ||
| ICustomForeignKey.cs | ||
| IOwnerId.cs | ||
| README.md | ||
README.md
AyCode.Interfaces
Domain interface contracts for the AyCode platform. Defines the shape of entities, DTOs, relationships, and service contracts. All interfaces are composable — small, single-responsibility interfaces are combined via inheritance to build up complex types.
Folder Structure
| Folder | Purpose |
|---|---|
Addresses/ |
Address entity, DTO, relation, and foreign key interfaces |
Entities/ |
Base entity interfaces: IEntity, IEntityGuid, IEntityInt, soft-delete support |
EntityComment/ |
IEntityComment — adds Comment property |
Enums/ |
IMessageTypes — message type enum container |
Groups/ |
IGroupBase — base group entity (Guid + timestamps) |
Locations/ |
ILocationBase — read-only lat/lng/address |
Logins/ |
Login service contracts: Logout, Registration, ChangePassword, ForgotPassword |
MediaInfo/ |
Media metadata: thumbnail URL, user media ID |
Messages/ |
Email message system: message, recipient, sender service interfaces |
Profiles/ |
User profile: name, full name, media, address, DTOs |
ServiceProviders/ |
Company/service provider entity and relationship interfaces |
StorageHandlers/ |
ISecureStorageHandler — async secure key-value storage |
TimeStampInfo/ |
Created/Modified timestamps, ITimeStampDisableAutoSet marker |
Users/ |
User entity, base, token, email, password, company relations, DTOs |
Root Interfaces
IOwnerId.cs—Guid OwnerIdproperty.IAcModelDtoBase.cs— Base DTO interface (IEntityGuid); generic version addsCreateMainEntity().ICustomForeignKey.cs— Generic marker for custom foreign keys (int/Guid variants).
Design Patterns
- Composition over inheritance — Small interfaces (
ITimeStampInfo,IAcEmailAddress,IPassword) are mixed in as needed. - Generic relations —
IAcXxxRelation<T>pattern for navigation properties and collections. - Separate FK interfaces —
IAcXxxForeignKeyfor type-safe foreign key declarations. - DTO hierarchy —
DtoBaseinterfaces separate from full entity interfaces. - Soft delete — Optional via
IAcSoftRemoveEntity/IAcSoftRemoveEntityGuid/IAcSoftRemoveEntityInt.
Dependencies
| Dependency | Purpose |
|---|---|
AyCode.Core |
Core library (IId<T>, IForeignKey, enums, error codes) |
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.