emloyee and user fixings
This commit is contained in:
@@ -6,8 +6,10 @@ namespace ERPCore.Domain.Entities;
|
||||
/// Staff record (FR-HR-MD-02) — distinct from <see cref="User"/> (the system login
|
||||
/// account): not every employee has a login, and not every login belongs to an
|
||||
/// employee. <see cref="UserId"/> is the optional, explicit, human-confirmed link
|
||||
/// between the two (docs/12-BACKEND-HRM.md A.5/C.2, Part B.3.2). Never hard-deleted —
|
||||
/// separation is recorded via <see cref="Status"/> + <see cref="LastWorkingDate"/>.
|
||||
/// between the two (docs/12-BACKEND-HRM.md A.5/C.2, Part B.3.2). Normal separation is
|
||||
/// recorded via <see cref="Status"/> + <see cref="LastWorkingDate"/> rather than deletion;
|
||||
/// an explicit hard delete is also available (<see cref="Services.Interfaces.IEmployeeService.DeleteAsync"/>)
|
||||
/// and cascades to every dependent HR record, blocked only if payroll history exists.
|
||||
/// <see cref="EmployeeCode"/> is user-entered (not <see cref="NumberSequence"/>-issued):
|
||||
/// HR departments keep their own legacy numbering scheme, and NumberSequence's
|
||||
/// year-scoping is the wrong shape for an identifier that must never look "reset".
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
namespace ERPCore.Domain.Entities;
|
||||
|
||||
/// <summary>
|
||||
/// One row per successful sign-in, captured directly by ERPCore (not AuthHex) so an
|
||||
/// admin can see a user's device/login history — AuthHex's own session listing only
|
||||
/// ever reports the currently-authenticated caller's own sessions, with no admin-scoped
|
||||
/// call to inspect anyone else's. This is a history of past logins, not a live "currently
|
||||
/// active sessions" view (that would need AuthHex to expose one).
|
||||
/// </summary>
|
||||
public class LoginActivity
|
||||
{
|
||||
public int LoginActivityId { get; set; }
|
||||
public int UserId { get; set; }
|
||||
public User? User { get; set; }
|
||||
|
||||
public string? IpAddress { get; set; }
|
||||
public string? UserAgent { get; set; }
|
||||
/// <summary>Best-effort "Browser on OS" label parsed from <see cref="UserAgent"/> for display.</summary>
|
||||
public string? DeviceLabel { get; set; }
|
||||
|
||||
public DateTime LoginAt { get; set; }
|
||||
}
|
||||
@@ -5,5 +5,8 @@ public enum AuditAction
|
||||
{
|
||||
Create,
|
||||
Update,
|
||||
Delete
|
||||
Delete,
|
||||
/// <summary>A successful sign-in — written explicitly (not via ErpDbContext's automatic
|
||||
/// entity-change capture, since a login mutates nothing) by AuthController.</summary>
|
||||
Login
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user