Carry firma_slug on job offers, supplied by the ingesting client
The blacklist company slug now lives on the offers themselves. POST /joboffers accepts firma_slug and stores it as supplied (deriving it from firma only when omitted); it is persisted on jobangebote (schema + ALTER/backfill + index) and returned in the Joboffer response. Blacklist matching prefers the client-supplied slug over one derived from firma, so the indexing client controls the identity used to block an offer. OpenAPI request/response schemas updated. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -887,6 +887,7 @@ function buildOpenApiSpec(baseUrl = '') {
|
||||
labels: { ...labelsSchema, nullable: true },
|
||||
verknuepfte_bewerbung_id: { type: 'integer', nullable: true },
|
||||
url_norm: { type: 'string', nullable: true, description: 'Normalisierte URL für die De-Duplizierung (serverseitig gesetzt)' },
|
||||
firma_slug: { type: 'string', nullable: true, description: 'Firmen-Slug für Blacklist-Abgleich; wie übergeben gespeichert, bei Fehlen aus firma abgeleitet.' },
|
||||
created_at: { type: 'string', format: 'date-time' },
|
||||
updated_at: { type: 'string', format: 'date-time' },
|
||||
},
|
||||
@@ -905,6 +906,7 @@ function buildOpenApiSpec(baseUrl = '') {
|
||||
gehalt: { type: 'string' },
|
||||
beschreibung: { type: 'string', description: 'Stellenbeschreibungstext' },
|
||||
quelle_url: { type: 'string' },
|
||||
firma_slug: { type: 'string', description: 'Optionaler Firmen-Slug für den Blacklist-Abgleich (z. B. "bosch"). Wird wie übergeben gespeichert; fehlt er, leitet der Server ihn aus firma ab.' },
|
||||
art: { type: 'string', enum: ART_OPTIONS },
|
||||
anzeige_datum: { type: 'string', format: 'date', description: 'Datum der eigentlichen Stellenanzeige (ISO YYYY-MM-DD)' },
|
||||
kontakt_email: { type: 'string', format: 'email', description: 'Kontakt-E-Mail-Adresse der Stelle' },
|
||||
|
||||
Reference in New Issue
Block a user