feat: add user profile endpoints + language seed for LanguParent app
- users_public gets user_id FK (1:1 link to auth user)
- Seed languages: en, sv alongside existing de
- POST /auth/register + /auth/login now include needsProfile flag
- New JWT-authed endpoints (end-user allowed):
GET /auth/languages public language list
GET /auth/check-username
GET /auth/me full profile join
POST /auth/profile one-time profile creation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -463,6 +463,21 @@ async function migrate() {
|
||||
FOR EACH ROW EXECUTE FUNCTION update_updated_at()
|
||||
`);
|
||||
|
||||
// Link users_public ↔ users (1:1, app-profile per auth user)
|
||||
await query(`ALTER TABLE users_public ADD COLUMN IF NOT EXISTS user_id UUID`).catch(() => {});
|
||||
await query(`ALTER TABLE users_public ADD CONSTRAINT users_public_user_id_fkey FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE`).catch(() => {});
|
||||
await query(`CREATE UNIQUE INDEX IF NOT EXISTS users_public_user_id_idx ON users_public (user_id) WHERE user_id IS NOT NULL`);
|
||||
|
||||
// Seed languages (de exists, add en + sv)
|
||||
await query(`CREATE UNIQUE INDEX IF NOT EXISTS languages_short_en_idx ON languages (short_en) WHERE short_en IS NOT NULL`).catch(() => {});
|
||||
await query(`
|
||||
INSERT INTO languages (short_en, titel_de, titel_en, titel_sv, status, published_at)
|
||||
VALUES
|
||||
('en', 'Englisch', 'English', 'Engelska', 'published', NOW()),
|
||||
('sv', 'Schwedisch', 'Swedish', 'Svenska', 'published', NOW())
|
||||
ON CONFLICT (short_en) DO NOTHING
|
||||
`).catch(() => {});
|
||||
|
||||
console.log('Migration complete');
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user