예제 #1
0
파일: reports.py 프로젝트: jh3rnand3z/mango
class BaseHistory(models.Model):
    '''
        base history

        Scopes: accounts, numbers
    '''
    uuid = types.UUIDType(default=_id.uuid4)
    record_uuid = types.UUIDType(default=_id.uuid4)
    ban = types.UUIDType(default=_id.uuid4)  # 'billing account number'
    country_number = types.IntType()
    number = types.StringType()
    campaign_uuid = types.UUIDType(default=_id.uuid4)
    start_time = types.DateTimeType()
    caller_id = types.StringType()
    caller_id_name = types.StringType()
    origin_number = types.StringType()
    origin_city = types.StringType()
    origin_state = types.StringType()
    origin_province = types.StringType()
    destination_type = types.IntType()
    destination_contry_code = types.StringType()
    destination_number = types.StringType()
    destination_city = types.StringType()
    destination_state = types.StringType()
    duration = types.IntType()
    duration_unrounded = types.IntType()
    cost = types.IntType()
    special_rate = types.IntType()
    lead_type = types.IntType()
    web_call = types.BooleanType(default=False)
예제 #2
0
파일: games.py 프로젝트: spacebeam/bw
class Game(models.Model):
    '''
        Game Data Structure
    '''
    uuid = types.UUIDType(default=uuid.uuid4)
    game = types.IntType(required=True)
    status = types.StringType(
        choices=['new', 'starting', 'in-progress', 'completed', 'deleted'],
        default='new')
    labels = types.DictType(types.StringType)
    history = compound.ListType(types.StringType())
    address = types.IPAddressType()
    session = types.UUIDType()
    bots = types.StringType(required=True)
    map = types.StringType(required=True)
    replay = types.StringType()
    home = types.StringType()
    home_is_winner = types.BooleanType(default=False)
    home_crashed = types.BooleanType(default=False)
    home_timed_out = types.BooleanType(default=False)
    home_building_score = types.IntType()
    home_razing_score = types.IntType()
    home_unit_score = types.IntType()
    away = types.StringType()
    away_is_winner = types.BooleanType(default=False)
    away_crashed = types.BooleanType(default=False)
    away_timed_out = types.BooleanType(default=False)
    away_building_score = types.IntType()
    away_razing_score = types.IntType()
    away_unit_score = types.IntType()
    created_by = types.UUIDType()
    created_at = types.DateTimeType(default=datetime.datetime.utcnow)
    last_update_by = types.UUIDType()
    last_update_at = types.TimestampType()
예제 #3
0
 class HowlerResource(_models.Model):
     '''
         Fiorella resource
     '''
     uuid = _types.UUIDType(default=_uuid.uuid4)
     campaign = _types.UUIDType(required=False)
     directory = _types.UUIDType(required=False)
     resource = _types.StringType(required=True)
예제 #4
0
파일: reports.py 프로젝트: jh3rnand3z/mango
class VoiceCall(models.Model):
    '''
        voice call
    '''
    uuid = types.UUIDType(default=_id.uuid4)
    account_uuid = types.UUIDType(default=_id.uuid4)
    phone_1 = types.StringType()
    first_name = types.StringType()
    last_name = types.StringType()
    rep_phone = types.StringType()
    keyword = types.StringType()
예제 #5
0
파일: reports.py 프로젝트: jh3rnand3z/mango
class ConectedDuration(models.Model):
    '''
        connected duration
    '''
    uuid = types.UUIDType(default=_id.uuid4)
    customer_uuid = types.UUIDType(default=_id.uuid4)
    phone_1 = types.StringType()
    first_name = types.StringType()
    rep_phone = types.StringType()
    keyword = types.StringType()
    duration_unrounded = types.IntType()
    record_uuid = types.UUIDType(default=_id.uuid4)
예제 #6
0
 class MangoResource(_models.Model):
     '''
         Mango resource
     '''
     uuid = _types.UUIDType(default=_uuid.uuid4)
     account = _types.StringType(required=False)
     resource = _types.StringType(required=True)
예제 #7
0
class File(models.Model):
    '''
        File Data Structure
    '''
    uuid = types.UUIDType(default=uuid.uuid4)
    url = types.StringType()
    account = types.StringType(required=True)
    checksum = types.StringType()
    head = types.StringType()
    payload = types.StringType()
    public = types.BooleanType(default=False)
    labels = compound.ListType(types.StringType())
    hashes = compound.ListType(types.StringType())
    chunks = compound.ListType(types.StringType())
    status = types.StringType()
    created_by = types.StringType()
    created_at = types.TimestampType(default=arrow.utcnow().timestamp)
    updated = types.BooleanType(default=False)
    last_update_by = types.StringType()
    last_update_at = types.TimestampType()
    checked = types.BooleanType(default=False)
    checked_by = types.StringType()
    checked_at = types.TimestampType()
    active = types.BooleanType(default=True)
    watchers = compound.ListType(types.StringType())
예제 #8
0
class Payment(models.Model):
    '''
        Payment structure
    '''
    uuid = types.UUIDType(default=uuid.uuid4)

    account = types.StringType(required=True)
    credit_card_type = types.StringType(required=False)

    merchant = types.StringType()

    address = types.StringType()

    phone = types.StringType()

    email = types.EmailType()
    
    card_name = types.StringType()

    amount_funds = types.StringType() 
    
    credit_card_number = types.StringType()
    credit_card_cvc = types.StringType()

    exp_month = types.StringType()
    exp_year = types.StringType()

    CustomerToken = types.StringType(default='None')

    Status = compound.ModelType(Status)
    Transaction = compound.ModelType(Transaction)
    AuthorizationNum = types.IntType(default=__None_Id__)

    created = types.DateTimeType(default=arrow.utcnow().naive)
예제 #9
0
class Task(models.Model):
    '''
        Task Data Structure
    '''
    uuid = types.UUIDType(default=uuid.uuid4)
    account = types.StringType(required=True)
    subject = types.StringType()
    description = types.StringType()
    data = types.StringType()
    assign = compound.ListType(types.StringType())
    public = types.BooleanType(default=False)
    source = types.StringType()
    destination = types.StringType()
    labels = types.DictType(types.StringType)
    start_time = types.TimestampType()
    ack_time = types.TimestampType()
    stop_time = types.TimestampType()
    deadline = types.TimestampType()
    duration = types.StringType()
    comments = compound.ListType(types.StringType())
    status = types.StringType(choices=['new', 'now', 'later', 'done'],
                              default='new',
                              required=True)
    history = compound.ListType(types.StringType())
    checked = types.BooleanType(default=False)
    checked_by = types.StringType()
    checked_at = types.TimestampType(default=arrow.utcnow().timestamp)
    created_by = types.StringType()
    created_at = types.TimestampType(default=arrow.utcnow().timestamp)
    last_update_by = types.StringType()
    last_update_at = types.TimestampType()
예제 #10
0
class ModifyFile(models.Model):
    '''
        Modify File

        This model is similar to File.

        It lacks of require and default values on it's fields.

        The reason of it existence is that we need to validate
        every input data that came from outside the system, with
        this we prevent users from using PATCH to create fields
        outside the scope of the resource.
    '''
    uuid = types.UUIDType()
    url = types.StringType()
    account = types.StringType()
    checksum = types.StringType()
    head = types.StringType()
    payload = types.StringType()
    public = types.BooleanType()
    labels = compound.ListType(types.StringType())
    hashes = compound.ListType(types.StringType())
    chunks = compound.ListType(types.StringType())
    status = types.StringType()
    created_by = types.StringType()
    created_at = types.TimestampType()
    updated = types.BooleanType()
    last_update_by = types.StringType()
    last_update_at = types.TimestampType()
    checked = types.BooleanType()
    checked_by = types.StringType()
    checked_at = types.TimestampType()
    active = types.BooleanType()
    watchers = compound.ListType(types.StringType())
예제 #11
0
class ResourceContainer(models.Model):
    '''
        Cebus resource container
    '''
    contains = compound.ListType(types.UUIDType())

    total = types.IntType()
예제 #12
0
class SimpleResource(models.Model):
    '''
        Simple resource
    '''
    contains = compound.ListType(types.UUIDType())

    total = types.IntType()
예제 #13
0
class BaseAccount(models.Model):
    '''
        Base account
    '''
    uuid = types.UUIDType(default=uuid.uuid4)

    passwords = compound.ListType(compound.ModelType(Password))

    # api samples, remove after finish work on passwords or otherwise secret keys.
    api_key = types.StringType(required=False)
    # api_keys = compound.ListType(compound.ModelType(Mon))

    # system admin account
    is_admin = types.BooleanType(default=False)

    active = types.BooleanType(default=True)
    account = types.StringType(required=True)
    name = types.StringType(required=False)
    email = types.EmailType(required=True)
    phone_number = types.StringType()
    country_code = types.StringType()
    timezone = types.StringType()
    location = types.StringType()
    resources = compound.ModelType(Resource)
    
    routes = compound.ListType(compound.ModelType(Route))

    uri = types.StringType(required=False)
    url = types.URLType()

    # move this to howler and spider?
    max_channels = types.IntType()
예제 #14
0
class SuggestionAddressDTO(DTO):
    """DTO подсказки адреса."""

    value = types.StringType()
    fias_id = types.UUIDType()
    lat = types.StringType()
    lon = types.StringType()
    fias_level = types.StringType(choices=AddressTypeEnum.choices(), )
예제 #15
0
class SuggestionAddressParamsDTO(DTO):
    """DTO поиска адреса в геосервисе."""

    from_bound = types.StringType(choices=AddressTypeEnum.choices(),
                                  required=True)
    to_bound = types.StringType(choices=AddressTypeEnum.choices(),
                                required=True)
    query = types.StringType(required=True)
    region_fias_id = types.UUIDType()
    area_fias_id = types.UUIDType()
    city_fias_id = types.UUIDType()
    settlement_fias_id = types.UUIDType()
    street_fias_id = types.UUIDType()
    count = types.IntType(default=5)

    class Options:
        serialize_when_none = False
예제 #16
0
class User(Model):
    id = types.UUIDType(required=False)
    name = types.StringType(required=False)
    email = EmailType(required=True)
    created_at = types.DateTimeType(required=False)
    updated_at = types.DateTimeType(required=False)
    deleted_at = types.DateTimeType(required=False)
    profile = types.DictType(types.StringType, default={}, required=False)
예제 #17
0
class GeoserviceSuggestionDataDTO(DTO):
    """DTO данных подсказки из геосервиса."""

    fias_id = types.UUIDType()
    geo_lat = types.FloatType()
    geo_lon = types.FloatType()
    qc_geo = types.IntType(choices=GeoPointsAccuracy.choices())
    fias_level = types.IntType()
예제 #18
0
class Monkey(models.Model):
    '''
        Monkey business
    '''
    uuid = types.UUIDType(default=uuid.uuid4)
    sshkey = types.StringType(required=True)
    sw = types.StringType(required=True)
    hw = types.StringType(required=True)
    ''' 
예제 #19
0
class CampaignQueue(models.Model):
    '''
        Campaign queue
    '''
    uuid = types.UUIDType(default=uuid.uuid4)
    name = types.StringType(required=True)

    musiconhold = types.StringType(default='default')
    announce = types.StringType()
    context = types.StringType()
    timeout = types.IntType(default=15)

    monitor_join = types.IntType(default=1)
    monitor_format = types.StringType(default='wav')

    queue_youarenext = types.StringType(default='queue-youarenext')
    queue_thereare = types.StringType()
    queue_callswaiting = types.StringType()
    queue_holdtime = types.StringType()
    queue_minutes = types.StringType()
    queue_seconds = types.StringType()
    queue_lessthan = types.StringType(default='queue-less-than')
    queue_thankyou = types.StringType(default='queue-thankyou')
    queue_reporthold = types.StringType(default='queue-reporthold')

    announce_frequency = types.IntType()
    announce_round_seconds = types.IntType(default=10)
    announce_holdtime = types.StringType(default='yes')

    retry = types.IntType(default=5)
    wrapuptime = types.IntType()
    maxlen = types.IntType()
    servicelevel = types.IntType()
    strategy = types.StringType(choices=[
        'ringall', 'leastrecent', 'fewestcalls', 'random', 'rrmemory',
        'linear', 'wrandom'
    ],
                                required=True)

    joinempty = types.StringType(default='yes')
    leavewhenempty = types.StringType()

    eventmemberstatus = types.IntType(default=1)
    eventwhencalled = types.IntType(default=1)
    reportholdtime = types.IntType(default=1)
    memberdelay = types.IntType()
    weight = types.IntType()
    timeoutrestart = types.IntType()

    periodic_announce = types.StringType()
    periodic_announce_frequency = types.IntType()

    ringinuse = types.IntType(default=0)
    setinterfacevar = types.IntType(default=1)
예제 #20
0
파일: tasks.py 프로젝트: jh3rnand3z/mango
class ModifyTask(models.Model):
    '''
        Modify task

        This model is similar to Task.

        It lacks of require and default values on it's fields.

        The reason of it existence is that we need to validate
        every input data that came from outside the system, with 
        this we prevent users from using PATCH to create fields 
        outside the scope of the resource.
    '''
    uuid = types.UUIDType()
    title = types.StringType()
    first_name = types.StringType()
    last_name = types.StringType()
    description = types.StringType()
    label = types.StringType()
    category = types.StringType()
    email = types.StringType()
    account = types.StringType()
    accountcode = types.StringType()
    userfield = types.StringType()
    assigned = types.BooleanType()
    checked = types.BooleanType()
    public = types.BooleanType()
    source = types.StringType()
    destination = types.StringType()
    channel = types.StringType()
    source_channel = types.StringType()
    context = types.StringType()
    destination_context = types.StringType()
    destination_number = types.StringType()
    destination_channel = types.StringType()
    start = types.DateTimeType()
    answer = types.DateTimeType()
    end = types.DateTimeType()
    duration = types.IntType()
    billsec = types.IntType()
    billing = types.IntType()
    rate = types.IntType()
    disposition = types.StringType()
    status = types.StringType()
    priority = types.StringType()
    severity = types.StringType()
    checked = types.BooleanType()
    checked_by = types.StringType()
    created = types.DateTimeType()
    comments = compound.ModelType(Comment)
    last_modified = types.DateTimeType()
    updated_by = types.StringType()
    updated_at = types.DateTimeType()
    uri = types.StringType()
예제 #21
0
class Contact(models.Model):
    '''
        Outbound contact
    '''
    uuid = types.UUIDType(default=uuid.uuid4)
    account = types.StringType(required=True)
    first_name = types.StringType()
    last_name = types.StringType()
    phone_1 = types.StringType(required=True)
    phone_2 = types.StringType()
    phone_3 = types.StringType()
예제 #22
0
class InboundCampaign(models.Model):
    '''
        Inbound campaign
    '''
    uuid = types.UUIDType(default=uuid.uuid4)
    name = types.StringType(required=True)

    channel = types.StringType(required=True)

    context = types.StringType(required=True)
    extension = types.StringType(required=True)

    description = types.StringType()
예제 #23
0
class BaseApp(models.Model):
    '''
        Cebus base application

        Apps basic data structure
    '''
    id = mongo.ObjectIdType(required=False)

    uuid = types.UUIDType(default=uuid.uuid4)

    active = types.BooleanType(default=True)
    name = types.StringType(required=False)
    url = types.URLType()
예제 #24
0
class Password(models.Model):
    '''
        Password
    '''
    uuid = types.UUIDType(default=uuid.uuid4)
    assigned = types.BooleanType(default=False)
    password = types.StringType()
    raw = types.StringType()
    md5 = types.StringType()
    sha1 = types.StringType()
    sha256 = types.StringType()
    sha384 = types.StringType()
    sha512 = types.StringType()
    created_at = types.DateTimeType()
    last_modified = types.DateTimeType()
예제 #25
0
class AddressDTO(DTO):
    """DTO адреса."""

    id = types.IntType()  # noqa: A003
    city = types.StringType(required=True)
    street = types.StringType(required=True)
    house = types.StringType(required=True)
    building = types.StringType()
    apartment = types.StringType()
    floor = types.StringType()
    entrance = types.StringType()
    comment = types.StringType()
    lat = types.FloatType()
    lon = types.FloatType()
    fias_id = types.UUIDType()
예제 #26
0
class Unit(models.Model):
    '''
        Cebus base unit model
    '''
    name = types.StringType(required=False)
    uuid = types.UUIDType(default=uuid.uuid4)

    contacts = compound.ModelType(ContactsContainer)

    url = types.URLType()
    urls = compound.ListType(types.StringType())

    resources = compound.ModelType(Resource)

    cores = types.IntType(default=1)
    total = types.IntType()
예제 #27
0
class Company(models.Model):
    '''
        Company Object Data Structure
    '''
    uuid = types.UUIDType(default=uuid.uuid4)
    state_province = types.StringType()
    incorporated_state_province = types.StringType()
    fax = types.StringType()
    vat_tax_id_file_number = types.StringType()
    incorporated_number = types.StringType()
    zip_postal = types.StringType()
    dba = types.StringType()
    federal_tax_id = types.StringType()
    incoportated_country = types.StringType()
    telephone = types.StringType()
    city_town = types.StringType()
    country_company = types.StringType()
    subsidiary_reg_num = types.StringType()
    company_name = types.StringType()
    company_email = types.StringType()
    account_type = types.StringType()
    password = types.StringType()
    subsidiary_name = types.StringType()
    email = types.StringType()
    street_address = types.StringType()
    incorporated_address = types.StringType()

    status = types.StringType()
    account = types.StringType()

    checked = types.BooleanType(default=False)
    checked_by = types.StringType()

    #details = compound.ModelType(Log)
    #comments = compound.ModelType(Comment)

    created = types.DateTimeType(default=arrow.utcnow().naive)
    #created_at = types.DateTimeType()
    last_modified = types.DateTimeType()
    updated_by = types.DateTimeType()
    updated_at = types.DateTimeType()

    uri = types.StringType()
예제 #28
0
class Call(models.Model):
    '''
        Outbound call
    '''
    uuid = types.UUIDType(default=uuid.uuid4)
    # Specify where and how to call
    account = types.StringType(required=True)
    channel = types.StringType()
    callerid = types.StringType()
    max_retries = types.IntType(default=2)
    retry_time = types.IntType(default=300)
    wait_time = types.IntType(default=45)
    # If the call answers, connect it here
    context = types.StringType()
    extension = types.StringType()
    priority = types.IntType(default=1)
    # Set a variable for use in the extension logic
    set_var = types.StringType()
    # other stuff
    archive = types.StringType(default='no', choices=['yes', 'no'])
예제 #29
0
class ModifyTask(models.Model):
    '''
        Modify task

        This model is similar to Task.

        It lacks of require and default values on it's fields.

        The reason of it existence is that we need to validate
        every input data that came from outside the system, with
        this we prevent users from using PATCH to create fields
        outside the scope of the resource.
    '''
    uuid = types.UUIDType(default=uuid.uuid4)
    account = types.StringType()
    subject = types.StringType()
    description = types.StringType()
    data = types.StringType()
    assign = compound.ListType(types.StringType())
    public = types.BooleanType(default=False)
    source = types.StringType()
    destination = types.StringType()
    labels = types.DictType(types.StringType)
    start_time = types.TimestampType()
    ack_time = types.TimestampType()
    stop_time = types.TimestampType()
    deadline = types.TimestampType()
    duration = types.StringType()
    comments = compound.ListType(types.StringType())
    status = types.StringType(choices=['new', 'now', 'later', 'done'],
                              default='new',
                              required=True)
    history = compound.ListType(types.StringType())
    checked = types.BooleanType(default=False)
    checked_by = types.StringType()
    checked_at = types.TimestampType(default=arrow.utcnow().timestamp)
    created_by = types.StringType()
    created_at = types.TimestampType(default=arrow.utcnow().timestamp)
    last_update_by = types.StringType()
    last_update_at = types.TimestampType()
예제 #30
0
class SchematicsFieldsModel(BaseModel):
    # base fields
    type_string = types.StringType()
    type_int = types.IntType()
    type_uuid = types.UUIDType()
    type_IPv4 = types.IPv4Type()
    type_url = types.URLType()
    type_email = types.EmailType()
    type_number = types.NumberType(int, "integer")
    type_int = types.IntType()
    type_long = types.LongType()
    type_float = types.FloatType()
    type_decimal = types.DecimalType()
    type_md5 = types.MD5Type()
    type_sha1 = types.SHA1Type()
    type_boolean = types.BooleanType()
    type_date = types.DateType()
    type_datetime = types.DateTimeType()
    type_geopoint = types.GeoPointType()
    # type_multilingualstring = types.MultilingualStringType(default_locale='localized_value')

    # compound fields
    type_list = compound.ListType(types.StringType)
    type_dict = compound.DictType(
        types.IntType)  # dict values can be only integers
    type_list_of_dict = compound.ListType(compound.DictType,
                                          compound_field=types.StringType)
    type_dict_of_list = compound.DictType(compound.ListType,
                                          compound_field=types.IntType)
    type_model = compound.ModelType(NestedModel)
    type_list_model = compound.ListType(compound.ModelType(NestedModel))

    # reference fields
    type_ref_simplemodel = ModelReferenceType(SimpleModel)
    type_ref_usermodel = ModelReferenceType(User)

    class Options:
        # namespace = 'st'
        collection = 'st'
        serialize_when_none = False