2.3 KiB
2.3 KiB
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) |