- Add CONTEXT-MAP.yml and ENVIRONMENT-INVENTORY.yml - Add propagacion-fase8 directory - Update project dependencies and context 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
164 lines
3.4 KiB
TypeScript
164 lines
3.4 KiB
TypeScript
/**
|
|
* Database Constants - Schema and table names for ERP-Suite
|
|
*
|
|
* @module @erp-suite/shared/constants
|
|
*/
|
|
|
|
/**
|
|
* Database schema names
|
|
*/
|
|
export const DB_SCHEMAS = {
|
|
AUTH: 'auth',
|
|
ERP: 'erp',
|
|
INVENTORY: 'inventory',
|
|
SALES: 'sales',
|
|
PURCHASE: 'purchase',
|
|
ACCOUNTING: 'accounting',
|
|
HR: 'hr',
|
|
CRM: 'crm',
|
|
PUBLIC: 'public',
|
|
} as const;
|
|
|
|
/**
|
|
* Auth schema tables
|
|
*/
|
|
export const AUTH_TABLES = {
|
|
USERS: 'users',
|
|
TENANTS: 'tenants',
|
|
ROLES: 'roles',
|
|
PERMISSIONS: 'permissions',
|
|
USER_ROLES: 'user_roles',
|
|
ROLE_PERMISSIONS: 'role_permissions',
|
|
SESSIONS: 'sessions',
|
|
} as const;
|
|
|
|
/**
|
|
* ERP schema tables
|
|
*/
|
|
export const ERP_TABLES = {
|
|
PARTNERS: 'partners',
|
|
CONTACTS: 'contacts',
|
|
ADDRESSES: 'addresses',
|
|
PRODUCTS: 'products',
|
|
CATEGORIES: 'categories',
|
|
PRICE_LISTS: 'price_lists',
|
|
TAX_RATES: 'tax_rates',
|
|
} as const;
|
|
|
|
/**
|
|
* Inventory schema tables
|
|
*/
|
|
export const INVENTORY_TABLES = {
|
|
WAREHOUSES: 'warehouses',
|
|
LOCATIONS: 'locations',
|
|
STOCK_MOVES: 'stock_moves',
|
|
STOCK_LEVELS: 'stock_levels',
|
|
ADJUSTMENTS: 'adjustments',
|
|
} as const;
|
|
|
|
/**
|
|
* Sales schema tables
|
|
*/
|
|
export const SALES_TABLES = {
|
|
ORDERS: 'orders',
|
|
ORDER_LINES: 'order_lines',
|
|
INVOICES: 'invoices',
|
|
INVOICE_LINES: 'invoice_lines',
|
|
QUOTES: 'quotes',
|
|
QUOTE_LINES: 'quote_lines',
|
|
} as const;
|
|
|
|
/**
|
|
* Purchase schema tables
|
|
*/
|
|
export const PURCHASE_TABLES = {
|
|
ORDERS: 'orders',
|
|
ORDER_LINES: 'order_lines',
|
|
RECEIPTS: 'receipts',
|
|
RECEIPT_LINES: 'receipt_lines',
|
|
BILLS: 'bills',
|
|
BILL_LINES: 'bill_lines',
|
|
} as const;
|
|
|
|
/**
|
|
* Accounting schema tables
|
|
*/
|
|
export const ACCOUNTING_TABLES = {
|
|
ACCOUNTS: 'accounts',
|
|
JOURNALS: 'journals',
|
|
JOURNAL_ENTRIES: 'journal_entries',
|
|
JOURNAL_LINES: 'journal_lines',
|
|
FISCAL_YEARS: 'fiscal_years',
|
|
PERIODS: 'periods',
|
|
} as const;
|
|
|
|
/**
|
|
* HR schema tables
|
|
*/
|
|
export const HR_TABLES = {
|
|
EMPLOYEES: 'employees',
|
|
DEPARTMENTS: 'departments',
|
|
POSITIONS: 'positions',
|
|
CONTRACTS: 'contracts',
|
|
PAYROLLS: 'payrolls',
|
|
ATTENDANCES: 'attendances',
|
|
} as const;
|
|
|
|
/**
|
|
* CRM schema tables
|
|
*/
|
|
export const CRM_TABLES = {
|
|
LEADS: 'leads',
|
|
OPPORTUNITIES: 'opportunities',
|
|
ACTIVITIES: 'activities',
|
|
CAMPAIGNS: 'campaigns',
|
|
PIPELINE_STAGES: 'pipeline_stages',
|
|
} as const;
|
|
|
|
/**
|
|
* Common column names used across all tables
|
|
*/
|
|
export const COMMON_COLUMNS = {
|
|
ID: 'id',
|
|
TENANT_ID: 'tenant_id',
|
|
CREATED_AT: 'created_at',
|
|
CREATED_BY_ID: 'created_by_id',
|
|
UPDATED_AT: 'updated_at',
|
|
UPDATED_BY_ID: 'updated_by_id',
|
|
DELETED_AT: 'deleted_at',
|
|
DELETED_BY_ID: 'deleted_by_id',
|
|
} as const;
|
|
|
|
/**
|
|
* Status constants
|
|
*/
|
|
export const STATUS = {
|
|
ACTIVE: 'active',
|
|
INACTIVE: 'inactive',
|
|
SUSPENDED: 'suspended',
|
|
PENDING: 'pending',
|
|
APPROVED: 'approved',
|
|
REJECTED: 'rejected',
|
|
DRAFT: 'draft',
|
|
CONFIRMED: 'confirmed',
|
|
CANCELLED: 'cancelled',
|
|
DONE: 'done',
|
|
} as const;
|
|
|
|
/**
|
|
* Helper function to build fully qualified table name
|
|
*
|
|
* @param schema - Schema name
|
|
* @param table - Table name
|
|
* @returns Fully qualified table name
|
|
*
|
|
* @example
|
|
* ```typescript
|
|
* const tableName = getFullTableName(DB_SCHEMAS.AUTH, AUTH_TABLES.USERS);
|
|
* // Returns: 'auth.users'
|
|
* ```
|
|
*/
|
|
export function getFullTableName(schema: string, table: string): string {
|
|
return `${schema}.${table}`;
|
|
}
|