<commit_before>"""This module contains all of the app engine models for the application

.. module:: models

.. moduleauthor:: <NAME> <<EMAIL>>
.. moduleauthor:: <NAME> <<EMAIL>>
"""


from google.appengine.ext import db
from google.appengine.ext.db import polymodel

# Taken from the member profile section of the design document
class User(db.Model):
    """
    Stores user information
    
    .. method:: User()

       Creates a new User entity


    """
    pass

class UserRole(db.Model):
    """Maps a User to a Role

    .. method:: UserRole()

       Creates a new UserRole entity
    """
    pass

class Role(db.Model):
    """Contains the various roles in the chapter. Used in permissions

    .. method:: Role()

       Creates a new Role entity
    """
    pass

class Family(db.Model):
    """Contains the various families

    .. method:: Family()

       Creates a new Family entity
    """
    pass

class Address(db.Model):
    """Contains an address for a User

    .. method:: Address()

       Creates a new Address entity
    """
    pass

class Email(db.Model):
    """Contains an email address for a User

    .. method:: Email()

       Creates a new Email entity
    """
    pass

class PhoneNumber(db.Model):
    """Contains a phone number for a User

    .. method:: PhoneNumber()

       Creates a new PhoneNumber entity
    """
    pass

class ExampleModel(db.Model):
    """Example Model"""
    example_name = db.StringProperty(required=True)
    example_description = db.TextProperty(required=True)
    added_by = db.UserProperty()
    timestamp = db.DateTimeProperty(auto_now_add=True)

class Event(polymodel.PolyModel):
    """This models a general event type

    .. method:: Event(name, date, startTime, endTime[, description])

       Creates a new Event entity

       :param name: Name of event
       :type name: unicode
       :param date: Date of the event
       :type date: datetime.date
       :param startTime: Time event starts at
       :type startTime: datetime.time
       :param endTime: Time event ends at
       :type endTime: datetime.time
       :param description: Description of the event
       :type description: unicode

       :rtype: Event model instance
    """
    name = db.StringProperty(required=True)
    date = db.DateProperty(required=True)
    startTime = db.TimeProperty(required=True)
    endTime = db.TimeProperty(required=True)
    description = db.StringProperty()

class Location(db.Model):
    """This models a general location. For use with an event

    .. method:: Location(name, event[, address])

       Creates a new Location entity

       :param name: Name of Location
       :type name: unicode
       :param event: A reference to an existing Event entity
       :type event: application.models.Event
       :param address: Address of event
       :type address: google.appengine.ext.db.PostalAddress
    """
    name = db.StringProperty(required=True)
    event = db.ReferenceProperty(Event, required=True)
    address = db.PostalAddressProperty()

# Taken from the Service Event tracking section of the design document
class ServiceEvent(Event):
    """This models a service event
    
    .. method:: ServiceEvent([maxBro[,addInfo]])

       Creates a new ServiceEvent entity

       :param maxBro: Maximum number of brothers allowed at service Event
       :type maxBro: int
       :param addInfo: Additional information about service event
       :type addInfo: unicode
       :rtype: ServiceEvent
    """
    maxBro = db.IntegerProperty()
    addInfo = db.StringProperty()

class ServiceSignUp(db.Model):
    """This maps Users to ServiceEvents

    .. method:: ServiceSignUp(user, event)

       Creates a new ServiceSignUp entity

       :param user: User for service event sign up
       :type user: application.models.User
       :param event: Event that user is signing up for
       :type event: application.models.Event
    """
    user = db.ReferenceProperty(User, required=True)
    event = db.ReferenceProperty(ServiceEvent, required=True)

class ServiceReport(polymodel.PolyModel):
    """This is the abstract base type of ServiceReport

    .. method:: ServiceReport()

       Creates a new ServiceReport entity
    """
    pass

class InsideServiceReport(ServiceReport):
    """This is the Service Report type for an inside service event

    .. method:: InsideServiceReport()

       Creates a new InsideServiceReport entity
    """
    pass

class OutsideServiceReport(ServiceReport):
    """This is the Service Report type for an outside service event

    .. method:: OutsideServiceReport()

       Creates a new OutsideServiceReport entity
    """
    pass

class ServiceHour(db.Model):
    """Maps the hours for each brother to a Service Report

    .. method:: ServiceHour()

       Creates a new ServiceHour entity
    """
    pass

# Taken from the Member Contract section of the design document
class ChapterEvent(Event):
    """Takes care of a chapter meeting

    .. method:: ChapterEvent()

       Creates a new ChapterEvent entity
    """
    pass

class Contract(db.Model):
    """Stores contract types

    .. method:: Contract()

       Creates a new Contract entity
    """
    pass

class Requirement(polymodel.PolyModel):
    """A general base class for a contract requirement

    .. method:: Requirement()

       Creates a new Requirement entity
    """
    pass

class HourReq(Requirement):
    """Models Service Hours Requirements

    .. method:: HourReq()

       Creates a new HourReq entity
    """
    pass

class DuesReq(Requirement):
    """Models Dues Requirements

    .. method:: DuesReq()

       Creates a new DuesReq entity
    """
    pass

class AttendanceReq(Requirement):
    """Models Attendance Requirements

    .. method:: AttendanceReq()

       Creates a new AttendanceReq entity
    """
    pass

# Taken from the blog section of the design document
class Post(db.Model):
    """Contains a Blog Post

    .. method:: Post()

       Creates a new Post entity
    """
    pass

class Comment(db.Model):
    """Contains a comment for a Blog Post

    .. method:: Comment()

       Creates a new Comment entity
    """
    pass
<commit_msg>Added docstrings to all of the models in the models.py file<commit_after>"""This module contains all of the app engine models for the application

.. module:: models

.. moduleauthor:: <NAME> <<EMAIL>>
.. moduleauthor:: <NAME> <<EMAIL>>
"""


from google.appengine.ext import db
from google.appengine.ext.db import polymodel

# Taken from the member profile section of the design document
class User(db.Model):
    """
    Stores user information
    
    .. method:: User(firstName, lastName, cwruID, salt, hash[, middleName, contractType, family, big, avatar])

       Creates a new User entity

       :param firstName: User's first name
       :type firstName: unicode

       :param lastName: User's last name
       :type lastName: unicode

       :param cwruID: User's Case network ID.
       :type cwruID: unicode

       :param salt: A unique string (per user) used in password hashing
       :type salt: unicode

       :param hash: A hash of the user's password with the user's salt
       :type hash: unicode

       :param middleName: User's middle name
       :type middleName: unicode

       :param contractType: User's Contract type
       :type contractType: application.models.Contract

       :param family: User's family
       :type family: application.models.Family

       :param big: User's big
       :type big: application.models.User

       :param avatar: User's gravatar user name
       :type avatar: unicode
    """
    pass

class UserRole(db.Model):
    """Maps a User to a Role

    .. method:: UserRole(user, role)

       Creates a new UserRole entity

       :param user: The User associated with this UserRole entity
       :type user: application.models.User

       :param role: The Role associated with this UserRole entity
       :type role: application.models.Role
    """
    pass

class Role(db.Model):
    """Contains the various roles in the chapter. Used in permissions

    .. method:: Role(name[, desc])

       Creates a new Role entity

       :param name: Name of the Role - e.g. admin
       :type name: unicode

       :param desc: Description of the Role
       :type desc: unicode
    """
    pass

class Family(db.Model):
    """Contains the various families

    .. method:: Family(name[, founder])

       Creates a new Family entity

       :param name: Name of the Family - e.g. Boehms
       :type name: unicode

       :param founder: User that founded the family
       :type name: application.models.User
    """
    pass

class Address(db.Model):
    """Contains an address for a User

    .. method:: Address(user, address[, name])

       Creates a new Address entity

       :param user: User this address belongs to
       :type user: application.models.User

       :param address: Address
       :type address: google.appengine.ext.db.PostalAddress 

       :param name: Nickname for Address - e.g. home
       :type name: unicode
    """
    pass

class Email(db.Model):
    """Contains an email address for a User

    .. method:: Email(user, email[, name])

       Creates a new Email entity

       :param user: User this email address belongs to
       :type user: application.model.User

       :param email: User's email
       :type email: google.appengine.ext.db.Email

       :param name: Optional nickname for address - e.g. school
       :type name: unicode
    """
    pass

class PhoneNumber(db.Model):
    """Contains a phone number for a User

    .. method:: PhoneNumber(user, number[, name])

       Creates a new PhoneNumber entity

       :param user: User this phone number belongs to
       :type user: application.model.User

       :param number: Phone number with no dashes or spaces - e.g. "(111) 555-3333" is stored as 1115553333
       :type number: int

       :param name: Optional nickname for phone number - e.g. cell
       :type name: unicode
    """
    pass

class ExampleModel(db.Model):
    """Example Model"""
    example_name = db.StringProperty(required=True)
    example_description = db.TextProperty(required=True)
    added_by = db.UserProperty()
    timestamp = db.DateTimeProperty(auto_now_add=True)

class Event(polymodel.PolyModel):
    """This models a general event type

    .. method:: Event(name, date, startTime, endTime[, description])

       Creates a new Event entity

       :param name: Name of event
       :type name: unicode
    
       :param date: Date of the event
       :type date: datetime.date
    
       :param startTime: Time event starts at
       :type startTime: datetime.time
    
       :param endTime: Time event ends at
       :type endTime: datetime.time
    
       :param description: Description of the event
       :type description: unicode

       :rtype: Event model instance
    """
    name = db.StringProperty(required=True)
    date = db.DateProperty(required=True)
    startTime = db.TimeProperty(required=True)
    endTime = db.TimeProperty(required=True)
    description = db.StringProperty()

class Location(db.Model):
    """This models a general location. For use with an event

    .. method:: Location(name, event[, address])

       Creates a new Location entity

       :param name: Name of Location
       :type name: unicode
    
       :param event: A reference to an existing Event entity
       :type event: application.models.Event
    
       :param address: Address of event
       :type address: google.appengine.ext.db.PostalAddress
    """
    name = db.StringProperty(required=True)
    event = db.ReferenceProperty(Event, required=True)
    address = db.PostalAddressProperty()

# Taken from the Service Event tracking section of the design document
class ServiceEvent(Event):
    """This models a service event
    
    .. method:: ServiceEvent([maxBro[,addInfo]])

       Creates a new ServiceEvent entity

       :param maxBro: Maximum number of brothers allowed at service Event
       :type maxBro: int
    
       :param addInfo: Additional information about service event
       :type addInfo: unicode
    
       :rtype: ServiceEvent
    """
    maxBro = db.IntegerProperty()
    addInfo = db.StringProperty()

class ServiceSignUp(db.Model):
    """This maps Users to ServiceEvents

    .. method:: ServiceSignUp(user, event)

       Creates a new ServiceSignUp entity

       :param user: User for service event sign up
       :type user: application.models.User
    
       :param event: Event that user is signing up for
       :type event: application.models.Event
    """
    user = db.ReferenceProperty(User, required=True)
    event = db.ReferenceProperty(ServiceEvent, required=True)

class ServiceReport(polymodel.PolyModel):
    """This is the abstract base type of ServiceReport

    .. method:: ServiceReport()

       Creates a new ServiceReport entity

    .. warning::
       This class is an abstract base class. Do not to be instantiate an instance of this class
    """
    pass

class InsideServiceReport(ServiceReport):
    """This is the Service Report type for an inside service event

    .. method:: InsideServiceReport(event)

       Creates a new InsideServiceReport entity

       :param event: Service Event that this report is for
       :type event: application.models.ServiceEvent
    """
    pass

class OutsideServiceReport(ServiceReport):
    """This is the Service Report type for an outside service event

    .. method:: OutsideServiceReport(name, desc, loc, date)

       Creates a new OutsideServiceReport entity

       :param name: Name of event this report is for
       :type name: unicode

       :param desc: Description of event this report is for
       :type desc: unicode

       :param loc: Description of location of event this report is for
       :type loc: unicode

       :param date: Date of event this report is for
       :type date: datetime.date
    """
    pass

class ServiceHour(db.Model):
    """Maps the hours for each brother to a Service Report

    .. method:: ServiceHour(user, report, minutes[, dMinutes])

       Creates a new ServiceHour entity

       :param user: User this service hour is for
       :type user: application.models.User

       :param report: Service report this hour entry is for
       :type report: application.models.ServiceReport

       :param minutes: Number of minutes of service provided
       :type minutes: int

       :param dMinutes: Number of minutes spent driving
       :type dMinutes: int
    """
    pass

# Taken from the Member Contract section of the design document
class ChapterEvent(Event):
    """Takes care of a chapter meeting

    .. method:: ChapterEvent()

       Creates a new ChapterEvent entity
    """
    pass

class Contract(db.Model):
    """Stores contract types

    .. method:: Contract(name)

       Creates a new Contract entity

       :param name: Name of contract - e.g. associate
       :type name: unicode
    """
    pass

class Requirement(polymodel.PolyModel):
    """A general base class for a contract requirement

    .. method:: Requirement(contract, dueDate[, name])

       Creates a new Requirement entity

       :param contract: Contract this requirement is associated with
       :type contract: application.models.Contract

       :param dueDate: Date this requirement is due
       :type dueDate: datetime.date

       :param name: Optional nickname for requirement - e.g. inside hours
       :type name: unicode
    """
    pass

class HourReq(Requirement):
    """Models Service Hours Requirements

    .. method:: HourReq(min, type)

       Creates a new HourReq entity

       :param min: Minutes needed to meet this requirement
       :type min: int

       :param type: Type of minutes needed - e.g. inside
       :type type: unicode
    """
    pass

class DuesReq(Requirement):
    """Models Dues Requirements

    .. method:: DuesReq(amount)

       Creates a new DuesReq entity

       :param amount: Amount of money need to meet this requirement
       :type amount: float
    """
    pass

class AttendanceReq(Requirement):
    """Models Attendance Requirements

    .. method:: AttendanceReq(amount, type)

       Creates a new AttendanceReq entity

       :param amount: Amount of events needed to meet this requirement. Allows for fractions of events to be specified
       :type amount: float

       :param type: Type of event needed - e.g. ServiceEvent
       :type type: unicode
    """
    pass

# Taken from the blog section of the design document
class Post(db.Model):
    """Contains a Blog Post

    .. method:: Post(title, datetime, text, author)

       Creates a new Post entity

       :param title: Title of Blog post
       :type title: unicode

       :param datetime: Date and time of posting
       :type datetime: datetime.datetime

       :param text: Content of post
       :type text: unicode

       :param author: User that made this post
       :type author: application.models.User
    """
    pass

class Comment(db.Model):
    """Contains a comment for a Blog Post

    .. method:: Comment(post, datetime, author, text)

       Creates a new Comment entity

       :param post: Post this comment is associated with
       :type post: application.models.Post

       :param datetime: Date and time of comment
       :type datetime: datetime.datetime

       :param author: User that posted this comment
       :type author: application.models.User

       :param text: Content of comment
       :type text: unicode
    """
    pass

{'fraction_non_alphanumeric': 0.08525371778862527, 'fraction_numerical': 0.0011352026336701102, 'mean_word_length': 2.663755458515284, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 15, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6312473', 'n_tokens_mistral': 4773, 'n_tokens_neox': 4563, 'n_words': 1831}