Initial commit: GovAI 政务AI平台

This commit is contained in:
freedakgmail
2026-06-15 23:48:37 +08:00
commit 0f490f72a9
245 changed files with 51669 additions and 0 deletions
@@ -0,0 +1,51 @@
-- 000003: 审核表、收藏表、评分表
-- 应用审核表
CREATE TABLE app_reviews (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
app_id UUID NOT NULL REFERENCES applications(id) ON DELETE CASCADE,
version VARCHAR(20) NOT NULL,
submitter_id UUID NOT NULL REFERENCES users(id),
reviewer_id UUID REFERENCES users(id),
status VARCHAR(20) NOT NULL DEFAULT 'pending'
CHECK (status IN ('pending', 'approved', 'rejected', 'withdrawn')),
submit_comment TEXT,
review_comment TEXT,
submitted_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
reviewed_at TIMESTAMPTZ,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE INDEX idx_reviews_app ON app_reviews(app_id);
CREATE INDEX idx_reviews_status ON app_reviews(status);
CREATE INDEX idx_reviews_submitter ON app_reviews(submitter_id);
-- 收藏表
CREATE TABLE app_favorites (
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
app_id UUID NOT NULL REFERENCES applications(id) ON DELETE CASCADE,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
PRIMARY KEY (user_id, app_id)
);
CREATE INDEX idx_favorites_user ON app_favorites(user_id);
CREATE INDEX idx_favorites_app ON app_favorites(app_id);
-- 评分表
CREATE TABLE app_ratings (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
app_id UUID NOT NULL REFERENCES applications(id) ON DELETE CASCADE,
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
score SMALLINT NOT NULL CHECK (score >= 1 AND score <= 5),
comment TEXT,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
UNIQUE(app_id, user_id)
);
CREATE INDEX idx_ratings_app ON app_ratings(app_id);
CREATE INDEX idx_ratings_user ON app_ratings(user_id);
CREATE TRIGGER update_ratings_updated_at
BEFORE UPDATE ON app_ratings
FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();