WIP
This commit is contained in:
@@ -36,6 +36,19 @@ class DrugVariant(Base):
|
||||
updated_at = Column(DateTime(timezone=True), onupdate=func.now(), server_default=func.now())
|
||||
|
||||
|
||||
class VariantPack(Base):
|
||||
__tablename__ = "variant_packs"
|
||||
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
drug_variant_id = Column(Integer, ForeignKey("drug_variants.id"), nullable=False, index=True)
|
||||
label = Column(String, nullable=False)
|
||||
pack_unit_name = Column(String, nullable=False, default="pack")
|
||||
pack_size_in_base_units = Column(Float, nullable=False, default=1)
|
||||
is_active = Column(Boolean, nullable=False, default=True)
|
||||
created_at = Column(DateTime(timezone=True), server_default=func.now())
|
||||
updated_at = Column(DateTime(timezone=True), onupdate=func.now(), server_default=func.now())
|
||||
|
||||
|
||||
class Dispensing(Base):
|
||||
__tablename__ = "dispensings"
|
||||
|
||||
@@ -44,6 +57,9 @@ class Dispensing(Base):
|
||||
batch_id = Column(Integer, ForeignKey("batches.id"), nullable=True)
|
||||
actor_user_id = Column(Integer, ForeignKey("users.id"), nullable=True)
|
||||
quantity = Column(Float, nullable=False)
|
||||
dispense_mode = Column(String, nullable=False, default="subunit")
|
||||
requested_pack_id = Column(Integer, ForeignKey("variant_packs.id"), nullable=True)
|
||||
requested_pack_count = Column(Float, nullable=True)
|
||||
animal_name = Column(String, nullable=True) # Name/ID of the animal (optional)
|
||||
user_name = Column(String, nullable=False) # User who dispensed
|
||||
dispensed_at = Column(DateTime(timezone=True), server_default=func.now(), index=True)
|
||||
@@ -67,6 +83,11 @@ class Batch(Base):
|
||||
drug_variant_id = Column(Integer, ForeignKey("drug_variants.id"), nullable=False, index=True)
|
||||
batch_number = Column(String, nullable=False, index=True)
|
||||
quantity = Column(Float, nullable=False, default=0)
|
||||
received_pack_id = Column(Integer, ForeignKey("variant_packs.id"), nullable=True)
|
||||
received_pack_count = Column(Float, nullable=True)
|
||||
received_pack_size_snapshot = Column(Float, nullable=True)
|
||||
current_full_pack_count = Column(Float, nullable=True)
|
||||
current_loose_base_units = Column(Float, nullable=True)
|
||||
expiry_date = Column(Date, nullable=False, index=True)
|
||||
location_id = Column(Integer, ForeignKey("locations.id"), nullable=False, index=True)
|
||||
received_at = Column(DateTime(timezone=True), nullable=False, server_default=func.now(), index=True)
|
||||
|
||||
Reference in New Issue
Block a user