from atlas_um.pgdb import pgdb from atlas_um.pgdb.claim_name import ClaimName from atlas_um.pgdb.queries.resource_group import ResourceGroupQuery class ResourceGroup(pgdb.Model): __tablename__ = "resource_group" query_class = ResourceGroupQuery id = pgdb.Column(pgdb.Integer, primary_key=True) name = pgdb.Column(pgdb.String(), nullable=False) namespace_url = pgdb.Column(pgdb.String(), nullable=False) external_id = pgdb.Column(pgdb.String()) service_url = pgdb.Column(pgdb.String()) session_ttl = pgdb.Column(pgdb.Integer) active_session_ttl = pgdb.Column(pgdb.Integer) is_deleted = pgdb.Column(pgdb.Boolean(), nullable=False, default=False) # Relations claim_names = pgdb.relationship( "ClaimName", back_populates="resource_group", lazy="dynamic" ) applications = pgdb.relationship( "Application", back_populates="resource_group" ) account_activities = pgdb.relationship( "DNAAccountActivity", back_populates="resource_group" ) @property def active_claim_names(self): return self.claim_names.filter(ClaimName.is_deleted == False) # noqa def __str__(self): return self.name