File size: 1,390 Bytes
5fa8558
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
-- =====================================================
-- AUDIT : Traçabilité des appels API / prédictions
-- =====================================================

CREATE SCHEMA IF NOT EXISTS audit;

-- 1) Requêtes (inputs envoyés au modèle)
DROP TABLE IF EXISTS audit.prediction_requests;

CREATE TABLE audit.prediction_requests (
    request_id    BIGSERIAL PRIMARY KEY,
    created_at    TIMESTAMPTZ NOT NULL DEFAULT NOW(),
    id_employee   INT NULL,
    payload       JSONB NOT NULL
);

-- 2) Réponses (outputs générés par le modèle)
DROP TABLE IF EXISTS audit.prediction_responses;

CREATE TABLE audit.prediction_responses (
    response_id    BIGSERIAL PRIMARY KEY,
    created_at     TIMESTAMPTZ NOT NULL DEFAULT NOW(),

    request_id     BIGINT NOT NULL
                 REFERENCES audit.prediction_requests(request_id)
                 ON DELETE CASCADE,

    proba          DOUBLE PRECISION NOT NULL,
    prediction     INT NOT NULL,
    threshold      DOUBLE PRECISION NOT NULL,

    status         TEXT NOT NULL DEFAULT 'OK',
    error_message  TEXT NULL
);

-- Index utiles
CREATE INDEX IF NOT EXISTS idx_pred_req_employee
  ON audit.prediction_requests(id_employee);

CREATE INDEX IF NOT EXISTS idx_pred_req_created_at
  ON audit.prediction_requests(created_at);

CREATE INDEX IF NOT EXISTS idx_pred_res_request_id
  ON audit.prediction_responses(request_id);