Subversion Repositories SmartDukaan

Rev

Rev 472 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

'''
Created on 13-Sep-2010

@author: rajveer
'''
from elixir import *
import datetime

class Provider(Entity):
    id = Field(Integer, primary_key=True, autoincrement=True)
    name = Field(String(100))
    awb = OneToMany("AWB")

class AWB(Entity):
    id = Field(Integer, primary_key=True, autoincrement=True)
    awb_number = Field(String(100))
    is_available = Field(Boolean)
    provider = ManyToOne("Provider")
    #shipment = OneToOne("Shipment", inverse="awb")
    
class ShipmentUpdate(Entity):
    id = Field(Integer, primary_key=True, autoincrement=True)
    pin = Field(String(20))
    timestamp = Field(DateTime)
    description = Field(String(100))
    #awb = ManyToOne("AWB")
    shipment = ManyToOne("Shipment")    
    
class Shipment(Entity):
    id = Field(Integer, primary_key=True, autoincrement=True) 
    warehouse_name = Field(String(100))
    awb = Field(String(100))
    origin = Field(String(100))
    destination = Field(String(100))
    timestamp = Field(DateTime)
    recepient_name = Field(String(100))
    recepient_address = Field(String(200))
    recepient_pincode = Field(String(20))
    recepient_phone = Field(String(20))
    shipment_weight = Field(String(20))
    shipment_contents = Field(String(100))
    status_message = Field(String(100))
    #awb = ManyToOne("AWB")
    shipment_update = OneToMany("ShipmentUpdate")

'''
struct Shipment{
    1:string warehouse_id,
    2:string awb,
    3:string origin,
    4:string destination,
    5:i64 timestamp,
    6:string recepient_name,
    7:string recepient_address,
    8:string recepient_pincode,
    9:string recepient_phone,
    10:string shipment_weight,
    11:string shipment_contents
}
'''
   
def initialize():
    metadata.bind = "sqlite:///logistics.sqlite" #need to read it from configserver.
    metadata.bind.echo = True
    setup_all(True)

if __name__=="__main__":
    initialize()