# AyCode.Interfaces.Server

@project {
  type = "framework"
}

Server-side interface contracts extending `AyCode.Interfaces`. Defines authentication and login service contracts that are only relevant on the server.

## Key Files

### Logins/
- **`IAcLoginDtoBase.cs`** — Empty marker interface for login DTOs.
- **`IAcLoggedInModelBase.cs`** — Generic interface for the logged-in user model. Properties: `IsLoggedIn`, `LoggedInUser`, `AccessToken`, `LoginErrorCode`. Methods: `AddLoggedInUser()`, `Logout()`. Heavily constrained generics (`TUser`, `TUserToken`, `TProfile`, `TCompany`, `TUserToServiceProvider`, `TProfileAddress`).
- **`IAcLoginServiceServer.cs`** — Server-side login service extending `IAcLoginServiceCommon`. Adds: `Login()`/`LoginAsync()` (returns `TResultLoggedInModel`), `UpdatePassword()`. Returns `AcErrorCode` for validation.

## Dependencies

| Dependency | Purpose |
|---|---|
| `AyCode.Interfaces` | Base interface contracts (users, profiles, companies, logins) |
| `AyCode.Core` | Error codes (`AcErrorCode`) |
| `AyCode.Core.Server` | Server-side core |
| `AyCode.Entities` | Entity base classes |
| `AyCode.Entities.Server` | Server-side entities |
