Advertisement
Guest User

Untitled

a guest
Mar 15th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.13 KB | None | 0 0
  1. from db import Base
  2. from datetime import datetime
  3. from sqlalchemy import Column, Integer, String, ForeignKey, DateTime, Boolean, Text, Float
  4. from sqlalchemy.orm import relationship
  5. from werkzeug.security import generate_password_hash, check_password_hash
  6. import uuid
  7.  
  8. # Define application Bases
  9.  
  10.  
  11. class User(Base):
  12. __tablename__ = 'users'
  13. id = Column(Integer, primary_key=True)
  14. first_name = Column(String(64), nullable=False)
  15. last_name = Column(String(64), nullable=False)
  16. username = Column(String(64), unique=True, nullable=False, index=True)
  17. password = Column(String(256), nullable=False)
  18. active = Column(Boolean, default=1)
  19. email = Column(String(120), unique=True, nullable=False)
  20. last_login = Column(DateTime)
  21. login_count = Column(Integer)
  22. fail_login_count = Column(Integer)
  23. created_on = Column(DateTime, default=datetime.now, nullable=True)
  24. changed_on = Column(DateTime, default=datetime.now, nullable=True)
  25. created_by_fk = Column(Integer)
  26. changed_by_fk = Column(Integer)
  27. api_key = Column(String(255))
  28.  
  29. def __init__(self, username, password):
  30. self.username = username
  31. self.set_password(password)
  32. self.api_key = uuid.uuid4()
  33.  
  34. def is_authenticated(self):
  35. return True
  36.  
  37. def is_active(self):
  38. return True
  39.  
  40. def is_anonymous(self):
  41. return False
  42.  
  43. def get_id(self):
  44. return int(self.id)
  45.  
  46. def set_password(self, password):
  47. self.password = generate_password_hash(password)
  48.  
  49. def check_password(self, password):
  50. return check_password_hash(self.password, password)
  51.  
  52. def __repr__(self):
  53. if self.last_name and self.first_name:
  54. return '{} {}'.format(
  55. self.first_name,
  56. self.last_name
  57. )
  58.  
  59.  
  60. class IPData(Base):
  61. __tablename__ = 'ipdata'
  62. id = Column(Integer, primary_key=True)
  63. created_date = Column(DateTime, onupdate=datetime.now)
  64. ip = Column(String(15), index=True)
  65. user_agent = Column(String(255))
  66. first_name = Column(String(255))
  67. last_name = Column(String(255))
  68. email = Column(String(255))
  69. home_phone = Column(String(15))
  70. cell_phone = Column(String(15))
  71. address1 = Column(String(255))
  72. address2 = Column(String(255))
  73. city = Column(String(255))
  74. state = Column(String(2))
  75. zip_code = Column(String(5))
  76. zip_4 = Column(Integer)
  77. country_name = Column(String(255))
  78. country_code = Column(String(2))
  79. country_code3 = Column(String(3))
  80. time_zone = Column(String(50))
  81. latitude = Column(Float(50))
  82. longitude = Column(Float(50))
  83. metro_code = Column(String(10))
  84. dma_code = Column(String(3))
  85. area_code = Column(String(3))
  86. geo_city = Column(String(255))
  87. postal_code = Column(String(5))
  88. region = Column(String(50))
  89. region_name = Column(String(255))
  90. credit_range = Column(String(50))
  91. car_year = Column(Integer)
  92. car_make = Column(String(255))
  93. car_model = Column(String(255))
  94. ppm_type = Column(String(10))
  95. ppm_indicator = Column(String(10))
  96. ppm_segment = Column(String(50))
  97. auto_trans_date = Column(String(50))
  98. last_seen = Column(String(50))
  99. birth_year = Column(Integer)
  100. income_range = Column(String(50))
  101. home_owner_renter = Column(String(50))
  102. auto_purchase_type = Column(String(100))
  103. processed = Column(Boolean, default=False)
  104. validated = Column(Boolean, default=False)
  105.  
  106. def __repr__(self):
  107. return 'Visitor from {} on {}'.format(
  108. self.ip,
  109. self.created_date
  110. )
  111.  
  112. def person_name(self):
  113. if self.first_name and self.last_name:
  114. return '{} {}'.format(
  115. self.first_name,
  116. self.last_name
  117. )
  118.  
  119. def person_location(self):
  120. if self.address1:
  121. return '{} {} {} {} {}'.format(
  122. self.address1,
  123. self.address2,
  124. self.city, self.state, self.zip_code
  125. )
  126.  
  127. def contact_info(self):
  128. if self.home_phone or self.cell_phone:
  129. return '{} {}'.format(
  130. self.home_phone,
  131. self.cell_phone
  132. )
  133.  
  134. def auto_data(self):
  135. if self.car_year and self.car_model:
  136. return '{} {} {}'.format(
  137. self.car_year,
  138. self.car_make,
  139. self.car_model
  140. )
  141.  
  142. def buyer(self):
  143. if self.auto_trans_date:
  144. return '{} {} {}'.format(
  145. self.auto_trans_date,
  146. self.credit_range,
  147. self.auto_purchase_type
  148. )
  149.  
  150. def purchase(self):
  151. if self.ppm_type and self.ppm_segment:
  152. return '{} {} {}'.format(
  153. self.ppm_type,
  154. self.ppm_segment,
  155. self.ppm_indicator
  156. )
  157.  
  158. def geo_data(self):
  159. return '{} {} {} {} {} {} {} {} {} {} {}'.format(
  160. self.latitude,
  161. self.longitude,
  162. self.time_zone,
  163. self.geo_city,
  164. self.region,
  165. self.postal_code,
  166. self.country_name,
  167. self.country_code,
  168. self.country_code3,
  169. self.metro_code,
  170. self.dma_code
  171. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement