mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-16 21:00:31 +00:00
feat: remove Webpack and depend on nodemon. feat: refactoring expenses. feat: optimize system users with caching. feat: architecture tenant optimize.
49 lines
1.1 KiB
TypeScript
49 lines
1.1 KiB
TypeScript
import { Knex } from 'knex';
|
|
|
|
export interface ITenant {
|
|
id: number,
|
|
organizationId: string,
|
|
|
|
initializedAt: Date|null,
|
|
seededAt: Date|null,
|
|
createdAt: Date|null,
|
|
}
|
|
|
|
export interface ITenantDBManager {
|
|
constructor();
|
|
|
|
databaseExists(tenant: ITenant): Promise<boolean>;
|
|
createDatabase(tenant: ITenant): Promise<void>;
|
|
|
|
migrate(tenant: ITenant): Promise<void>;
|
|
seed(tenant: ITenant): Promise<void>;
|
|
|
|
setupKnexInstance(tenant: ITenant): Knex;
|
|
getKnexInstance(tenantId: number): Knex;
|
|
}
|
|
|
|
export interface ITenantManager {
|
|
tenantDBManager: ITenantDBManager;
|
|
tenant: ITenant;
|
|
|
|
constructor(): void;
|
|
|
|
createTenant(): Promise<ITenant>;
|
|
createDatabase(tenant: ITenant): Promise<void>;
|
|
hasDatabase(tenant: ITenant): Promise<boolean>;
|
|
|
|
dropTenant(tenant: ITenant): Promise<void>;
|
|
|
|
migrateTenant(tenant: ITenant): Promise<void>;
|
|
seedTenant(tenant: ITenant): Promise<void>;
|
|
|
|
setupKnexInstance(tenant: ITenant): Knex;
|
|
getKnexInstance(tenantId: number): Knex;
|
|
}
|
|
|
|
export interface ISystemService {
|
|
cache();
|
|
repositories();
|
|
knex();
|
|
dbManager();
|
|
} |