Enhance Photo and WorkLog models with relationships to improve data integrity and associations

This commit is contained in:
Yaro Kasear 2025-07-10 16:20:44 -05:00
parent 2a8e1710b3
commit 19d1c31984
2 changed files with 7 additions and 2 deletions

View file

@ -1,7 +1,8 @@
from typing import Optional, TYPE_CHECKING
from typing import Optional, List, TYPE_CHECKING
if TYPE_CHECKING:
from .inventory import Inventory
from .users import User
from .work_log import WorkLog
import datetime
@ -20,6 +21,7 @@ class Photo(db.Model):
inventory: Mapped[Optional['Inventory']] = relationship('Inventory', back_populates='photo')
user: Mapped[Optional['User']] = relationship('User', back_populates='photo')
worklogs: Mapped[List['WorkLog']] = relationship('WorkLog', back_populates='photos')
def __repr__(self):
return f"<Photo(id={self.id}, filename={self.filename})>"

View file

@ -1,6 +1,7 @@
from typing import Optional, Any, List, TYPE_CHECKING
if TYPE_CHECKING:
from .inventory import Inventory
from .photo import Photo
from .users import User
from .work_note import WorkNote
@ -9,6 +10,7 @@ from sqlalchemy.orm import Mapped, mapped_column, relationship
import datetime
from . import db
from .photo_links import worklog_photos
from .work_note import WorkNote
class WorkLog(db.Model):
@ -26,12 +28,13 @@ class WorkLog(db.Model):
work_item: Mapped[Optional['Inventory']] = relationship('Inventory', back_populates='work_logs')
contact: Mapped[Optional['User']] = relationship('User', back_populates='work_logs')
updates: Mapped[list['WorkNote']] = relationship(
updates: Mapped[List['WorkNote']] = relationship(
'WorkNote',
back_populates='work_log',
cascade='all, delete-orphan',
order_by='WorkNote.timestamp'
)
photos: Mapped[List['Photo']] = relationship('Photo', secondary=worklog_photos, back_populates='worklogs')
def __init__(
self,