@dbs-portal/module-tenant-management
Version:
Tenant management and multi-tenancy support module
133 lines • 4.03 kB
TypeScript
/**
* Tenant Service - Handles tenant CRUD operations and management
*/
import type { Tenant, TenantsResponse, CreateTenantRequest, UpdateTenantRequest, TenantLookupDto, TenantAnalytics, TenantConnection, TenantBackup, TenantRestoreRequest, AvailableFeature } from '../types';
export declare class TenantService {
private httpClient;
constructor(baseURL?: string);
/**
* Get all tenants with pagination and filtering
*/
getTenants(page?: number, pageSize?: number, search?: string, isActive?: boolean, sortBy?: string, sortOrder?: 'asc' | 'desc'): Promise<TenantsResponse>;
/**
* Get tenant by ID
*/
getTenant(id: string): Promise<Tenant>;
/**
* Create new tenant
*/
createTenant(tenant: CreateTenantRequest): Promise<Tenant>;
/**
* Update existing tenant
*/
updateTenant(tenant: UpdateTenantRequest): Promise<Tenant>;
/**
* Delete tenant
*/
deleteTenant(id: string): Promise<void>;
/**
* Get tenant lookup data (for dropdowns, etc.)
*/
getTenantLookup(): Promise<TenantLookupDto[]>;
/**
* Activate tenant
*/
activateTenant(id: string): Promise<void>;
/**
* Deactivate tenant
*/
deactivateTenant(id: string): Promise<void>;
/**
* Get tenant analytics
*/
getTenantAnalytics(id: string, period?: 'day' | 'week' | 'month' | 'year'): Promise<TenantAnalytics>;
/**
* Test tenant connection
*/
testTenantConnection(id: string): Promise<TenantConnection>;
/**
* Update tenant connection string
*/
updateTenantConnection(id: string, connectionString: string): Promise<void>;
/**
* Get available features
*/
getAvailableFeatures(): Promise<AvailableFeature[]>;
/**
* Update tenant features
*/
updateTenantFeatures(id: string, features: any[]): Promise<void>;
/**
* Create tenant backup
*/
createTenantBackup(id: string, name: string, description?: string, options?: {
includeData?: boolean;
includeSettings?: boolean;
includeUsers?: boolean;
}): Promise<TenantBackup>;
/**
* Get tenant backups
*/
getTenantBackups(id: string): Promise<TenantBackup[]>;
/**
* Restore tenant from backup
*/
restoreTenantFromBackup(request: TenantRestoreRequest): Promise<void>;
/**
* Delete tenant backup
*/
deleteTenantBackup(tenantId: string, backupId: string): Promise<void>;
/**
* Get tenant statistics summary
*/
getTenantStatistics(): Promise<{
totalTenants: number;
activeTenants: number;
inactiveTenants: number;
totalUsers: number;
totalStorage: number;
averageUsersPerTenant: number;
topTenantsByUsers: Array<{
tenantId: string;
name: string;
userCount: number;
}>;
topTenantsByStorage: Array<{
tenantId: string;
name: string;
storageUsed: number;
}>;
}>;
/**
* Bulk operations on tenants
*/
bulkActivateTenants(tenantIds: string[]): Promise<void>;
bulkDeactivateTenants(tenantIds: string[]): Promise<void>;
bulkDeleteTenants(tenantIds: string[]): Promise<void>;
/**
* Export tenant data
*/
exportTenantData(id: string, format?: 'json' | 'csv' | 'xlsx'): Promise<Blob>;
/**
* Import tenant data
*/
importTenantData(id: string, file: File, options?: {
overwrite?: boolean;
validateOnly?: boolean;
}): Promise<{
success: boolean;
imported: number;
skipped: number;
errors: string[];
}>;
/**
* Clone tenant
*/
cloneTenant(sourceId: string, newName: string, newDisplayName: string, options?: {
includeData?: boolean;
includeSettings?: boolean;
includeUsers?: boolean;
includeFeatures?: boolean;
}): Promise<Tenant>;
}
//# sourceMappingURL=tenant-service.d.ts.map