#ifndef MarkerView_h
#define MarkerView_h

#import <React/RCTViewComponentView.h>
#import <UIKit/UIKit.h>

@class DgisMapView;
@class DGisMarkerViewBridge;

NS_ASSUME_NONNULL_BEGIN

@interface MarkerView : RCTViewComponentView

/// Swift bridge for this marker (position, icon, opacity, etc.). Nil until marker is created.
@property (nonatomic, strong, nullable) DGisMarkerViewBridge *markerBridge;
/// Opaque marker ID (for tap callback matching). Nil until marker is created.
@property (nonatomic, copy, nullable) NSString *markerId;
/// Parent map view reference (set when mounted as child of DgisMapView).
@property (nonatomic, weak, nullable) DgisMapView *dgisMapView;

// Point coordinates
@property (nonatomic, assign) double latitude;
@property (nonatomic, assign) double longitude;

// Icon properties
@property (nonatomic, copy, nullable) NSString *iconSource;
@property (nonatomic, assign) double iconOpacity;
@property (nonatomic, assign) double iconWidth;

// Anchor point (0-1 for x and y)
@property (nonatomic, assign) double anchorX;
@property (nonatomic, assign) double anchorY;

// Methods
- (void)initializeMarker;
- (void)updatePosition;
- (void)animatedMoveToLatitude:(double)latitude longitude:(double)longitude duration:(double)duration;
- (void)emitPressEvent;

@end

NS_ASSUME_NONNULL_END

#endif /* MarkerView_h */
