namespace CashLineERP.Contracts.Identity;

public sealed record CreateAdminManagedUserRequest(
    string LoginName,
    string DisplayName,
    string UserTypeCode,
    string Password,
    string? Email,
    long? BranchId,
    long? PartyId,
    IReadOnlyCollection<string> RoleCodes,
    IReadOnlyCollection<string>? FunctionCodes = null);

public sealed record UpdateAdminManagedUserRolesRequest(
    IReadOnlyCollection<string> RoleCodes,
    IReadOnlyCollection<string>? FunctionCodes = null);

public sealed record AdminUserLifecycleActionRequest(
    string Reason);

public sealed record UpdateAdminFunctionGovernanceRequest(
    string PortalCode,
    string UserTypeCode,
    string SectionCode,
    string? SectionLabel,
    bool SectionEnabled,
    string? FunctionCode,
    string? FunctionLabel,
    bool? FunctionEnabled,
    int? DisplayOrder);

