package com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped;

import java.time.OffsetDateTime;

import org.checkerframework.checker.units.qual.A;

import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.NonNull;
import lombok.experimental.SuperBuilder;

@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
public abstract class BaseAnnotation {

    @NonNull
    private String annotationId;
    @NonNull
    private String fileId;
    @NonNull
    private String user;
    @NonNull
    private OffsetDateTime requestDate;
    private OffsetDateTime processedDate;
    private OffsetDateTime softDeletedTime;


    public abstract boolean isLocal();


    @Deprecated(forRemoval = true)
    public boolean isApproved() {

        return true;
    }


    @Deprecated(forRemoval = true)
    public AnnotationStatus getStatus() {

        return AnnotationStatus.APPROVED;
    }


    @Deprecated(forRemoval = true)
    private final static AnnotationStatus status = AnnotationStatus.APPROVED;

}
