add method for import data

This commit is contained in:
Thomas Peetz
2025-05-19 14:16:30 +02:00
parent 3197288eee
commit 20ed0b2f40
8 changed files with 387 additions and 8 deletions
+74
View File
@@ -1,3 +1,4 @@
from typing import AnyStr, Dict, Any
from sqlalchemy import Column, Integer, String, ForeignKey, UniqueConstraint, Boolean
from sqlalchemy.orm import relationship
@@ -13,6 +14,16 @@ class Sport(Base, BaseMixin):
teams = relationship("Team")
positions = relationship("FieldPosition")
def __repr__(self):
return f"Sport(id={self.id}, name={self.name}, created_date={self.created_date})"
def import_dict(self, import_data: Dict[AnyStr, AnyStr]):
self.id = import_data['id']
self.created_date = import_data['created_date']
self.last_modified_date = import_data['last_modified_date']
self.version = import_data['version']
self.name = import_data['name']
class Team(Base, BaseMixin):
__tablename__ = "team"
@@ -22,6 +33,15 @@ class Team(Base, BaseMixin):
sport = relationship("Sport", back_populates="teams")
roosters = relationship("Rooster")
def import_dict(self, import_data: Dict[AnyStr, AnyStr]):
self.id = import_data['id']
self.created_date = import_data['created_date']
self.last_modified_date = import_data['last_modified_date']
self.version = import_data['version']
self.name = import_data['name']
self.short_name = import_data['short_name']
self.sport_id = import_data['sport_id']
class FieldPosition(Base, BaseMixin):
__tablename__ = "field_position"
@@ -35,6 +55,15 @@ class FieldPosition(Base, BaseMixin):
sport = relationship("Sport", back_populates="positions")
roosters = relationship("Rooster")
def import_dict(self, import_data: Dict[AnyStr, AnyStr]):
self.id = import_data['id']
self.created_date = import_data['created_date']
self.last_modified_date = import_data['last_modified_date']
self.version = import_data['version']
self.name = import_data['name']
self.short_name = import_data['short_name']
self.sport_id = import_data['sport_id']
class Player(Base, BaseMixin):
__tablename__ = "player"
@@ -48,6 +77,14 @@ class Player(Base, BaseMixin):
def get_full_name(self) -> str:
return f"{self.last_name}, {self.first_name}"
def import_dict(self, import_data: Dict[AnyStr, AnyStr]):
self.id = import_data['id']
self.created_date = import_data['created_date']
self.last_modified_date = import_data['last_modified_date']
self.version = import_data['version']
self.first_name = import_data['first_name']
self.last_name = import_data['last_name']
class Rooster(Base, BaseMixin):
__tablename__ = "rooster"
@@ -63,6 +100,15 @@ class Rooster(Base, BaseMixin):
position = relationship("FieldPosition", back_populates="roosters")
cards = relationship("Card")
def import_dict(self, import_data: Dict[AnyStr, AnyStr]):
self.id = import_data['id']
self.created_date = import_data['created_date']
self.last_modified_date = import_data['last_modified_date']
self.version = import_data['version']
self.team_id = import_data['team_id']
self.player_id = import_data['player_id']
self.position_id = import_data['position_id']
class Vendor(Base, BaseMixin):
__tablename__ = "vendor"
@@ -70,6 +116,13 @@ class Vendor(Base, BaseMixin):
card_sets = relationship("CardSet")
cards = relationship("Card")
def import_dict(self, import_data: Dict[AnyStr, AnyStr]):
self.id = import_data['id']
self.created_date = import_data['created_date']
self.last_modified_date = import_data['last_modified_date']
self.version = import_data['version']
self.name = import_data['name']
class CardSet(Base, BaseMixin):
__tablename__ = "card_set"
@@ -83,6 +136,16 @@ class CardSet(Base, BaseMixin):
vendor = relationship("Vendor", back_populates="card_sets")
cards = relationship("Card")
def import_dict(self, import_data: Dict[AnyStr, AnyStr]):
self.id = import_data['id']
self.created_date = import_data['created_date']
self.last_modified_date = import_data['last_modified_date']
self.version = import_data['version']
self.name = import_data['name']
self.parallel_set = import_data['parallel_set']
self.insert_set = import_data['insert_set']
self.vendor_id = import_data['vendor_id']
class Card(Base, BaseMixin):
__tablename__ = "card"
@@ -97,3 +160,14 @@ class Card(Base, BaseMixin):
rooster = relationship("Rooster", back_populates="cards")
vendor_id = Column(String, ForeignKey("vendor.id"), nullable=False)
vendor = relationship("Vendor", back_populates="cards")
def import_dict(self, import_data: Dict[AnyStr, Any]):
self.id = import_data['id']
self.created_date = import_data['created_date']
self.last_modified_date = import_data['last_modified_date']
self.version = import_data['version']
self.card_number = import_data['card_number']
self.year = import_data['year']
self.card_set_id = import_data['card_set_id']
self.rooster_id = import_data['rooster_id']
self.vendor_id = import_data['vendor_id']