/*
 * For any questions, contact us at: raman@worktif.com
 */

import type { PureContainer } from '@worktif/utils';

import { UsersService } from '../services/users.service';

/**
 * Users configuration
 */
export interface UsersConfig {
  sessionTimeout: number;
  maxLoginAttempts: number;
}

/**
 * Users Ties Class
 *
 * Registers all user-related services and configuration in the DI container.
 * Uses object-based registration for meaningful property names.
 *
 * @example
 * ```typescript
 * const definition: MicroserviceDefinition = {
 *   ties: [UsersTies],
 *   lambdas: [createUserHandler, getUserHandler]
 * };
 * ```
 */
export class UsersTies {
  /**
   * Object-based registration using meaningful property names as keys.
   * This enables type-safe dependency access via event.ties.
   */
  static register = {
    userService: {
      instance: UsersService,
      dependencies: [],
    },
  };
}
