feat: add email verification, profile pictures, deposits, and calendar
export Backend: - Add email verification code generation and verification endpoints - Add profile picture upload with S3 storage and image processing - Add deposit_required field to users with 48h advance booking requirement - Add loyalty stamps that accumulate on completed bookings - Auto-transition bookings: confirmed → in_progress → completed - Add booking cancellation handler with no-show detection - Add ICS calendar file download endpoint for bookings - Sync bookings to CalDAV on confirmation Frontend: - Add schedule page route - Add avatar and image-cropper UI components - Update shadcn-svelte components (button, dialog) - Add "Add to Calendar" button in booking modal Database: - Add verification_codes table - Add profile_pic_url, loyalty_stamps, deposits_required to users - Various schema updates
This commit is contained in:
@@ -127,6 +127,25 @@ CREATE TABLE user_social_logins (
|
||||
CREATE INDEX idx_users_email_lower ON users (LOWER(email));
|
||||
CREATE INDEX idx_users_account_role ON users (account_role);
|
||||
|
||||
-- =======================================
|
||||
-- VERIFICATION CODES TABLE
|
||||
-- =======================================
|
||||
CREATE TYPE verification_purpose AS ENUM ('email_verify', 'password_reset');
|
||||
|
||||
CREATE TABLE verification_codes (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
code CHAR(32) NOT NULL UNIQUE,
|
||||
user_id CHAR(12) NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
purpose verification_purpose NOT NULL,
|
||||
expires_at TIMESTAMPTZ NOT NULL,
|
||||
used_at TIMESTAMPTZ,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX idx_verification_codes_code ON verification_codes (code);
|
||||
CREATE INDEX idx_verification_codes_user_purpose ON verification_codes (user_id, purpose) WHERE used_at IS NULL;
|
||||
CREATE INDEX idx_verification_codes_expires ON verification_codes (expires_at) WHERE used_at IS NULL;
|
||||
|
||||
-- =======================================
|
||||
-- SERVICES TABLE
|
||||
-- =======================================
|
||||
|
||||
Reference in New Issue
Block a user