| 776 | ) |
| 777 | |
| 778 | |
| 779 | class InboundNumber(db.Model): |
| 780 | __tablename__ = "inbound_numbers" |
| 781 | |
| 782 | id = db.Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) |
| 783 | number = db.Column(db.String(11), unique=True, nullable=False) |
| 784 | provider = db.Column(db.String(), nullable=False) |
| 785 | service_id = db.Column(UUID(as_uuid=True), db.ForeignKey("services.id"), unique=True, index=True, nullable=True) |
| 786 | service = db.relationship(Service, backref=db.backref("inbound_number", uselist=False)) |
| 787 | active = db.Column(db.Boolean, index=False, unique=False, nullable=False, default=True) |
| 788 | created_at = db.Column(db.DateTime, default=datetime.datetime.utcnow, nullable=False) |
| 789 | updated_at = db.Column(db.DateTime, nullable=True, onupdate=datetime.datetime.utcnow) |
| 790 | |
| 791 | def serialize(self) -> SerializedInboundNumber: |
| 792 | def serialize_service() -> SerializedService: |
| 793 | return {"id": str(self.service_id), "name": self.service.name} |
| 794 | |
| 795 | return SerializedInboundNumber( |
| 796 | id=str(self.id), |
| 797 | number=self.number, |
| 798 | provider=self.provider, |
| 799 | service=serialize_service() if self.service else None, |
| 800 | active=self.active, |
| 801 | created_at=self.created_at.strftime(DATETIME_FORMAT), |
| 802 | updated_at=get_dt_string_or_none(self.updated_at), |
| 803 | ) |
| 804 | |
| 805 |
no outgoing calls