first commit
This commit is contained in:
@@ -0,0 +1,142 @@
|
||||
import {
|
||||
TextObjectFilterParams,
|
||||
TextObjectFilterResult,
|
||||
} from "../../Models/TextObjectFilter.model";
|
||||
import { IClientDocument } from "./Clients.Adapter.Mongoose";
|
||||
|
||||
export type FindClientsParams = {
|
||||
_id?: string;
|
||||
companyId?: string;
|
||||
email?: string;
|
||||
firstName?: string;
|
||||
lastName?: string;
|
||||
userId?: string;
|
||||
status?: boolean;
|
||||
};
|
||||
|
||||
export type FindClientByIdParams = {
|
||||
id: string;
|
||||
companyId: string;
|
||||
sessionUser: string;
|
||||
};
|
||||
|
||||
export type PaginateClientsParams = FindClientsParams & {
|
||||
page: number;
|
||||
limit: number;
|
||||
};
|
||||
|
||||
export type PaginateClientsResults = {
|
||||
data: IClient[];
|
||||
page: number;
|
||||
pages: number;
|
||||
};
|
||||
|
||||
export type PaginateOrganizationClientsParams = FindClientsParams & {
|
||||
page: number;
|
||||
limit: number;
|
||||
};
|
||||
|
||||
export type OrganizationClientsResults = {
|
||||
data: OrganizationClientView[];
|
||||
page: number;
|
||||
pages: number;
|
||||
};
|
||||
|
||||
export type CreateClientByUserParams = {
|
||||
companyId: string;
|
||||
userId: string;
|
||||
sessionUser: string;
|
||||
};
|
||||
|
||||
export type CreateCustomClientParams = {
|
||||
companyId: string;
|
||||
sessionUser: string;
|
||||
firstName?: string;
|
||||
lastName?: string;
|
||||
phoneNumber?: string;
|
||||
phoneCountryCode?: string;
|
||||
phoneAreaCode?: string;
|
||||
email?: string;
|
||||
banned?: boolean;
|
||||
};
|
||||
|
||||
export type UpdateClientParams = CreateCustomClientParams & {
|
||||
id: string;
|
||||
};
|
||||
|
||||
export type DelteClientsByCompanyParams = {
|
||||
companyId: string;
|
||||
};
|
||||
|
||||
export type DeleteClientParams = {
|
||||
clientId: string;
|
||||
checkCashOnAccount?: boolean;
|
||||
sessionUser: string;
|
||||
};
|
||||
|
||||
export interface IClient {
|
||||
id?: string;
|
||||
companyId: string;
|
||||
userId: string;
|
||||
fromClientId: string;
|
||||
status: boolean;
|
||||
firstName: string;
|
||||
lastName: string;
|
||||
phoneNumber: string;
|
||||
phoneCountryCode: string;
|
||||
phoneAreaCode: string;
|
||||
email: string;
|
||||
banned?: boolean;
|
||||
}
|
||||
|
||||
export interface OrganizationClientView {
|
||||
id: string;
|
||||
firstName: string;
|
||||
lastName: string;
|
||||
fullName: string;
|
||||
phoneNumber: string;
|
||||
phoneCountryCode: string;
|
||||
phoneAreaCode: string;
|
||||
email: string;
|
||||
avatar: string;
|
||||
banned?: boolean;
|
||||
}
|
||||
|
||||
export type ClientMergeParams = {
|
||||
fromClientId: string;
|
||||
toClientId: string;
|
||||
sessionUser: string;
|
||||
};
|
||||
|
||||
export interface IClientsAdapter {
|
||||
create(
|
||||
data: CreateClientByUserParams | CreateCustomClientParams
|
||||
): Promise<IClient>;
|
||||
delete(id: string): Promise<void>;
|
||||
find(filters: FindClientsParams): Promise<IClient[]>;
|
||||
findOne(filters: FindClientsParams): Promise<IClientDocument | null>;
|
||||
paginate(filters: PaginateClientsParams): Promise<PaginateClientsResults>;
|
||||
}
|
||||
|
||||
export interface IClientsManager {
|
||||
clients: IClientsAdapter;
|
||||
createClientByUser(
|
||||
data: CreateClientByUserParams
|
||||
): Promise<IClientDocument>;
|
||||
createCustomClient(
|
||||
data: CreateCustomClientParams
|
||||
): Promise<IClientDocument>;
|
||||
updateClient(data: UpdateClientParams): Promise<void>;
|
||||
findOrganizationClients(
|
||||
filters: PaginateOrganizationClientsParams
|
||||
): Promise<OrganizationClientsResults>;
|
||||
textObjectFilter(
|
||||
data: TextObjectFilterParams
|
||||
): Promise<TextObjectFilterResult[]>;
|
||||
findClientById(data: FindClientByIdParams): Promise<OrganizationClientView>;
|
||||
getClientWapNumber(data: IClient): Promise<string>;
|
||||
getClientFullName(data: IClient): string;
|
||||
clientMerge(data: ClientMergeParams): Promise<void>;
|
||||
deleteClientsByCompany(data: DelteClientsByCompanyParams): Promise<void>;
|
||||
deleteClient(data: DeleteClientParams): Promise<void>;
|
||||
}
|
||||
Reference in New Issue
Block a user