import * as IShared from '../../../shared/interface'; import { Providers, Users, Country, ReasonForExemption, Language, ProviderType, PaymentMethods, MaturityDates, DeliveryMethods, Vehicles, Persona } from '../../../shared/entities/user'; import type { DocumentHeader } from '../../../shared/entities/stock'; export type Entity = Providers; export declare const Route = "provider"; export declare const UpperName = "Providers"; export declare const LowerName: string; interface IMainPersona extends Persona { country: Country | null; reason_for_exemption: ReasonForExemption | null; } interface IFindDetailedResponse extends Entity { user: Users; main_persona: IMainPersona; country: Country | null; language: Language | null; support_language: Language | null; provider_type: ProviderType | null; default_payment_method: PaymentMethods | null; default_maturity_date: MaturityDates | null; default_delivery_method: DeliveryMethods | null; default_vehicle: Vehicles | null; } export type IFindByIdResponse = Omit; export type IFindByOwnerIdResponse = Omit; export interface IFindByQueryRequest { number?: number[]; id?: string[]; } export interface IFindRequest { } export type IFindResponse = Omit; export type IFindPaginatedRequest = IShared.IPaginationRequest; export type IFindWithPaginationResponse = IShared.IPaginationResponse>; export type ICreateMainPersona = Pick; export interface ICreateRequest { user_id?: string; manufacturer?: boolean; inactive?: boolean; default_discount?: number; exemption_reason_id?: string | null; default_account_code?: string | null; main_persona: ICreateMainPersona; provider_type_id?: string | null; country_id?: string | null; language_id?: string | null; support_language_id?: string | null; default_payment_method_id?: string | null; default_maturity_date_id?: string | null; default_delivery_method_id?: string | null; default_vehicle_id?: string | null; personas?: ICreateMainPersona[]; } export interface IUpdateRequest { manufacturer?: boolean; inactive?: boolean; default_discount?: number; main_persona_id?: string; contact_persona_id?: string; country_id?: string; language_id?: string; support_language_id?: string | null; provider_type_id?: string; default_payment_method_id?: string; default_maturity_date_id?: string; default_delivery_method_id?: string; default_vehicle_id?: string | null; exemption_reason_id?: string | null; default_account_code?: string | null; } export interface IFindByNumberRequest { number: number; } export interface IFindByNumberResponse extends Pick { default_discount: number; } export interface IRepository { findById(selector: IShared.IFindByIdRequest): Promise; findByOwnerId(params: IShared.IFindByOwnerIdRequest): Promise; findMinified(params?: IShared.IFindMinifiedRequest): Promise; findMinifiedManufacturer(params?: IShared.IFindMinifiedRequest): Promise; findByQuery(params: IFindByQueryRequest): Promise; find(selector: IFindRequest): Promise; findPaginated(selector: IFindPaginatedRequest): Promise; create(data: ICreateRequest): Promise; update(selector: IShared.IFindByIdRequest, data: IUpdateRequest): Promise; deleteOne(selector: IShared.IFindByIdRequest): Promise; findByNumber(selector: IFindByNumberRequest): Promise; } export type IController = IShared.IEntityWithUserToken; export {};