== activity_log == id INTEGER notnull=0 default=None pk=1 created_at TEXT notnull=1 default=None pk=0 category TEXT notnull=1 default=None pk=0 entity_type TEXT notnull=1 default=None pk=0 entity_id INTEGER notnull=0 default=None pk=0 summary TEXT notnull=1 default=None pk=0 field TEXT notnull=0 default=None pk=0 old_value TEXT notnull=0 default=None pk=0 new_value TEXT notnull=0 default=None pk=0 INDEX idx_activity_log_category unique=0 cols=['category', 'created_at'] INDEX idx_activity_log_entity unique=0 cols=['entity_type', 'entity_id', 'created_at'] INDEX idx_activity_log_created unique=0 cols=['created_at'] == area_stations == area_id INTEGER notnull=1 default=None pk=1 station_id INTEGER notnull=1 default=None pk=2 FK: station_id -> watering_stations.id on_delete=CASCADE FK: area_id -> areas.id on_delete=CASCADE INDEX sqlite_autoindex_area_stations_1 unique=1 cols=['area_id', 'station_id'] == areas == id INTEGER notnull=0 default=None pk=1 name TEXT notnull=1 default=None pk=0 notes TEXT notnull=0 default="''" pk=0 created_at TEXT notnull=1 default=None pk=0 parent_id INTEGER notnull=0 default=None pk=0 sort_order INTEGER notnull=0 default=None pk=0 short_name TEXT notnull=0 default="''" pk=0 length_ft REAL notnull=0 default='0' pk=0 width_ft REAL notnull=0 default='0' pk=0 garden_area_sqft REAL notnull=0 default='0' pk=0 structure_features TEXT notnull=0 default="''" pk=0 sunlight TEXT notnull=0 default="''" pk=0 soil_environment TEXT notnull=0 default="''" pk=0 featured_image_path TEXT notnull=0 default="''" pk=0 sketch_rotation INTEGER notnull=0 default='0' pk=0 parent_pos_x REAL notnull=0 default=None pk=0 parent_pos_y REAL notnull=0 default=None pk=0 is_archived INTEGER notnull=0 default='0' pk=0 INDEX idx_areas_archived unique=0 cols=['is_archived'] == artifacts == id INTEGER notnull=0 default=None pk=1 kind TEXT notnull=1 default=None pk=0 title TEXT notnull=1 default=None pk=0 filename TEXT notnull=1 default=None pk=0 generated_at TEXT notnull=1 default=None pk=0 notes TEXT notnull=0 default="''" pk=0 INDEX idx_artifacts_kind unique=0 cols=['kind'] INDEX sqlite_autoindex_artifacts_1 unique=1 cols=['filename'] == chat_messages == id INTEGER notnull=0 default=None pk=1 session_id INTEGER notnull=1 default=None pk=0 created_at TEXT notnull=1 default=None pk=0 role TEXT notnull=1 default=None pk=0 text TEXT notnull=0 default="''" pk=0 photo_paths TEXT notnull=0 default="''" pk=0 tool_calls TEXT notnull=0 default="''" pk=0 tokens_used INTEGER notnull=0 default='0' pk=0 FK: session_id -> chat_sessions.id on_delete=CASCADE INDEX idx_chat_messages_session unique=0 cols=['session_id', 'id'] == chat_sessions == id INTEGER notnull=0 default=None pk=1 created_at TEXT notnull=1 default=None pk=0 ended_at TEXT notnull=0 default=None pk=0 title TEXT notnull=0 default="''" pk=0 summary TEXT notnull=0 default="''" pk=0 activity_log_id INTEGER notnull=0 default=None pk=0 INDEX idx_chat_sessions_created unique=0 cols=['created_at'] == field_note_targets == id INTEGER notnull=0 default=None pk=1 field_note_id INTEGER notnull=1 default=None pk=0 target_type TEXT notnull=1 default=None pk=0 target_id INTEGER notnull=1 default=None pk=0 is_primary INTEGER notnull=0 default='0' pk=0 FK: field_note_id -> field_notes.id on_delete=CASCADE INDEX idx_field_note_targets_unique unique=1 cols=['field_note_id', 'target_type', 'target_id'] INDEX idx_field_note_targets_fnid unique=0 cols=['field_note_id'] INDEX idx_field_note_targets_target unique=0 cols=['target_type', 'target_id'] == field_notes == id INTEGER notnull=0 default=None pk=1 created_at TEXT notnull=1 default=None pk=0 captured_at TEXT notnull=0 default=None pk=0 audio_path TEXT notnull=0 default=None pk=0 photo_paths TEXT notnull=0 default="''" pk=0 text TEXT notnull=0 default="''" pk=0 transcript TEXT notnull=0 default="''" pk=0 status TEXT notnull=1 default="'new'" pk=0 processed_at TEXT notnull=0 default=None pk=0 processing_notes TEXT notnull=0 default="''" pk=0 body TEXT notnull=0 default="''" pk=0 kind TEXT notnull=0 default="''" pk=0 comment_date TEXT notnull=0 default=None pk=0 parent_id INTEGER notnull=0 default=None pk=0 is_archived INTEGER notnull=0 default='0' pk=0 FK: parent_id -> field_notes.id on_delete=SET NULL INDEX idx_field_notes_archived unique=0 cols=['is_archived'] INDEX idx_field_notes_comment_date unique=0 cols=['comment_date', 'created_at'] INDEX idx_field_notes_status unique=0 cols=['status', 'created_at'] == overview_versions == id INTEGER notnull=0 default=None pk=1 entity_type TEXT notnull=1 default=None pk=0 entity_id INTEGER notnull=1 default=None pk=0 content TEXT notnull=1 default=None pk=0 created_at TEXT notnull=1 default=None pk=0 author TEXT notnull=1 default="'user'" pk=0 change_note TEXT notnull=0 default="''" pk=0 INDEX idx_overview_versions_entity unique=0 cols=['entity_type', 'entity_id', 'created_at'] == plantings == id INTEGER notnull=0 default=None pk=1 name TEXT notnull=1 default=None pk=0 year_id INTEGER notnull=0 default=None pk=0 source TEXT notnull=0 default="''" pk=0 notes TEXT notnull=0 default="''" pk=0 created_at TEXT notnull=1 default=None pk=0 status TEXT notnull=0 default="'planted'" pk=0 featured_image_path TEXT notnull=0 default="''" pk=0 is_archived INTEGER notnull=0 default='0' pk=0 FK: year_id -> years.id on_delete=SET NULL INDEX idx_plantings_archived unique=0 cols=['is_archived'] == plants == id INTEGER notnull=0 default=None pk=1 planting_id INTEGER notnull=0 default=None pk=0 species_id INTEGER notnull=0 default=None pk=0 variety_id INTEGER notnull=0 default=None pk=0 area_id INTEGER notnull=0 default=None pk=0 quantity TEXT notnull=0 default="''" pk=0 source TEXT notnull=0 default="''" pk=0 status TEXT notnull=0 default="'planted'" pk=0 notes TEXT notnull=0 default="''" pk=0 created_at TEXT notnull=1 default=None pk=0 featured_image_path TEXT notnull=0 default="''" pk=0 positions TEXT notnull=0 default="''" pk=0 is_archived INTEGER notnull=0 default='0' pk=0 FK: area_id -> areas.id on_delete=SET NULL FK: variety_id -> varieties.id on_delete=SET NULL FK: species_id -> species.id on_delete=SET NULL FK: planting_id -> plantings.id on_delete=SET NULL INDEX idx_plants_archived unique=0 cols=['is_archived'] == species == id INTEGER notnull=0 default=None pk=1 name TEXT notnull=1 default=None pk=0 common_name TEXT notnull=0 default="''" pk=0 description TEXT notnull=0 default="''" pk=0 created_at TEXT notnull=1 default=None pk=0 featured_image_path TEXT notnull=0 default="''" pk=0 plants_per_unit INTEGER notnull=0 default='1' pk=0 space_per_unit_sqft REAL notnull=0 default='1.0' pk=0 is_archived INTEGER notnull=0 default='0' pk=0 type TEXT notnull=1 default="'plant'" pk=0 primary_function TEXT notnull=1 default="'edible'" pk=0 INDEX idx_species_archived unique=0 cols=['is_archived'] INDEX sqlite_autoindex_species_1 unique=1 cols=['name'] == supplies == id INTEGER notnull=0 default=None pk=1 name TEXT notnull=1 default=None pk=0 category TEXT notnull=0 default="''" pk=0 amount TEXT notnull=0 default="''" pk=0 notes TEXT notnull=0 default="''" pk=0 created_at TEXT notnull=1 default=None pk=0 quantity_on_hand TEXT notnull=0 default="''" pk=0 quantity_needed TEXT notnull=0 default="''" pk=0 needed INTEGER notnull=0 default='0' pk=0 featured_image_path TEXT notnull=0 default="''" pk=0 is_archived INTEGER notnull=0 default='0' pk=0 INDEX idx_supplies_archived unique=0 cols=['is_archived'] == tool_suggestions == id INTEGER notnull=0 default=None pk=1 created_at TEXT notnull=1 default=None pk=0 session_id INTEGER notnull=0 default=None pk=0 name TEXT notnull=1 default=None pk=0 signature TEXT notnull=0 default="''" pk=0 why_useful TEXT notnull=0 default="''" pk=0 example_question TEXT notnull=0 default="''" pk=0 status TEXT notnull=1 default="'pending'" pk=0 FK: session_id -> chat_sessions.id on_delete=SET NULL INDEX idx_tool_suggestions_status unique=0 cols=['status', 'created_at'] == varieties == id INTEGER notnull=0 default=None pk=1 species_id INTEGER notnull=0 default=None pk=0 name TEXT notnull=1 default=None pk=0 description TEXT notnull=0 default="''" pk=0 created_at TEXT notnull=1 default=None pk=0 featured_image_path TEXT notnull=0 default="''" pk=0 plants_per_unit INTEGER notnull=0 default=None pk=0 space_per_unit_sqft REAL notnull=0 default=None pk=0 is_archived INTEGER notnull=0 default='0' pk=0 FK: species_id -> species.id on_delete=SET NULL INDEX idx_varieties_archived unique=0 cols=['is_archived'] == watering_stations == id INTEGER notnull=0 default=None pk=1 name TEXT notnull=1 default=None pk=0 notes TEXT notnull=0 default="''" pk=0 current_schedule TEXT notnull=0 default="''" pk=0 created_at TEXT notnull=1 default=None pk=0 featured_image_path TEXT notnull=0 default="''" pk=0 is_archived INTEGER notnull=0 default='0' pk=0 INDEX idx_watering_stations_archived unique=0 cols=['is_archived'] == years == id INTEGER notnull=0 default=None pk=1 year INTEGER notnull=1 default=None pk=0 notes TEXT notnull=0 default="''" pk=0 created_at TEXT notnull=1 default=None pk=0 featured_image_path TEXT notnull=0 default="''" pk=0 is_archived INTEGER notnull=0 default='0' pk=0 INDEX idx_years_archived unique=0 cols=['is_archived'] INDEX sqlite_autoindex_years_1 unique=1 cols=['year']