Refactor docs: topic folders, TOON, XCUT, protocol sync - Migrated all topic documentation into dedicated folders with canonical `README.md`, `ISSUES.md`, and `TODO.md` per topic (e.g., `LOGGING/`, `SIGNALR/`, `BINARY/`, `TOON/`). - Added comprehensive TOON serializer documentation: design, format, options, attributes, inference, issues, and TODOs. - Introduced `XCUT` folder for cross-cutting issues and TODOs, with canonical entries and topic cross-references. - Updated all references and navigation to use new folder-based doc paths; fixed links and clarified doc structure. - Enhanced AI agent protocol: enforce session skill preloading, `[LOADED_DOCS: ...]` short-name prefix, and mandatory `docs-check` skill for doc/code sync. - Updated `.csproj` to include all `README.md` files for IDE visibility. - Improved and clarified SignalR, grid, and project-level documentation. - Minor code/test tweaks and doc content corrections for consistency. |
||
|---|---|---|
| .. | ||
| Addresses | ||
| Groups | ||
| Locations | ||
| LogItems | ||
| Messages | ||
| Profiles | ||
| ServiceProviders | ||
| Users | ||
| AcLogItemWriterBase.cs | ||
| AcModelDtoExtension.cs | ||
| AyCode.Entities.csproj | ||
| PermissionContextMappingSubjectType.cs | ||
| README.md | ||
README.md
AyCode.Entities
@project { type = "framework" }
Abstract base entity implementations for the AyCode domain model. All entities are abstract and generic — concrete implementations live in application-specific projects. Implements the interfaces defined in AyCode.Interfaces.
Folder Structure
| Folder | Purpose |
|---|---|
Addresses/ |
AcAddress — address entity with lat/lng, validation flag |
Groups/ |
GroupBase — base group entity with IsPublic flag |
Locations/ |
LocationBase — read-only location (lat/lng/address) |
LogItems/ |
AcLogItemClient — MessagePack-serializable log item DTO |
Messages/ |
AcEmailMessage<T>, AcEmailRecipient<T> — email messaging system |
Profiles/ |
AcProfile<TAddress> — user profile with name, media, address FK |
ServiceProviders/ |
AcCompany<...> — company entity with owner, users, commission |
Users/ |
AcUser<...>, AcUserToCompany<...>, AcUserTokenBase — user, junction table, auth tokens |
Root Files
PermissionContextMappingSubjectType.cs— Enum:NotDefined(0),User(5),Group(10).AcLogItemWriterBase.cs— Generic log writerAcLogItemWriterBase<TLogItem>extendingAcLogWriterBase. Thread-safe via mutex. AbstractWriteLogItemCallback()for concrete implementations.AcModelDtoExtension.cs— Extension methods for entity-to-DTO conversion viaActivator.CreateInstance.
Key Design Patterns
- Abstract + Generic — All entities are
abstractwith generic type parameters for navigation properties (e.g.,AcCompany<TUser, TUserToCompany, TProfile, TAddress>). This allows different applications to compose concrete types. - Interface implementation — Each entity implements its corresponding
AyCode.Interfacesinterface. - Timestamps — All entities implement
ITimeStampInfo(Created,Modified). - Guid PKs — Most entities use
Guid Idas primary key;AcUserTokenBaseusesint Id(auto-increment).
Dependencies
| Dependency | Purpose |
|---|---|
AyCode.Interfaces |
Interface contracts this project implements |
MessagePack.Annotations |
[MessagePackObject] on AcLogItemClient |