import * as IShared from '../../../shared/interface'; import { Payment, DocumentHeader } from '../../../shared/entities/stock'; import * as IUser from '../../user/users/interface'; import * as IObservation from '../../integration/observation/interfaces'; export type Entity = Payment; export declare const Route = "payment"; export declare const UpperName = "Payment"; export declare const LowerName: string; export type IEntityExtended = Entity; export type IFindByIdResponse = Omit; export type IFindByOwnerIdResponse = Omit; export type IFindRequest = Record; export type IFindResponse = Omit; export interface IFindPaginatedRequest extends IFindRequest, IShared.IPaginationRequest { } export type IFindWithPaginationResponse = IShared.IPaginationResponse>; export interface ICreateForThisDocumentHeaderRequest { date: Date; debit: number; credit: number; payment_method_id?: string | null; payment_method?: string | null; notes: string | null; } export interface ICreateRequest extends ICreateForThisDocumentHeaderRequest { document_header_id: string; } export interface IUnpaidPurchasesRequest { provider_id: string; client_id: string | null; } export interface IUnpaidByDatePurchasesRequest { due_date: Date; } export type IPaymentOrigin = 'CC Fornecedor' | 'CC Cliente' | 'CC Fornecedor (Descontinuado)' | 'CC Cliente (Descontinuado)'; export interface IUnpaidPurchasesResponse extends Pick { document_header: Pick; origin: IPaymentOrigin; document_type_code: string | null; document_name: string; user?: { user_name: string; provider_id: string; client_id?: string | null; }; maturity_days: number; observations: IObservation.IFindByOwnerResponse[]; } export interface IRepository { findById(selector: IShared.IFindByIdRequest): Promise; findByOwnerId(params: IShared.IFindByOwnerIdRequest): Promise; find(selector: IFindRequest): Promise; findPaginated(selector: IFindPaginatedRequest): Promise; findSettledMaterialEntrance(params: IUnpaidPurchasesRequest): Promise; findSettledMaterialEntranceByDate(params: IUnpaidByDatePurchasesRequest): Promise; findSettledMaterialEntranceProviders(): Promise; } export type IController = IShared.IEntityWithUserToken;