ALTER TABLE users ADD COLUMN display_name TEXT; ALTER TABLE users ADD COLUMN active INTEGER NOT NULL DEFAULT 1; ALTER TABLE users ADD COLUMN last_login_at TEXT; ALTER TABLE users ADD COLUMN updated_at TEXT NOT NULL DEFAULT (datetime('now')); ALTER TABLE users ADD COLUMN failed_attempts INTEGER NOT NULL DEFAULT 0; ALTER TABLE users ADD COLUMN locked_until TEXT; ALTER TABLE animal_history ADD COLUMN user_id INTEGER REFERENCES users(id) ON DELETE SET NULL; ALTER TABLE care_rounds ADD COLUMN performed_by_user_id INTEGER REFERENCES users(id) ON DELETE SET NULL; CREATE TABLE audit_log ( id INTEGER PRIMARY KEY AUTOINCREMENT, user_id INTEGER, action TEXT NOT NULL, method TEXT NOT NULL, path TEXT NOT NULL, entity_type TEXT, entity_id INTEGER, summary TEXT, metadata TEXT, ip_address TEXT, created_at TEXT NOT NULL DEFAULT (datetime('now')), FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE SET NULL ); CREATE INDEX idx_audit_log_created ON audit_log(created_at DESC); CREATE INDEX idx_audit_log_user ON audit_log(user_id,created_at DESC);