feat(core): domain models + Store (schema, connection, meta)
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
from dataclasses import dataclass, field
|
||||
from typing import Optional
|
||||
|
||||
|
||||
@dataclass
|
||||
class Asset:
|
||||
immich_id: str
|
||||
taken_at: str = ""
|
||||
gps_lat: Optional[float] = None
|
||||
gps_lon: Optional[float] = None
|
||||
place_city: Optional[str] = None
|
||||
place_country: Optional[str] = None
|
||||
type: str = ""
|
||||
has_gps: bool = False
|
||||
thumb_path: Optional[str] = None
|
||||
processed: bool = False
|
||||
ingested_at: str = ""
|
||||
updated_at: str = ""
|
||||
|
||||
|
||||
@dataclass
|
||||
class Tag:
|
||||
name: str
|
||||
immich_tag_id: Optional[str] = None
|
||||
count: int = 0
|
||||
|
||||
|
||||
@dataclass
|
||||
class AssetTag:
|
||||
immich_id: str
|
||||
tag_name: str
|
||||
|
||||
|
||||
@dataclass
|
||||
class Cluster:
|
||||
id: Optional[int] = None
|
||||
start_at: str = ""
|
||||
end_at: str = ""
|
||||
count: int = 0
|
||||
suggested_name: str = ""
|
||||
confidence: float = 0.0
|
||||
kind_guess: str = "trip" # trip | everyday
|
||||
status: str = "pending" # pending|approved|non_trip|merged|split|skipped
|
||||
decided_name: Optional[str] = None
|
||||
reviewed_at: Optional[str] = None
|
||||
notes: Optional[str] = None
|
||||
|
||||
|
||||
@dataclass
|
||||
class ClusterMember:
|
||||
cluster_id: int
|
||||
immich_id: str
|
||||
member_confidence: float = 1.0
|
||||
is_outlier: bool = False
|
||||
included: bool = True
|
||||
flagged_coverage: bool = False
|
||||
|
||||
|
||||
@dataclass
|
||||
class WritebackLog:
|
||||
id: Optional[int]
|
||||
immich_id: str
|
||||
action: str # trip | non-trip | processed
|
||||
tag: Optional[str]
|
||||
result: str # ok | error:<reason>
|
||||
applied_at: str
|
||||
Reference in New Issue
Block a user