// Code generated by protoc-gen-ts_proto. DO NOT EDIT. // versions: // protoc-gen-ts_proto v2.11.4 // protoc v7.34.0 // source: crm_manager.proto /* eslint-disable */ import { GrpcMethod, GrpcStreamMethod } from "@nestjs/microservices"; import { Observable } from "rxjs"; export const protobufPackage = "crm_manager"; export enum CrmManagerRecordStatus { CRM_MANAGER_RECORD_STATUS_UNSPECIFIED = 0, CRM_MANAGER_RECORD_STATUS_ACTIVE = 1, CRM_MANAGER_RECORD_STATUS_DISABLED = 2, UNRECOGNIZED = -1, } export interface SectionPermission { section: string; view: boolean; edit: boolean; } export interface ManagerRecord { id: string; email: string; username: string; firstName: string; lastName: string; displayName: string; avatarUrl: string; status: CrmManagerRecordStatus; createdAtUnixMs: number; roles: string[]; permissions: string[]; isSuperAdmin: boolean; sectionPermissions: SectionPermission[]; officeIds: string[]; fullName: string; isActive: boolean; updatedAtUnixMs: number; role: string; permissionsVersion: number; canCrossOffice: boolean; telegramUsername: string; telegramId: string; isTelegramActivated: boolean; notifyAllExchanges: boolean; notifyAllPayments: boolean; notifyAllPayouts: boolean; } export interface RoleRecord { id: string; name: string; isSystem: boolean; permissions: string[]; } export interface ListManagersRequest { page: number; limit: number; search: string; isActive?: boolean | undefined; } export interface ListManagersResponse { managers: ManagerRecord[]; page: number; limit: number; totalCount: number; pages: number; } export interface GetManagersReportRequest { startDate: string; endDate: string; } export interface ManagersReportRow { managerId: string; managerName: string; allExchanges: number; completedExchanges: number; avgCheck: number; totalAmount: number; avgProfitPercent: number; profit: number; } export interface GetManagersReportResponse { results: ManagersReportRow[]; } export interface BatchGetManagersByIdsRequest { ids: string[]; } export interface BatchGetManagersByIdsResponseRecord { id: string; email: string; username: string; firstName: string; lastName: string; displayName: string; avatarUrl: string; status: CrmManagerRecordStatus; createdAtUnixMs: number; updatedAtUnixMs: number; sectionPermissions: SectionPermission[]; } export interface BatchGetManagersByIdsResponse { managers: BatchGetManagersByIdsResponseRecord[]; } export interface GetManagerRequest { managerId: string; } export interface GetManagerResponse { exist: boolean; manager?: ManagerRecord | undefined; } export interface CreateManagerRequest { email: string; username: string; firstName: string; lastName: string; displayName: string; avatarUrl: string; status: CrmManagerRecordStatus; roleNames: string[]; sectionPermissions: SectionPermission[]; officeIds: string[]; password: string; fullName: string; canCrossOffice: boolean; customPermissions: string[]; telegramUsername: string; notifyAllExchanges: boolean; notifyAllPayments: boolean; notifyAllPayouts: boolean; } export interface CreateManagerResponse { manager: ManagerRecord | undefined; otpSecret: string; otpAuthUri: string; } export interface UpdateManagerRequest { managerId: string; email: string; username: string; firstName: string; lastName: string; displayName: string; avatarUrl: string; status: CrmManagerRecordStatus; replaceRoles: boolean; roleNames: string[]; sectionPermissions: SectionPermission[]; replaceSectionPermissions: boolean; replaceOfficeIds: boolean; officeIds: string[]; password: string; fullName: string; canCrossOffice?: boolean | undefined; replaceCustomPermissions: boolean; customPermissions: string[]; telegramUsername: string; notifyAllExchanges?: boolean | undefined; notifyAllPayments?: boolean | undefined; notifyAllPayouts?: boolean | undefined; } export interface UpdateManagerResponse { manager: ManagerRecord | undefined; } export interface DeleteManagerRequest { managerId: string; actorManagerId: string; } export interface DeleteManagerResponse { success: boolean; } export interface ListRolesRequest { } export interface ListRolesResponse { roles: RoleRecord[]; } export interface OfficeRecord { id: string; code: string; name: string; address: string; city: string; country: string; isActive: boolean; createdAtUnixMs: number; updatedAtUnixMs: number; } export interface ListOfficesRequest { page: number; limit: number; search: string; includeInactive: boolean; } export interface ListOfficesResponse { offices: OfficeRecord[]; page: number; limit: number; totalCount: number; pages: number; } export interface CreateOfficeRequest { code: string; name: string; address: string; city: string; country: string; } export interface CreateOfficeResponse { office: OfficeRecord | undefined; } export interface UpdateOfficeRequest { officeId: string; code: string; name: string; address: string; city: string; country: string; isActive?: boolean | undefined; } export interface UpdateOfficeResponse { office: OfficeRecord | undefined; } export interface DeactivateOfficeRequest { officeId: string; } export interface DeactivateOfficeResponse { success: boolean; } export interface SearchManagerRequest { search: string; /** По умолчанию 50, максимум 50. */ limit: number; } export interface SearchManagerItem { id: string; username: string; email: string; } export interface SearchManagerResponse { items: SearchManagerItem[]; } export interface PrealoadManagerForSearchRequest { managerId: string; } export interface PrealoadManagerForSearchResponse { item?: SearchManagerItem | undefined; } export interface GetNotificationRecipientsRequest { eventType: string; assignedManagerId: string; actorManagerId: string; } export interface NotificationRecipient { managerId: string; email: string; telegramId: string; telegramUsername: string; isTelegramActivated: boolean; reason: string; } export interface GetNotificationRecipientsResponse { recipients: NotificationRecipient[]; } export interface GetManagerForServiceRequest { managerId: string; } export interface GetManagerForServiceResponseRecord { id: string; email: string; username: string; firstName: string; lastName: string; displayName: string; avatarUrl: string; status: CrmManagerRecordStatus; } export interface GetManagerForServiceResponse { exist: boolean; record?: GetManagerForServiceResponseRecord | undefined; } export interface JsonResponse { statusCode: number; json: string; } export const CRM_MANAGER_PACKAGE_NAME = "crm_manager"; export interface CrmManagerAdminServiceClient { listManagers(request: ListManagersRequest): Observable; getManagersReport(request: GetManagersReportRequest): Observable; batchGetManagersByIds(request: BatchGetManagersByIdsRequest): Observable; getManager(request: GetManagerRequest): Observable; getNotificationRecipients(request: GetNotificationRecipientsRequest): Observable; createManager(request: CreateManagerRequest): Observable; updateManager(request: UpdateManagerRequest): Observable; deleteManager(request: DeleteManagerRequest): Observable; listRoles(request: ListRolesRequest): Observable; listOffices(request: ListOfficesRequest): Observable; createOffice(request: CreateOfficeRequest): Observable; updateOffice(request: UpdateOfficeRequest): Observable; deactivateOffice(request: DeactivateOfficeRequest): Observable; /** Поиск менеджеров по username/email: возвращает до limit совпадений. */ searchManager(request: SearchManagerRequest): Observable; /** Прелоад выбранного менеджера по id для поиска: возвращает один элемент. */ prealoadManagerForSearch(request: PrealoadManagerForSearchRequest): Observable; } export interface CrmManagerAdminServiceController { listManagers( request: ListManagersRequest, ): Promise | Observable | ListManagersResponse; getManagersReport( request: GetManagersReportRequest, ): Promise | Observable | GetManagersReportResponse; batchGetManagersByIds( request: BatchGetManagersByIdsRequest, ): Promise | Observable | BatchGetManagersByIdsResponse; getManager( request: GetManagerRequest, ): Promise | Observable | GetManagerResponse; getNotificationRecipients( request: GetNotificationRecipientsRequest, ): | Promise | Observable | GetNotificationRecipientsResponse; createManager( request: CreateManagerRequest, ): Promise | Observable | CreateManagerResponse; updateManager( request: UpdateManagerRequest, ): Promise | Observable | UpdateManagerResponse; deleteManager( request: DeleteManagerRequest, ): Promise | Observable | DeleteManagerResponse; listRoles(request: ListRolesRequest): Promise | Observable | ListRolesResponse; listOffices( request: ListOfficesRequest, ): Promise | Observable | ListOfficesResponse; createOffice( request: CreateOfficeRequest, ): Promise | Observable | CreateOfficeResponse; updateOffice( request: UpdateOfficeRequest, ): Promise | Observable | UpdateOfficeResponse; deactivateOffice( request: DeactivateOfficeRequest, ): Promise | Observable | DeactivateOfficeResponse; /** Поиск менеджеров по username/email: возвращает до limit совпадений. */ searchManager( request: SearchManagerRequest, ): Promise | Observable | SearchManagerResponse; /** Прелоад выбранного менеджера по id для поиска: возвращает один элемент. */ prealoadManagerForSearch( request: PrealoadManagerForSearchRequest, ): | Promise | Observable | PrealoadManagerForSearchResponse; } export function CrmManagerAdminServiceControllerMethods() { return function (constructor: Function) { const grpcMethods: string[] = [ "listManagers", "getManagersReport", "batchGetManagersByIds", "getManager", "getNotificationRecipients", "createManager", "updateManager", "deleteManager", "listRoles", "listOffices", "createOffice", "updateOffice", "deactivateOffice", "searchManager", "prealoadManagerForSearch", ]; for (const method of grpcMethods) { const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method); GrpcMethod("CrmManagerAdminService", method)(constructor.prototype[method], method, descriptor); } const grpcStreamMethods: string[] = []; for (const method of grpcStreamMethods) { const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method); GrpcStreamMethod("CrmManagerAdminService", method)(constructor.prototype[method], method, descriptor); } }; } export const CRM_MANAGER_ADMIN_SERVICE_NAME = "CrmManagerAdminService";