integratedhub/db/interfaces.ts
open-swe-dev-andrinoid[bot] f88da558b1
[WIP]: Implement Landlord Approval Mechanism for Tenant Leases (#127)
* Apply patch [skip ci]

* Apply patch [skip ci]

* Apply patch [skip ci]

* Apply patch [skip ci]

* Apply patch [skip ci]

* Apply patch [skip ci]

* Apply patch [skip ci]

* Apply patch [skip ci]

* Apply patch [skip ci]

* Apply patch [skip ci]

* Apply patch [skip ci]

* Apply patch [skip ci]

* Apply patch [skip ci]

* Apply patch [skip ci]

* Apply patch [skip ci]

* Apply patch [skip ci]

* Apply patch [skip ci]

* Apply patch [skip ci]

* Apply patch [skip ci]

---------

Co-authored-by: open-swe-dev-andrinoid[bot] <open-swe-dev-andrinoid@users.noreply.github.com>
2026-01-28 16:48:47 -06:00

281 lines
6.9 KiB
TypeScript

// ========================================
// TypeScript Interfaces for all pgTables
// ========================================
export interface User {
id: string;
name?: string | null;
email?: string | null;
phone?: string | null;
address_1?: string | null;
address_2?: string | null;
city?: string | null;
state?: string | null;
zip?: string | null;
country?: string | null;
user_type?: string | null;
onboarded_landlord?: boolean | null;
onboarded_tenant?: boolean | null;
email_verified?: boolean | null;
banking_setup_complete?: boolean | null;
onboarding_step?: number | null;
notification_preferences_json?: string | null;
payment_preferences_json?: string | null;
encrypted_data?: string | null;
started_on?: number | null;
updated_on?: number | null;
}
export interface Role {
id: string;
description?: string | null;
}
export interface UserRole {
id: string;
userId?: string | null;
roleId?: string | null;
created_on?: number | null;
updated_on?: number | null;
}
export interface StateKey {
seal_key: string;
state_id: string;
cookie_hash: string;
created_on: number;
}
export interface WebToken {
token_id: string;
state_id: string;
user_id: string;
token_type: string;
token_value: string;
expires_on: number;
created_on: number;
updated_on: number;
last_used_on?: number | null;
is_active?: boolean | null;
metadata?: any | null;
}
export interface Obligation {
id: string;
user_id?: string | null;
description?: string | null;
amount?: number | null;
frequency?: string | null;
due_date?: number | null;
encrypted_data?: string | null;
created_on?: number | null;
updated_on?: number | null;
}
export interface Income {
id: string;
user_id?: string | null;
source?: string | null;
amount?: number | null;
frequency?: string | null;
received_date?: number | null;
encrypted_data?: string | null;
created_on?: number | null;
updated_on?: number | null;
}
export interface FinancialBalance {
id: string;
user_id?: string | null;
balance?: number | null;
balance_date?: number | null;
encrypted_data?: string | null;
created_on?: number | null;
updated_on?: number | null;
}
export interface Property {
id: string;
title?: string | null;
description?: string | null;
address_1?: string | null;
address_2?: string | null;
city?: string | null;
state?: string | null;
zip?: string | null;
country?: string | null;
bedrooms?: number | null;
bathrooms?: number | null;
square_footage?: number | null;
lot_size?: number | null;
year_built?: number | null;
price?: number | null;
property_type?: string | null;
listing_status?: string | null;
rental_status?: string | null;
monthly_rent?: number | null;
security_deposit?: number | null;
default_payment_method_id?: string | null;
lease_duration_months?: number | null;
amenities?: string | null;
property_photos_count?: number | null;
image_url?: string | null;
encrypted_data?: string | null;
created_on?: number | null;
updated_on?: number | null;
owner_id?: string | null;
}
export interface RentSchedule {
id: string;
property_id?: string | null;
rent_amount?: number | null;
due_day?: number | null;
late_fee_amount?: number | null;
grace_period_days?: number | null;
payment_methods_allowed?: string | null;
created_on?: number | null;
updated_on?: number | null;
}
export interface Lease {
id: string;
title?: string | null;
property_id?: string | null;
property_address?: string | null;
tenant_id?: string | null;
owner_id?: string | null;
start_date?: number | null;
end_date?: number | null;
rent?: number | null;
security_deposit?: number | null;
default_payment_method_id?: string | null;
lease_status?: string | null;
lease_document_url?: string | null;
payment_schedule_id?: string | null;
late_fee_rules?: string | null;
auto_renewal?: boolean | null;
approval_status?: string | null;
approval_requested_at?: number | null;
approved_at?: number | null;
approved_by?: string | null;
rejection_reason?: string | null;
encrypted_data?: string | null;
created_on?: number | null;
updated_on?: number | null;
}
export interface PaymentMethod {
id: string;
user_id?: string | null;
method_type?: string | null;
bank_name?: string | null;
account_type?: string | null;
routing_number_encrypted?: string | null;
account_number_encrypted?: string | null;
is_default?: boolean | null;
created_on?: number | null;
updated_on?: number | null;
}
export interface PropertyMedia {
id: string;
property_id?: string | null;
media_type?: string | null;
file_url?: string | null;
file_name?: string | null;
display_order?: number | null;
created_on?: number | null;
}
export interface LeaseDocument {
id: string;
lease_id?: string | null;
document_type?: string | null;
file_url?: string | null;
file_name?: string | null;
signed_by_landlord?: boolean | null;
signed_by_tenant?: boolean | null;
signature_date?: number | null;
created_on?: number | null;
}
export interface TenantApplication {
id: string;
property_id?: string | null;
applicant_id?: string | null;
application_status?: string | null;
application_data_encrypted?: string | null;
document_urls_json?: any | null;
submitted_on?: number | null;
reviewed_on?: number | null;
}
export interface TenantInvite {
id: string;
landlord_id?: string | null;
property_id?: string | null;
available_on?: number | null;
invited_emails?: string | null;
created_on?: number | null;
updated_on?: number | null;
}
export interface PaymentTransaction {
id: string;
lease_id?: string | null;
amount?: number | null;
payment_date?: number | null;
payment_method?: string | null;
transaction_status?: string | null;
stripe_payment_id?: string | null;
created_on?: number | null;
}
export interface Reminder {
id: string;
user_id: string;
lease_id?: string | null;
reminder_type: string;
title: string;
description?: string | null;
due_date: number;
is_completed?: boolean | null;
created_on?: number | null;
updated_on?: number | null;
}
export interface Message {
id: string;
lease_id?: string | null;
sender_id?: string | null;
recipient_id?: string | null;
message_type?: string | null;
subject?: string | null;
parent_message_id?: string | null;
attachments_json?: any | null;
content?: string | null;
content_encrypted?: string | null;
is_read?: boolean | null;
created_on?: number | null;
}
export interface MaintenanceRequest {
id: string;
property_id?: string | null;
tenant_id?: string | null;
request_type?: string | null;
description?: string | null;
status?: string | null;
priority?: string | null;
created_on?: number | null;
resolved_on?: number | null;
}
export interface UserPin {
user_id: string;
pin: string;
created_on: number;
modified_on: number;
}