Add analytics data foundation

This commit is contained in:
2026-05-25 02:04:16 -04:00
parent 5470b0df38
commit c7438f0ed8
23 changed files with 2167 additions and 94 deletions

View File

@@ -4,16 +4,16 @@ import "time"
// RawPayload stores a fetched source payload with provenance metadata.
type RawPayload struct {
ID int64
Source string
Endpoint string
RequestKey string
MeetingKey *int
SessionKey *int
Payload string
PayloadHash string
FetchedAt time.Time
ProvenanceJSON string
ID int64
Source string
Endpoint string
RequestKey string
MeetingKey *int
SessionKey *int
Payload string
PayloadHash string
FetchedAt time.Time
ProvenanceJSON string
}
// IngestionRun tracks a scoped ingestion attempt.
@@ -104,3 +104,79 @@ type StartingGridEntry struct {
Position int
LapDuration float64
}
// Stint is a tyre stint for a driver in a session.
type Stint struct {
SessionKey int
DriverNumber int
MeetingKey int
StintNumber int
Compound string
LapStart int
LapEnd int
TyreAgeAtStart int
}
// PitStop is a pit stop event for a driver in a session.
type PitStop struct {
SessionKey int
DriverNumber int
MeetingKey int
LapNumber int
Date string
PitDuration float64
LaneDuration float64
StopDuration float64
}
// PositionSample is a position update for a driver in a session.
type PositionSample struct {
SessionKey int
DriverNumber int
MeetingKey int
Date string
Position int
}
// RaceControlMessage is a race control message for a session.
type RaceControlMessage struct {
SessionKey int
MeetingKey int
Date string
Category string
Flag string
Message string
Scope string
DriverNumber *int
LapNumber *int
Sector *int
QualifyingPhase *int
}
// WeatherSample is a weather reading for a session.
type WeatherSample struct {
SessionKey int
MeetingKey int
Date string
AirTemperature float64
TrackTemperature float64
Humidity float64
Pressure float64
Rainfall int
WindDirection int
WindSpeed float64
}
// Lap is a completed lap for a driver in a session.
type Lap struct {
SessionKey int
DriverNumber int
MeetingKey int
LapNumber int
DateStart string
LapDuration float64
IsPitOutLap bool
DurationSector1 float64
DurationSector2 float64
DurationSector3 float64
}