save attachment from email in customer data and - or contracts
This commit is contained in:
@@ -293,6 +293,37 @@ export interface SendEmailParams {
|
||||
contractId?: number; // Vertrag dem die gesendete E-Mail zugeordnet wird
|
||||
}
|
||||
|
||||
// Anhang-Speicher-Ziele
|
||||
export interface AttachmentTargetSlot {
|
||||
key: string;
|
||||
label: string;
|
||||
field: string;
|
||||
hasDocument: boolean;
|
||||
currentPath?: string;
|
||||
}
|
||||
|
||||
export interface AttachmentEntityWithSlots {
|
||||
id: number;
|
||||
label: string;
|
||||
slots: AttachmentTargetSlot[];
|
||||
}
|
||||
|
||||
export interface AttachmentTargetsResponse {
|
||||
customer: {
|
||||
id: number;
|
||||
name: string;
|
||||
type: 'PRIVATE' | 'BUSINESS';
|
||||
slots: AttachmentTargetSlot[];
|
||||
};
|
||||
identityDocuments: AttachmentEntityWithSlots[];
|
||||
bankCards: AttachmentEntityWithSlots[];
|
||||
contract?: {
|
||||
id: number;
|
||||
contractNumber: string;
|
||||
slots: AttachmentTargetSlot[];
|
||||
};
|
||||
}
|
||||
|
||||
export const stressfreiEmailApi = {
|
||||
getByCustomer: async (customerId: number, includeInactive = false) => {
|
||||
const res = await api.get<ApiResponse<StressfreiEmail[]>>(`/customers/${customerId}/stressfrei-emails`, { params: { includeInactive } });
|
||||
@@ -460,6 +491,21 @@ export const cachedEmailApi = {
|
||||
const res = await api.delete<ApiResponse<void>>(`/emails/${emailId}/permanent`);
|
||||
return res.data;
|
||||
},
|
||||
// ==================== ANHANG-SPEICHERUNG ====================
|
||||
// Verfügbare Dokumenten-Ziele für Anhänge abrufen
|
||||
getAttachmentTargets: async (emailId: number) => {
|
||||
const res = await api.get<ApiResponse<AttachmentTargetsResponse>>(`/emails/${emailId}/attachment-targets`);
|
||||
return res.data;
|
||||
},
|
||||
// Anhang in Dokumentenfeld speichern
|
||||
saveAttachmentTo: async (emailId: number, filename: string, params: { entityType: string; entityId?: number; targetKey: string }) => {
|
||||
const encodedFilename = encodeURIComponent(filename);
|
||||
const res = await api.post<ApiResponse<{ path: string; filename: string; originalName: string; size: number }>>(
|
||||
`/emails/${emailId}/attachments/${encodedFilename}/save-to`,
|
||||
params
|
||||
);
|
||||
return res.data;
|
||||
},
|
||||
};
|
||||
|
||||
// Contracts
|
||||
|
||||
Reference in New Issue
Block a user