# Users

Abstract base entities for user accounts, authentication tokens, and user-to-company membership mappings. Mapped to the `Users`, `UserToken`, and `UserToServiceProvider` database tables.

## Key Files

- **`AcUser.cs`** — Generic abstract class (`AcUser<TProfile, TCompany, TUserToServiceProvider, TProfileAddress>`) implementing `IAcUser`. Holds email, password, phone, refresh token, affiliate/referral IDs, and navigation properties to `Profile`, `ServiceProviders`, and `UserToServiceProviders`.
- **`AcUserTokenBase.cs`** — Abstract class for user verification tokens with `Token`, `IsActive`, `TokenSent`, and `TokenExpiration` fields. Uses an auto-incremented `int` primary key.
- **`AcUserToCompany.cs`** — Generic abstract class (`AcUserToCompany<TUser, TCompany>`) implementing `IAcUserToCompany`. Many-to-many join entity linking users to companies with a `Permissions` field.
