- Add BINARY_FORMAT.md: full AcBinary wire format spec (markers, encoding, options, protocol, interactions) - Reference BINARY_FORMAT.md from GLOSSARY.md, Binaries/README.md, and Serializers/Binaries/README.md; add new glossary terms - Clarify and expand config options tables to match new doc - Add/clarify LLM maintenance rules: always sync .md files with code, auto-fix discrepancies - Update root README.md: AyCode.Core targets .NET 9, not 10; stress doc/code sync - Add code reuse and doc sync conventions to copilot-instructions.md and CONVENTIONS.md - Add docs/ folder and BINARY_FORMAT.md to solution as Solution Items - Minor clarifications and cross-links in ARCHITECTURE.md and other docs |
||
|---|---|---|
| .. | ||
| 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) |