11from dataclasses import dataclass , field
2- from datetime import date , datetime , timedelta
2+ from datetime import datetime , timedelta
33from typing import List , Optional
4- from collections .abc import Sequence
54from modules .bidding .domain .value_objects import Bid , Bidder , Seller
65from modules .bidding .domain .rules import (
76 PlacedBidMustBeGreaterThanCurrentWinningBid ,
87 BidCanBeRetracted ,
98 ListingCanBeCancelled ,
109)
1110from seedwork .domain .entities import AggregateRoot
12- from seedwork .domain .events import DomainEvent
1311from seedwork .domain .exceptions import DomainException
1412from seedwork .domain .events import DomainEvent
15- from seedwork .domain .value_objects import UUID , Money
13+ from seedwork .domain .value_objects import Money
1614
1715
1816class BidderIsNotBiddingListing (DomainException ):
@@ -51,7 +49,7 @@ def __post_init__(self) -> None:
5149 self .current_price = self .initial_price
5250
5351 # public commands
54- def place_bid (self , bid : Bid ) -> Sequence [DomainEvent ]:
52+ def place_bid (self , bid : Bid ) -> List [DomainEvent ]:
5553 """Public method"""
5654 self .check_rule (
5755 PlacedBidMustBeGreaterThanCurrentWinningBid (
@@ -66,7 +64,7 @@ def place_bid(self, bid: Bid) -> Sequence[DomainEvent]:
6664
6765 return [BidPlacedEvent (listing_id = self .id , bidder = bid .bidder , price = bid .price )]
6866
69- def retract_bid_of (self , bidder : Bidder ) -> Sequence [DomainEvent ]:
67+ def retract_bid_of (self , bidder : Bidder ) -> List [DomainEvent ]:
7068 """Public method"""
7169 bid = self .get_bid_of (bidder )
7270 self .check_rule (
@@ -76,7 +74,7 @@ def retract_bid_of(self, bidder: Bidder) -> Sequence[DomainEvent]:
7674 self ._remove_bid_of (bidder = bidder )
7775 return [BidRetractedEvent (listing_id = self .id , bidder_id = bidder .uuid )]
7876
79- def cancel_listing (self ) -> Sequence [DomainEvent ]:
77+ def cancel_listing (self ) -> List [DomainEvent ]:
8078 self .check_rule (
8179 ListingCanBeCancelled (
8280 time_left_in_listing = self .time_left_in_listing ,
@@ -86,7 +84,7 @@ def cancel_listing(self) -> Sequence[DomainEvent]:
8684 self .ends_at = datetime .utcnow ()
8785 return [ListingCancelledEvent (listing_id = self .id )]
8886
89- def end_bidding (self ) -> Sequence [DomainEvent ]:
87+ def end_bidding (self ) -> List [DomainEvent ]:
9088 raise NotImplementedError ()
9189 return []
9290
0 commit comments