demo seed change 2
This commit is contained in:
@@ -36,18 +36,19 @@ def get_base_reference_date(session_created_at: Optional[datetime] = None) -> da
|
||||
|
||||
def adjust_date_for_demo(
|
||||
original_date: Optional[datetime],
|
||||
session_created_at: datetime,
|
||||
base_reference_date: datetime = BASE_REFERENCE_DATE
|
||||
session_created_at: datetime
|
||||
) -> Optional[datetime]:
|
||||
"""
|
||||
Adjust a date from seed data to be relative to demo session creation time.
|
||||
|
||||
|
||||
This function calculates the offset between the original date and BASE_REFERENCE_DATE,
|
||||
then applies that offset to the session creation time.
|
||||
|
||||
Example:
|
||||
# Seed data created on 2025-12-13 06:00
|
||||
# Stock expiration: 2025-12-28 06:00 (15 days from seed date)
|
||||
# Original seed date: 2025-01-20 06:00 (BASE_REFERENCE + 5 days)
|
||||
# Demo session created: 2025-12-16 10:00
|
||||
# Base reference: 2025-12-16 06:00
|
||||
# Result: 2025-12-31 10:00 (15 days from session date)
|
||||
# Offset: 5 days
|
||||
# Result: 2025-12-21 10:00 (session + 5 days)
|
||||
"""
|
||||
if original_date is None:
|
||||
return None
|
||||
@@ -57,11 +58,9 @@ def adjust_date_for_demo(
|
||||
original_date = original_date.replace(tzinfo=timezone.utc)
|
||||
if session_created_at.tzinfo is None:
|
||||
session_created_at = session_created_at.replace(tzinfo=timezone.utc)
|
||||
if base_reference_date.tzinfo is None:
|
||||
base_reference_date = base_reference_date.replace(tzinfo=timezone.utc)
|
||||
|
||||
# Calculate offset from base reference
|
||||
offset = original_date - base_reference_date
|
||||
offset = original_date - BASE_REFERENCE_DATE
|
||||
|
||||
# Apply offset to session creation date
|
||||
return session_created_at + offset
|
||||
@@ -182,29 +181,29 @@ def resolve_time_marker(
|
||||
if operator not in ['+', '-']:
|
||||
raise ValueError(f"Invalid operator in time marker: {time_marker}")
|
||||
|
||||
# Parse time components
|
||||
days = 0
|
||||
hours = 0
|
||||
minutes = 0
|
||||
|
||||
# Parse time components (supports decimals like 0.5d, 1.25h)
|
||||
days = 0.0
|
||||
hours = 0.0
|
||||
minutes = 0.0
|
||||
|
||||
if 'd' in value_part:
|
||||
# Handle days
|
||||
# Handle days (supports decimals like 0.5d = 12 hours)
|
||||
day_part, rest = value_part.split('d', 1)
|
||||
days = int(day_part)
|
||||
days = float(day_part)
|
||||
value_part = rest
|
||||
|
||||
|
||||
if 'h' in value_part:
|
||||
# Handle hours
|
||||
# Handle hours (supports decimals like 1.5h = 1h30m)
|
||||
hour_part, rest = value_part.split('h', 1)
|
||||
hours = int(hour_part)
|
||||
hours = float(hour_part)
|
||||
value_part = rest
|
||||
|
||||
|
||||
if 'm' in value_part:
|
||||
# Handle minutes
|
||||
# Handle minutes (supports decimals like 30.5m)
|
||||
minute_part = value_part.split('m', 1)[0]
|
||||
minutes = int(minute_part)
|
||||
|
||||
# Calculate offset
|
||||
minutes = float(minute_part)
|
||||
|
||||
# Calculate offset using float values
|
||||
offset = timedelta(days=days, hours=hours, minutes=minutes)
|
||||
|
||||
if operator == '+':
|
||||
|
||||
Reference in New Issue
Block a user