FROM
packages
WHERE
- deleted IS FALSE
+ deleted_at IS NULL
AND
arch = %s
ORDER BY
- name, created_at DESC""",
- "src",
+ name,
+ created_at DESC
+ """, "src",
)
def get_by_id(self, pkg_id):
FROM
packages
WHERE
- deleted IS FALSE
+ deleted_at IS NULL
AND
- uuid = %s""",
- uuid,
+ uuid = %s
+ """, uuid,
)
async def create(self, archive):
LEFT JOIN
packages ON search_index.package_id = packages.id
WHERE
- packages.deleted IS FALSE
+ packages.deleted_at IS NULL
AND
search_index.document @@ websearch_to_tsquery('english', %s)
ORDER BY
return NotImplemented
- def delete(self):
- self._set_attribute("deleted", True)
+ async def delete(self, user=None):
+ # Mark as deleted
+ self._set_attribute_now("deleted_at")
+ if user:
+ self._set_attribute("deleted_by", user)
@property
def uuid(self):
recommends text[] DEFAULT ARRAY[]::text[] NOT NULL,
suggests text[] DEFAULT ARRAY[]::text[] NOT NULL,
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
- deleted boolean DEFAULT false NOT NULL,
digest_type text NOT NULL,
- digest bytea NOT NULL
+ digest bytea NOT NULL,
+ deleted_at timestamp without time zone,
+ deleted_by integer
);
packages.summary,
packages.description
FROM public.packages
- WHERE ((packages.deleted IS FALSE) AND (packages.arch = 'src'::text))
+ WHERE ((packages.deleted_at IS NULL) AND (packages.arch = 'src'::text))
ORDER BY packages.name, packages.created_at DESC
)
SELECT p.id AS package_id,
CREATE INDEX packages_name ON public.packages USING btree (name);
---
--- Name: packages_src_created_at; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX packages_src_created_at ON public.packages USING btree (created_at DESC) WHERE ((deleted IS FALSE) AND (arch = 'src'::text));
-
-
---
--- Name: packages_uuid; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE UNIQUE INDEX packages_uuid ON public.packages USING btree (uuid) WHERE (deleted IS FALSE);
-
-
--
-- Name: repo_builds_build_id; Type: INDEX; Schema: public; Owner: -
--
ADD CONSTRAINT packages_commit_id FOREIGN KEY (commit_id) REFERENCES public.sources_commits(id);
+--
+-- Name: packages packages_deleted_by; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY public.packages
+ ADD CONSTRAINT packages_deleted_by FOREIGN KEY (deleted_by) REFERENCES public.users(id);
+
+
--
-- Name: repo_builds repo_builds_added_by; Type: FK CONSTRAINT; Schema: public; Owner: -
--