1313 DocumentCountersOperation ,
1414 CounterOperationType ,
1515)
16+ from ravendb .documents .operations .time_series import TimeSeriesOperation
1617from ravendb .documents .session .misc import TransactionMode , ForceRevisionStrategy
18+ from ravendb .documents .time_series import TimeSeriesOperations
1719from ravendb .http .raven_command import RavenCommand
1820from ravendb .http .server_node import ServerNode
1921from ravendb .json .result import BatchCommandResult
@@ -236,13 +238,11 @@ def __init__(
236238 name : str = None ,
237239 change_vector : str = None ,
238240 command_type : CommandType = None ,
239- on_before_save_changes : Callable = None ,
240241 ):
241242 self ._key = key
242243 self ._name = name
243244 self ._change_vector = change_vector
244245 self ._command_type = command_type
245- self ._on_before_save_changes = on_before_save_changes
246246
247247 @property
248248 def key (self ) -> str :
@@ -260,11 +260,8 @@ def change_vector(self) -> str:
260260 def command_type (self ) -> CommandType :
261261 return self ._command_type
262262
263- @property
264- def on_before_save_changes (
265- self ,
266- ) -> Callable [[InMemoryDocumentSessionOperations ], None ]:
267- return self ._on_before_save_changes
263+ def on_before_save_changes (self , session : InMemoryDocumentSessionOperations ) -> None :
264+ pass
268265
269266 @abstractmethod
270267 def serialize (self , conventions : DocumentConventions ) -> dict :
@@ -635,6 +632,37 @@ def serialize(self, conventions: DocumentConventions) -> dict:
635632 return {"Id" : self ._key , "Name" : self .name , "ChangeVector" : self .change_vector , "Type" : self .command_type }
636633
637634
635+ class TimeSeriesBatchCommandData (CommandData ):
636+ def __init__ (
637+ self ,
638+ document_id : str ,
639+ name : str ,
640+ appends : Optional [List [TimeSeriesOperation .AppendOperation ]],
641+ deletes : Optional [List [TimeSeriesOperation .DeleteOperation ]],
642+ ):
643+ if not document_id :
644+ raise ValueError ("Document id cannot be None" )
645+ if not name :
646+ raise ValueError ("Name cannot be None" )
647+
648+ super (TimeSeriesBatchCommandData , self ).__init__ (document_id , name , None , CommandType .TIME_SERIES )
649+ self .time_series = TimeSeriesOperation ()
650+ self .time_series .name = name
651+
652+ if appends :
653+ for append_operation in appends :
654+ self .time_series .append (append_operation )
655+ if deletes :
656+ for delete_operation in deletes :
657+ self .time_series .delete (delete_operation )
658+
659+ def serialize (self , conventions : DocumentConventions ) -> dict :
660+ return {"Id" : self .key , "TimeSeries" : self .time_series .to_json (), "Type" : "TimeSeries" }
661+
662+ def on_before_save_changes (self , session : InMemoryDocumentSessionOperations ) -> None :
663+ pass
664+
665+
638666# ------------ OPTIONS ------------
639667
640668
0 commit comments