Spaces:
Running
Running
File size: 2,903 Bytes
d2d3ca7 190ecd4 d2d3ca7 9135c43 d2d3ca7 190ecd4 d2d3ca7 6ed422e 190ecd4 d2d3ca7 190ecd4 d2d3ca7 6ed422e 190ecd4 d2d3ca7 190ecd4 d2d3ca7 190ecd4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
from peewee import *
from datetime import datetime
from playhouse.sqlite_ext import *
import json
# Initialize database
db = SqliteExtDatabase('estate.db')
db_description = """Table "project" - list of real estate projects (novostavby) in Czech Republic
url: url of the project.
title: title of the project
deposit: percentage of payment before completion
min_price: lowest available apartment price in CZK with VAT
status: status of the project (preparation, selling, sold out)
city: city of the project
lat: GPS latitude coordinates
lng: GPS longitude coordinates
start_year: year of construction start
end_year: estimated year of construction end
developer: name of the construction company
ignore: if True, the project does not have any apartments for sale
Apartment prices are stored in separate columns for each type:
price_1kk, price_2kk, price_3kk, etc.
"""
class Project(Model):
# Basic information
url = CharField(unique=True)
title = CharField(null=True)
# Financial information
deposit = IntegerField(null=True) # percentage
min_price = IntegerField(null=True) # CZK with VAT
# Apartment prices by type
price_1kk = IntegerField(null=True)
price_2kk = IntegerField(null=True)
price_3kk = IntegerField(null=True)
price_4kk = IntegerField(null=True)
price_5kk = IntegerField(null=True)
price_6kk = IntegerField(null=True)
price_7kk = IntegerField(null=True)
price_8kk = IntegerField(null=True)
price_9kk = IntegerField(null=True)
price_10kk = IntegerField(null=True)
price_1_1 = IntegerField(null=True)
price_2_1 = IntegerField(null=True)
price_3_1 = IntegerField(null=True)
price_4_1 = IntegerField(null=True)
price_5_1 = IntegerField(null=True)
price_6_1 = IntegerField(null=True)
price_7_1 = IntegerField(null=True)
price_8_1 = IntegerField(null=True)
price_9_1 = IntegerField(null=True)
price_10_1 = IntegerField(null=True)
# Project information
status = CharField(null=True)
city = CharField(null=True)
lat = FloatField(null=True)
lng = FloatField(null=True)
start_year = IntegerField(null=True)
end_year = IntegerField(null=True)
developer = CharField(null=True)
# Additional data
ignore = BooleanField(null=True)
content = TextField(null=True) # Keep raw content for reference
structure = JSONField(null=True) # Keep JSON for backward compatibility
created_at = DateTimeField(default=datetime.now)
class Meta:
database = db
def init_database():
"""Initialize the database and create tables"""
print("Initializing database...")
db.connect()
db.drop_tables([Project])
db.create_tables([Project])
print("Created tables successfully!")
db.close()
if __name__ == "__main__":
init_database()
|