{ "tables": [ { "name": "account", "columns": [ { "name": "description", "sqltype": "varchar(128)", "notnull": true } ] }, { "name": "tenant", "columns": [ { "name": "salutation", "sqltype": "varchar(128)" }, { "name": "firstname", "sqltype": "varchar(128)" }, { "name": "lastname", "sqltype": "varchar(128)" }, { "name": "address1", "sqltype": "varchar(128)" }, { "name": "address2", "sqltype": "varchar(128)" }, { "name": "address3", "sqltype": "varchar(128)" }, { "name": "zip", "sqltype": "varchar(10)" }, { "name": "city", "sqltype": "varchar(128)" }, { "name": "phone1", "sqltype": "varchar(64)" }, { "name": "phone2", "sqltype": "varchar(64)" }, { "name": "iban", "sqltype": "varchar(64)" }, { "name": "account", "sqltype": "integer", "notnull": true, "foreignkey": true } ] }, { "name": "premise", "columns": [ { "name": "description", "sqltype": "varchar(128)" }, { "name": "street", "sqltype": "varchar(128)", "notnull": true }, { "name": "zip", "sqltype": "varchar(10)", "notnull": true }, { "name": "city", "sqltype": "varchar(128)", "notnull": true } ] }, { "name": "flat", "columns": [ { "name": "description", "sqltype": "varchar(128)" }, { "name": "premise", "sqltype": "integer", "foreignkey": true }, { "name": "area", "sqltype": "numeric(10,2)", "notnull": true }, { "name": "flat_no", "sqltype": "integer" } ] }, { "name": "overhead_advance", "columns": [ { "name": "description", "sqltype": "varchar(128)" }, { "name": "amount", "sqltype": "numeric(10,4)", "notnull": true }, { "name": "startdate", "sqltype": "date" }, { "name": "enddate", "sqltype": "date" } ] }, { "name": "overhead_advance_flat_mapping", "columns": [ { "name": "overhead_advance", "sqltype": "integer", "notnull": true, "foreignkey": true }, { "name": "flat", "sqltype": "integer", "notnull": true, "foreignkey": true } ] }, { "name": "parking", "columns": [ { "name": "description", "sqltype": "varchar(128)" }, { "name": "premise", "sqltype": "integer", "foreignkey": true } ] }, { "name": "commercial_premise", "columns": [ { "name": "description", "sqltype": "varchar(128)" }, { "name": "premise", "sqltype": "integer", "foreignkey": true } ] }, { "name": "tenancy", "columns": [ { "name": "description", "sqltype": "varchar(128)" }, { "name": "tenant", "sqltype": "integer", "notnull": true, "foreignkey": true }, { "name": "flat", "sqltype": "integer", "notnull": false, "foreignkey": true }, { "name": "parking", "sqltype": "integer", "notnull": false, "foreignkey": true }, { "name": "commercial_premise", "sqltype": "integer", "notnull": false, "foreignkey": true }, { "name": "startdate", "sqltype": "date", "notnull": true }, { "name": "enddate", "sqltype": "date", "notnull": false } ], "tableConstraints": [ "constraint tenancy_only_one_object check ((flat is not null and parking is null and commercial_premise is null) or (flat is null and parking is not null and commercial_premise is null) or (flat is null and parking is null and commercial_premise is not null))" ] }, { "name": "fee", "columns": [ { "name": "description", "sqltype": "varchar(128)" }, { "name": "amount", "sqltype": "numeric(10,2)", "notnull": true }, { "name": "fee_type", "sqltype": "varchar(10)", "notnull": true }, { "name": "startdate", "sqltype": "date" }, { "name": "enddate", "sqltype": "date" } ], "tableConstraints": [ "constraint fee_fee_type check (fee_type = 'per_area' or fee_type = 'total')" ] }, { "name": "tenancy_fee_mapping", "columns": [ { "name": "tenancy", "sqltype": "integer", "notnull": true, "foreignkey": true }, { "name": "fee", "sqltype": "integer", "notnull": true, "foreignkey": true } ] }, { "name": "account_entry", "columns": [ { "name": "description", "sqltype": "varchar(128)", "notnull": true }, { "name": "account", "sqltype": "integer", "notnull": true, "foreignkey": true }, { "name": "created_at", "sqltype": "timestamp", "notnull": true, "default": "now()" }, { "name": "amount", "sqltype": "numeric(10,2)", "notnull": true } ] } ] }