import { Logger } from "./Logger.js"; /** * Abstract base class for Repositories in the Four-Tier Architecture. * * Repositories encapsulate data access abstraction, coordinate multiple DAOs, * assemble POs/DTOs, and manage domain entity lifecycle between the Service layer and DAO layer. */ export default abstract class CommonRepository { protected readonly logger: Logger; protected constructor(); /** * Obtains an instance of the specified DAO from BeanFactory. * @template T - Type of the DAO class or interface. * @param name - Registered DAO bean name. * @throws {Error} If the DAO is not registered in BeanFactory. * @returns The resolved DAO instance. */ protected getDAOInstance(name: string): T; /** * Generates a 32-character UUID string with hyphens removed. * @protected * @returns Generated 32-character UUID string. */ protected genID(): string; /** * Generates a standard 36-character UUID string with hyphens. * @protected * @returns Generated standard UUID string. */ protected genUUID(): string; }