export interface ResponseDataProvider {
  error: boolean,
  msg: string,
  response: Array<ProviderData>
}

export interface ProviderData {
  NUMERO_PROVEEDOR: string;
  RAZON_SOCIAL: string;
  USUARIO_PROVEEDOR: string;
  CORREO: string;
  LADA1: string;
  TELEFONO1: number;
  LADA2: string;
  TELEFONO2: number;
  RFC: string;
  TAXID: string;
  GIRO_EMPRESA: string;
  TIPO_EMPRESA: string;
  SITIO_WEB: string;
  ESTADO: string;
}

export interface ResponseDataProviderInformation {
  error: boolean,
  msg: string,
  response: Array<ProviderInformation>
}
export interface ProviderInformation {
  NUMERO_PROVEEDOR: string;
  RAZON_SOCIAL: string;
  NOMBRE: string;
  PRIMER_APELLIDO: string;
  SEGUNDO_APELLIDO: string;
  CORREO: string;
  LADA1: string;
  TELEFONO1: string;
  LADA2: string;
  TELEFONO2: string;
  RFC: string;
  TAXID: string;
  GIRO_EMPRESA: string;
  TIPO_EMPRESA: string;
  SITIO_WEB: string;
  METODO_PAGO: string;
}

export interface InformationData {
  RAZON_SOCIAL: string;
  CORREO: string;
  NOMBRE: string;
  PRIMER_APELLIDO: string;
  SEGUNDO_APELLIDO: string;
  LADA1: string;
  TELEFONO1: number;
  LADA2: string;
  TELEFONO2: number;
  GIRO_EMPRESARIAL: string;
  TIPO: string;
  RFC: string;
  TAXID: string;
  SITIOWEB: string;
}

export interface ReferenceData {
  NUMERO_REFERENCIA?: string | number | null;
  EMPRESA_REF: string;
  CORREO_REF: string;
  TELEFONO_REF: string;
  RFC_REF: string;
  DIRECCION_REF: string;
  ESTADO_REF: string;
}

export interface ContactData {
  ID_CONTACTO: number | string;
  NOMBRE_CONTACTO: string;
  TIPO_CONTACTO: string;
  CALLE: string;
  NUMERO_EXTERIOR: string;
  NUMERO_INTERIOR: string;
  CODIGO_POSTAL: string;
  MUNICIPIO: string;
  ENTIDAD: string;
  PAIS: string;
  TELEFONO_PRINCIPAL: number | string;
  TELEFONO_SECUNDARIO: number | string;
  CORREO1: string;
  CORREO2: string;
  OBSERVACIONES: string;
  ESTADO_CON:string;
}

export interface ConditionData {
  ID_CONDICION_COD?: string | number;
  TIPO_CONDICION_COD: string;
  INFORMACION_COD: string;
  ESTADO_COD: string;
}

export interface CatalogData {
  ID_CATALOG_CAT?: number | string;
  CATALAGO_CAT: string;
  DESCRIPCION_CAT: string;
  URL_CATALAGO_CAT: string;
  ESTADO_CAT: string;
}

export interface PaymentData {
  name: string;
  completed: boolean;
  subtasks?: PaymentData[];
}

export interface RevisionData {
  NO: number;
  TYPE_REV: string;
  FORMULARIO_REV: string;
  MENSAJE_REV: string;
}

export interface SaveData {
  INFORMATION_PERSONAL: InformationData,
  REFERENCES: Array<ReferenceData>;
  CONTACTS: Array<ContactData>;
  CONDITIONS: Array<ConditionData>;
  PAYMENT_MEDIA: Array<PaymentData>;
  CATALOGS: Array<CatalogData>;
}

export interface ProviderSave {
  USER: string;
  OBJ_DATA: SaveData;
  FERE: string;
}

export interface InformationForm {
  NUMERO_PROVEEDOR?: string;
  RAZON_SOCIAL: string;
  CORREO: string;
  NOMBRE: string;
  PRIMER_APELLIDO: string;
  SEGUNDO_APELLIDO: string;
  LADA1: string;
  TELEFONO1: number;
  LADA2: string;
  TELEFONO2: number;
  GIRO_EMPRESA: string;
  TIPO_EMPRESA: string;
  RFC: string;
  TAXID: string;
  SITIO_WEB: string;
  ESTADO: string;
  REFERENCIAS?: Array<ReferenceForm>;
  CONTACTOS?: Array<ContactForm>;
  CONDICIONES?: Array<ConditionForm>;
  METODOS_PAGO?: Array<PaymentData>;
  CATALAGOS?: Array<CatalogForm>;
}

export interface ReferenceForm {
  NUMERO_REFERENCIA?: string | number | null;
  EMPRESA: string;
  CORREO: string;
  TELEFONO: string;
  RFC: string;
  DIRECCION: string;
  ESTADO: string;
}

export interface ContactForm {
  NUMERO_CONTACTO?: string | null;
  NOMBRE_CONTACTO: string;
  TIPO_CONTACTO: string;
  CALLE: string;
  NUMERO_EXTERIOR: string;
  NUMERO_INTERIOR: string;
  CODIGO_POSTAL: string;
  MUNICIPIO: string;
  ENTIDAD: string;
  PAIS: string;
  TELEFONO1: string;
  TELEFONO2: string;
  CORREO1: string;
  CORREO2: string;
  OBSERVACIONES: string;
  ESTADO: string;
}

export interface ConditionForm {
  NUMERO_CONDICION?: string | null;
  TIPO_CONDICION: string;
  INFORMACION: string;
  ESTADO: string;
}

export interface CatalogForm {
  NUMERO_CATALAGO?: string | number;
  CATALAGO: string;
  DESCRIPCION: string;
  URL_CATALAGO: string;
  ESTADO: string;
}


export interface RegisterForm {
  INFORMACION: InformationForm;
  REFERENCIAS: Array<ReferenceForm>;
  CONTACTOS: Array<ContactForm>;
  CONDICIONES: Array<ConditionForm>;
  METODOS_PAGO: Array<PaymentData>;
  CATALAGOS: Array<CatalogForm>;
}

export interface TypeForm {
  type:string;
  element?: InformationForm | null;
}

export interface ResponseFormProvider {
  error: boolean,
  msg: string,
  response: Array<any>
}

export interface RegisterProvider{
  user: string;
  line: string;
  obj_response: string;
}


export interface ReferencesData {
  ID_REFERENCE:string;
  EMPRESA:string;
  CORREO:string;
  TELEFONO:string;
  RFC:string;
  DIRECCION:string;
  ESTADO:string;
  USUARIO_REGISTRA:string;
  FECHA_REGISTRA:string;
  USUARIO_MODIFICA:string;
  FECHA_MODIFICA:string;
}

export interface ContactsData {
  NUMERO_CONTACTO: string;
  NOMBRE_CONTACTO: string;
  TIPO_CONTACTO: string;
  CALLE: string;
  NUMERO_EXTERIOR: string;
  NUMERO_INTERIOR: string;
  CODIGO_POSTAL: string;
  MUNICIPIO: string;
  ENTIDAD: string;
  PAIS: string;
  TELEFONO1: string;
  TELEFONO2: string;
  CORREO1: string;
  CORREO2: string;
  OBSERVACIONES: string;
  ESTADO: string;
  USUARIO_REGISTRA: string;
  FECHA_REGISTRA: string;
  USUARIO_MODIFICA: string;
  FECHA_MODIFICA: string;
}

export interface ConditionsData {
  NUMERO_CONDICION: string;
  TIPO_CONDICION: string;
  INFORMACION: string;
  ESTADO: string;
  USUARIO_REGISTRA: string;
  FECHA_REGISTRA: string;
  USUARIO_MODIFICA: string;
  FECHA_MODIFICA: string;
}

export interface CatalogsData {
  NUMERO_CATALAGO: string;
  CATALAGO: string;
  DESCRIPCION: string;
  URL_CATALAGO: string;
  ESTADO: string;
  USUARIO_REGISTRA: string;
  FECHA_REGISTRA: string;
  USUARIO_MODIFICA: string;
  FECHA_MODIFICA: string;
}

export interface InformationsData {
  NUMERO_PROVEEDOR: string;
  RAZON_SOCIAL: string;
  NOMBRE: string;
  PRIMER_APELLIDO: string;
  SEGUNDO_APELLIDO: string;
  CORREO: string;
  LADA1: string;
  TELEFONO1: string;
  LADA2: string;
  TELEFONO2: string;
  RFC: string;
  TAXID: string;
  GIRO_EMPRESA: string;
  TIPO_EMPRESA: string;
  SITIO_WEB: string;
  METODO_PAGO: string;
  ESTADO: string;
  USUARIO_REGISTRA: string;
  FECHA_REGISTRA: string;
  USUARIO_MODIFICA: string;
  FECHA_MODIFICA: string;
}

export interface DeleteProvider{
  line: string;
  user: string;
  numero_proveedor: string;
}


