mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-15 12:20:31 +00:00
add server to monorepo.
This commit is contained in:
55
packages/server/src/interfaces/Tenancy.ts
Normal file
55
packages/server/src/interfaces/Tenancy.ts
Normal file
@@ -0,0 +1,55 @@
|
||||
import { Knex } from 'knex';
|
||||
|
||||
export interface ITenantMetadata {
|
||||
currencyCode: string;
|
||||
}
|
||||
export interface ITenant {
|
||||
id: number,
|
||||
organizationId: string,
|
||||
|
||||
initializedAt: Date|null,
|
||||
seededAt: Date|null,
|
||||
builtAt: Date|null,
|
||||
createdAt: Date|null,
|
||||
|
||||
metadata?: ITenantMetadata
|
||||
}
|
||||
|
||||
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