iro/model/schema.py
branchdevel
changeset 94 4349f10d77a6
parent 92 f479738b4879
child 117 351a02310dd8
equal deleted inserted replaced
93:ee10253258ad 94:4349f10d77a6
    12 __tables__=["User", "Job", "Message", "Offer", "Userright"]
    12 __tables__=["User", "Job", "Message", "Offer", "Userright"]
    13 
    13 
    14 class Userright(Base):
    14 class Userright(Base):
    15     """Über welche Routen darf ein Benutzer Daten verschicken und welches sind die Standardrouten (<em>isDefault=1</em>) für den Benuter."""
    15     """Über welche Routen darf ein Benutzer Daten verschicken und welches sind die Standardrouten (<em>isDefault=1</em>) für den Benuter."""
    16     __tablename__ = 'userright'
    16     __tablename__ = 'userright'
    17     user_name = Column('user', String, ForeignKey('apiuser.name'), primary_key=True)
    17     user_name = Column('user', String(100), ForeignKey('apiuser.name'), primary_key=True)
    18     offer_name = Column('offer', String, ForeignKey('offer.name'), primary_key=True)
    18     offer_name = Column('offer', String(100), ForeignKey('offer.name'), primary_key=True)
    19     isDefault = Column(Boolean)
    19     isDefault = Column(Boolean)
    20     offer = relationship("Offer")
    20     offer = relationship("Offer")
    21 
    21 
    22 class Offer(Base):
    22 class Offer(Base):
    23     """Alle Routen über die SMS, Faxe und Mails verschickt werden könnnen. <em>provider</em>, <em>typ</em> und <em>route</em> werden verwendet, um die entsprechenden Zugangsdaten laden zu können."""
    23     """Alle Routen über die SMS, Faxe und Mails verschickt werden könnnen. <em>provider</em>, <em>typ</em> und <em>route</em> werden verwendet, um die entsprechenden Zugangsdaten laden zu können."""
    24     __tablename__ = "offer"
    24     __tablename__ = "offer"
    25     name = Column(String, primary_key=True)
    25     name = Column(String(100), primary_key=True)
    26     provider = Column(String)
    26     provider = Column(String(100))
    27     route = Column(String)
    27     route = Column(String(100))
    28     typ = Column(String)
    28     typ = Column(String(100))
    29     
    29     
    30 
    30 
    31 class Message(Base):
    31 class Message(Base):
    32     """Wenn ein Vorgang von Iro Kosten erzeugt hat wird eine neue Zeile eingefügt. Solange nicht bezahlt wurde ist <em>isBilled=0</em>."""
    32     """Wenn ein Vorgang von Iro Kosten erzeugt hat wird eine neue Zeile eingefügt. Solange nicht bezahlt wurde ist <em>isBilled=0</em>."""
    33     __tablename__ = "message"
    33     __tablename__ = "message"
    34     id = Column(Integer, Sequence('message_id_seq'), primary_key=True)
    34     id = Column(Integer, Sequence('message_id_seq'), primary_key=True)
    35     recipient = Column(String)
    35     recipient = Column(String(100))
    36     isBilled = Column(Boolean)
    36     isBilled = Column(Boolean)
    37     date = Column(DateTime)
    37     date = Column(DateTime)
    38     price = Column(Numeric(8,2))
    38     price = Column(Numeric(8,2))
    39     job_hash = Column("job",Integer, ForeignKey('job.hash'))
    39     job_hash = Column("job",Integer, ForeignKey('job.hash'))
    40     job = relationship("Job", backref=backref('messages'))
    40     job = relationship("Job", backref=backref('messages'))
    41     offer_id = Column("offer",String, ForeignKey('offer.name'))
    41     offer_id = Column("offer",String(100), ForeignKey('offer.name'))
    42     offer = relationship("Offer", backref=backref('messages'))
    42     offer = relationship("Offer", backref=backref('messages'))
    43 
    43 
    44 
    44 
    45 class Job(Base):
    45 class Job(Base):
    46     """Ein kompletter Auftrag, der an Iro zum verschicken übergeben wird. Status zeigt den generellen Status des Auftrages an (<em>init</em>, <em>started</em>, <em>sending</em>, <em>sended</em> oder <em>error</em>). <em>info</em> wird verwendet um dem Benutzer eine Möglickeit zu geben verschiede Auftragsgruppen zu erstellen."""
    46     """Ein kompletter Auftrag, der an Iro zum verschicken übergeben wird. Status zeigt den generellen Status des Auftrages an (<em>init</em>, <em>started</em>, <em>sending</em>, <em>sended</em> oder <em>error</em>). <em>info</em> wird verwendet um dem Benutzer eine Möglickeit zu geben verschiede Auftragsgruppen zu erstellen."""
    47     __tablename__ = "job"
    47     __tablename__ = "job"
    48     hash = Column(String, primary_key=True)
    48     hash = Column(String(40), primary_key=True)
    49     info = Column(String)
    49     info = Column(String(100))
    50     status = Column(Enum("init","started","sending","sended","error"))
    50     status = Column(Enum("init","started","sending","sended","error"))
    51     user_id = Column("user", String, ForeignKey('apiuser.name'))
    51     user_id = Column("user", String(100), ForeignKey('apiuser.name'))
    52     user = relationship("User", backref=backref('jobs'))
    52     user = relationship("User", backref=backref('jobs'))
    53 
    53 
    54 class User(Base):
    54 class User(Base):
    55     """Die Benutzerdatenbank von Iro. <em>ng_kunde</em> ist der verknüpfte netzguerilla.net Benutzer, der die Rechnung zahlt."""
    55     """Die Benutzerdatenbank von Iro. <em>ng_kunde</em> ist der verknüpfte netzguerilla.net Benutzer, der die Rechnung zahlt."""
    56     __tablename__ = "apiuser"
    56     __tablename__ = "apiuser"
    57     name = Column(String, primary_key=True)
    57     name = Column(String(100), primary_key=True)
    58     ng_kunde = Column(Integer)
    58     ng_kunde = Column(Integer)
    59     apikey = Column(String,unique=True)
    59     apikey = Column(String(50),unique=True)
    60     rights = relationship('Userright')
    60     rights = relationship('Userright')
    61     def __init__(self, name, apikey):
    61     def __init__(self, name, apikey):
    62         self.name=name
    62         self.name=name
    63         self.apikey=apikey
    63         self.apikey=apikey
    64 
    64