package at.procon.eventhub.esperpoc.service;

import java.time.OffsetDateTime;
import java.util.UUID;

public final class EsperRawDriverActivityPoint {
    private final UUID eventId;
    private final OffsetDateTime occurredAt;
    private final String sourceRowId;
    private final String externalSourceEventId;
    private final UUID driverEntityId;
    private final UUID vehicleId;
    private final UUID vehicleRegistrationId;
    private final String eventType;
    private final String lifecycle;
    private final String cardSlot;
    private final String cardStatus;
    private final String drivingStatus;
    private final String sourceKind;

    public EsperRawDriverActivityPoint(
            UUID eventId,
            OffsetDateTime occurredAt,
            String sourceRowId,
            String externalSourceEventId,
            UUID driverEntityId,
            UUID vehicleId,
            UUID vehicleRegistrationId,
            String eventType,
            String lifecycle,
            String cardSlot,
            String cardStatus,
            String drivingStatus,
            String sourceKind
    ) {
        this.eventId = eventId;
        this.occurredAt = occurredAt;
        this.sourceRowId = sourceRowId;
        this.externalSourceEventId = externalSourceEventId;
        this.driverEntityId = driverEntityId;
        this.vehicleId = vehicleId;
        this.vehicleRegistrationId = vehicleRegistrationId;
        this.eventType = eventType;
        this.lifecycle = lifecycle;
        this.cardSlot = cardSlot;
        this.cardStatus = cardStatus;
        this.drivingStatus = drivingStatus;
        this.sourceKind = sourceKind;
    }

    public UUID getEventId() {
        return eventId;
    }

    public OffsetDateTime getOccurredAt() {
        return occurredAt;
    }

    public String getSourceRowId() {
        return sourceRowId;
    }

    public String getExternalSourceEventId() {
        return externalSourceEventId;
    }

    public UUID getDriverEntityId() {
        return driverEntityId;
    }

    public UUID getVehicleId() {
        return vehicleId;
    }

    public UUID getVehicleRegistrationId() {
        return vehicleRegistrationId;
    }

    public String getEventType() {
        return eventType;
    }

    public String getLifecycle() {
        return lifecycle;
    }

    public String getCardSlot() {
        return cardSlot;
    }

    public String getCardStatus() {
        return cardStatus;
    }

    public String getDrivingStatus() {
        return drivingStatus;
    }

    public String getSourceKind() {
        return sourceKind;
    }
}
