示例#1
0
class Well(DataFrameMixin, db.Model):

    __tablename__ = "wells"
    # __table_args__ = {"schema": schema}

    id = db.Column(db.Integer, primary_key=True, nullable=False)
    well_name = db.Column(db.String(), nullable=True)
    well_type = db.Column(db.String(), nullable=True)
    well_alias = db.Column(db.String(), nullable=True)
    is_active = db.Column(db.Boolean(), default=False, nullable=False)
    latest_production_time = db.Column(db.DateTime(timezone=True),
                                       default=func.now(),
                                       nullable=False)
    iwell_created_at = db.Column(db.DateTime(timezone=True),
                                 default=func.now(),
                                 nullable=False)
    iwell_updated_at = db.Column(db.DateTime(timezone=True),
                                 default=func.now(),
                                 nullable=False)
    created_at = db.Column(db.DateTime(timezone=True),
                           default=func.now(),
                           nullable=False)
    updated_at = db.Column(db.DateTime(timezone=True),
                           default=func.now(),
                           nullable=False)
    groups = db.relationship("WellGroupWell", backref="well", lazy=True)
    meters = db.relationship("Meter", backref="well", lazy=True)
    # meter_readings = db.relationship("MeterReading", backref="well", lazy=True)

    notes = db.relationship("WellNote", backref="well", lazy=True)
    fields = db.relationship("WellField", backref="well", lazy=True)
    # field_values = db.relationship("FieldValue", backref="well", lazy=True)
    production = db.relationship("Production", backref="well", lazy=True)
示例#2
0
class WellField(DataFrameMixin, db.Model):

    __tablename__ = "well_fields"
    # __table_args__ = {"schema": schema}

    field_id = db.Column(db.Integer,
                         db.ForeignKey(f"fields.id"),
                         primary_key=True,
                         nullable=False)
    well_id = db.Column(db.Integer,
                        db.ForeignKey(f"wells.id"),
                        primary_key=True,
                        nullable=False)
    # field_name = db.Column(db.String(), nullable=True)
    # field_type = db.Column(db.String(), nullable=True)
    # field_unit = db.Column(db.String(), nullable=True)
    # field_order = db.Column(db.Integer, nullable=True)
    # is_historic = db.Column(db.Boolean(), default=False, nullable=False)
    # is_remembered = db.Column(db.Boolean(), default=False, nullable=False)
    # is_required = db.Column(db.Boolean(), default=False, nullable=False)
    iwell_created_at = db.Column(db.DateTime(timezone=True),
                                 default=func.now(),
                                 nullable=False)
    iwell_updated_at = db.Column(db.DateTime(timezone=True),
                                 default=func.now(),
                                 nullable=False)
    created_at = db.Column(db.DateTime(timezone=True),
                           default=func.now(),
                           nullable=False)
    updated_at = db.Column(db.DateTime(timezone=True),
                           default=func.now(),
                           nullable=False)
    field_values = db.relationship("FieldValue",
                                   backref="well_field",
                                   lazy=True)
示例#3
0
class Meter(DataFrameMixin, db.Model):

    __tablename__ = "meters"
    # __table_args__ = {"schema": schema}

    id = db.Column(db.Integer, primary_key=True, nullable=False)
    well_id = db.Column(db.Integer,
                        db.ForeignKey(f"wells.id"),
                        primary_key=True,
                        nullable=False)
    meter_name = db.Column(db.String(), nullable=True)
    meter_order = db.Column(db.Integer, nullable=True)
    product_type = db.Column(db.String(), nullable=True)
    iwell_created_at = db.Column(db.DateTime(timezone=True),
                                 default=func.now(),
                                 nullable=False)
    iwell_updated_at = db.Column(db.DateTime(timezone=True),
                                 default=func.now(),
                                 nullable=False)
    created_at = db.Column(db.DateTime(timezone=True),
                           default=func.now(),
                           nullable=False)
    updated_at = db.Column(db.DateTime(timezone=True),
                           default=func.now(),
                           nullable=False)
    readings = db.relationship("MeterReading", backref="meter", lazy=True)
示例#4
0
class TankReading(DataFrameMixin, db.Model):

    __tablename__ = "tank_readings"
    # __table_args__ = {"schema": schema}

    id = db.Column(db.Integer, primary_key=True, nullable=False)
    tank_id = db.Column(db.Integer,
                        db.ForeignKey(f"tanks.id"),
                        primary_key=True,
                        nullable=False)
    reading_at = db.Column(db.DateTime(timezone=True),
                           nullable=False)  # reading_time
    cut_feet = db.Column(db.Float, nullable=True, default=0)
    cut_inches = db.Column(db.Float, nullable=True, default=0)
    top_feet = db.Column(db.Float, nullable=True, default=0)
    top_inches = db.Column(db.Float, nullable=True, default=0)
    previous_cut_feet = db.Column(db.Float, nullable=True, default=0)
    previous_cut_inches = db.Column(db.Float, nullable=True, default=0)
    previous_top_feet = db.Column(db.Float, nullable=True, default=0)
    previous_top_inches = db.Column(db.Float, nullable=True, default=0)
    # updated_by = db.Column(
    #     db.Integer, db.ForeignKey(f"users.id"), nullable=False
    # )
    updated_by = db.Column(db.Integer, nullable=True)
    iwell_created_at = db.Column(db.DateTime(timezone=True),
                                 default=func.now(),
                                 nullable=False)
    iwell_updated_at = db.Column(db.DateTime(timezone=True),
                                 default=func.now(),
                                 nullable=False)
    created_at = db.Column(db.DateTime(timezone=True),
                           default=func.now(),
                           nullable=False)
    updated_at = db.Column(db.DateTime(timezone=True),
                           default=func.now(),
                           nullable=False)
    run_tickets = db.relationship("RunTicket",
                                  backref="tank_reading",
                                  lazy=True)
示例#5
0
class Tank(DataFrameMixin, db.Model):

    __tablename__ = "tanks"
    # __table_args__ = {"schema": schema}

    id = db.Column(db.Integer, primary_key=True, nullable=False)
    tank_name = db.Column(db.String(), nullable=True)
    tank_type = db.Column(db.String(), nullable=True)
    capacity = db.Column(db.Integer, nullable=True)
    multiplier = db.Column(db.Float, nullable=True)
    iwell_created_at = db.Column(db.DateTime(timezone=True),
                                 default=func.now(),
                                 nullable=False)
    iwell_updated_at = db.Column(db.DateTime(timezone=True),
                                 default=func.now(),
                                 nullable=False)
    created_at = db.Column(db.DateTime(timezone=True),
                           default=func.now(),
                           nullable=False)
    updated_at = db.Column(db.DateTime(timezone=True),
                           default=func.now(),
                           nullable=False)
    readings = db.relationship("TankReading", backref="tank", lazy=True)
示例#6
0
class WellGroup(DataFrameMixin, db.Model):

    __tablename__ = "well_groups"
    # __table_args__ = {"schema": schema}

    id = db.Column(db.Integer, primary_key=True, nullable=False)
    group_name = db.Column(db.String(), nullable=True)
    is_active = db.Column(db.Boolean(), default=False, nullable=False)
    group_latest_production_time = db.Column(db.DateTime(timezone=True),
                                             default=func.now(),
                                             nullable=False)
    iwell_created_at = db.Column(db.DateTime(timezone=True),
                                 default=func.now(),
                                 nullable=False)
    iwell_updated_at = db.Column(db.DateTime(timezone=True),
                                 default=func.now(),
                                 nullable=False)
    created_at = db.Column(db.DateTime(timezone=True),
                           default=func.now(),
                           nullable=False)
    updated_at = db.Column(db.DateTime(timezone=True),
                           default=func.now(),
                           nullable=False)
    wells = db.relationship("WellGroupWell", backref="well_group", lazy=True)