import path from 'path';

export const DOMAINS_SOURCE_DIRECTORY = 'src/domains';

export const buildDomainDirectoryPath = (domainName: string): string => {
  return path.join(process.cwd(), DOMAINS_SOURCE_DIRECTORY, domainName);
};

export const getDomainsSourceDirectoryPath = (): string => {
  return path.join(process.cwd(), DOMAINS_SOURCE_DIRECTORY);
};

export const validateDomainName = (name: string): boolean => {
  // Check that the name is a valid TypeScript identifier
  // Must start with letter or underscore, followed by letters, numbers, or underscores
  // No hyphens, spaces, or special characters allowed
  const validNamePattern = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
  return validNamePattern.test(name) && name.length > 0;
}; 