mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-17 21:30:31 +00:00
feat: remove path alias.
feat: remove Webpack and depend on nodemon. feat: refactoring expenses. feat: optimize system users with caching. feat: architecture tenant optimize.
This commit is contained in:
49
server/src/interfaces/Tenancy.ts
Normal file
49
server/src/interfaces/Tenancy.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
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();
|
||||
}
|
||||
Reference in New Issue
Block a user