feat: Add created_by and cost fields to generation models, populate created_by from the authenticated user, and implement cost calculation.

This commit is contained in:
xds
2026-02-09 01:52:23 +03:00
parent fa3e1bb05f
commit 4461964791
11 changed files with 20 additions and 5 deletions

View File

@@ -2,7 +2,7 @@ from datetime import datetime, UTC
from enum import Enum
from typing import List, Optional
from pydantic import BaseModel, Field
from pydantic import BaseModel, Field, computed_field
from models.Asset import Asset
from models.enums import AspectRatios, Quality, GenType
@@ -34,5 +34,15 @@ class Generation(BaseModel):
input_token_usage: Optional[int] = None
output_token_usage: Optional[int] = None
is_deleted: bool = False
album_id: Optional[str] = None
created_by: Optional[str] = None
created_at: datetime = Field(default_factory=lambda: datetime.now(UTC))
updated_at: datetime = Field(default_factory=lambda: datetime.now(UTC))
@computed_field
def cost(self) -> float:
if self.status == GenerationStatus.DONE:
cost_input = self.input_token_usage * 0.000002
cost_output = self.output_token_usage * 0.00012
return round(cost_input + cost_output, 3)
return 0.0