package com.flightticket.exception;

import lombok.Getter;

/**
 * Exception thrown for internal system errors
 * Requirements: 7.4, 10.6
 */
@Getter
public class SystemException extends RuntimeException {
    
    private final String errorCode;
    private final Object details;
    
    public SystemException(String message) {
        super(message);
        this.errorCode = "SYSTEM_ERROR";
        this.details = null;
    }
    
    public SystemException(String message, Throwable cause) {
        super(message, cause);
        this.errorCode = "SYSTEM_ERROR";
        this.details = null;
    }
    
    public SystemException(String message, String errorCode) {
        super(message);
        this.errorCode = errorCode;
        this.details = null;
    }
    
    public SystemException(String message, String errorCode, Object details) {
        super(message);
        this.errorCode = errorCode;
        this.details = details;
    }
    
    public SystemException(String message, Throwable cause, String errorCode) {
        super(message, cause);
        this.errorCode = errorCode;
        this.details = null;
    }
}
