feat: Update monetary column data types to DOUBLE PRECISION, add IF NOT EXISTS to column additions, and introduce a timestamp trigger function.
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
-- Add price and currency to courses table
|
-- Add price and currency to courses table
|
||||||
ALTER TABLE courses ADD COLUMN price NUMERIC(10, 2) DEFAULT 0.00;
|
ALTER TABLE courses ADD COLUMN IF NOT EXISTS price DOUBLE PRECISION DEFAULT 0.0;
|
||||||
ALTER TABLE courses ADD COLUMN currency VARCHAR(10) DEFAULT 'USD';
|
ALTER TABLE courses ADD COLUMN IF NOT EXISTS currency VARCHAR(10) DEFAULT 'USD';
|
||||||
|
|
||||||
-- Update fn_create_course to handle price and currency
|
-- Update fn_create_course to handle price and currency
|
||||||
CREATE OR REPLACE FUNCTION fn_create_course(
|
CREATE OR REPLACE FUNCTION fn_create_course(
|
||||||
@@ -8,7 +8,7 @@ CREATE OR REPLACE FUNCTION fn_create_course(
|
|||||||
p_instructor_id UUID,
|
p_instructor_id UUID,
|
||||||
p_title TEXT,
|
p_title TEXT,
|
||||||
p_pacing_mode TEXT DEFAULT 'self_paced',
|
p_pacing_mode TEXT DEFAULT 'self_paced',
|
||||||
p_price NUMERIC(10, 2) DEFAULT 0.00,
|
p_price DOUBLE PRECISION DEFAULT 0.0,
|
||||||
p_currency TEXT DEFAULT 'USD'
|
p_currency TEXT DEFAULT 'USD'
|
||||||
) RETURNS SETOF courses AS $$
|
) RETURNS SETOF courses AS $$
|
||||||
BEGIN
|
BEGIN
|
||||||
@@ -42,7 +42,7 @@ CREATE OR REPLACE FUNCTION fn_update_course(
|
|||||||
p_start_date TIMESTAMP WITH TIME ZONE,
|
p_start_date TIMESTAMP WITH TIME ZONE,
|
||||||
p_end_date TIMESTAMP WITH TIME ZONE,
|
p_end_date TIMESTAMP WITH TIME ZONE,
|
||||||
p_certificate_template TEXT,
|
p_certificate_template TEXT,
|
||||||
p_price NUMERIC(10, 2),
|
p_price DOUBLE PRECISION,
|
||||||
p_currency TEXT
|
p_currency TEXT
|
||||||
) RETURNS SETOF courses AS $$
|
) RETURNS SETOF courses AS $$
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|||||||
@@ -1,6 +1,15 @@
|
|||||||
-- Add price and currency to courses table in LMS
|
-- Add price and currency to courses table in LMS
|
||||||
ALTER TABLE courses ADD COLUMN price NUMERIC(10, 2) DEFAULT 0.00;
|
ALTER TABLE courses ADD COLUMN IF NOT EXISTS price DOUBLE PRECISION DEFAULT 0.0;
|
||||||
ALTER TABLE courses ADD COLUMN currency VARCHAR(10) DEFAULT 'USD';
|
ALTER TABLE courses ADD COLUMN IF NOT EXISTS currency VARCHAR(10) DEFAULT 'USD';
|
||||||
|
|
||||||
|
-- Create general trigger function if not exists
|
||||||
|
CREATE OR REPLACE FUNCTION trigger_set_timestamp()
|
||||||
|
RETURNS TRIGGER AS $$
|
||||||
|
BEGIN
|
||||||
|
NEW.updated_at = NOW();
|
||||||
|
RETURN NEW;
|
||||||
|
END;
|
||||||
|
$$ LANGUAGE plpgsql;
|
||||||
|
|
||||||
-- Create transactions table
|
-- Create transactions table
|
||||||
CREATE TABLE transactions (
|
CREATE TABLE transactions (
|
||||||
@@ -8,7 +17,7 @@ CREATE TABLE transactions (
|
|||||||
organization_id UUID NOT NULL REFERENCES organizations(id),
|
organization_id UUID NOT NULL REFERENCES organizations(id),
|
||||||
user_id UUID NOT NULL REFERENCES users(id),
|
user_id UUID NOT NULL REFERENCES users(id),
|
||||||
course_id UUID NOT NULL REFERENCES courses(id),
|
course_id UUID NOT NULL REFERENCES courses(id),
|
||||||
amount NUMERIC(10, 2) NOT NULL,
|
amount DOUBLE PRECISION NOT NULL,
|
||||||
currency VARCHAR(10) NOT NULL,
|
currency VARCHAR(10) NOT NULL,
|
||||||
status TEXT NOT NULL DEFAULT 'pending', -- 'pending', 'success', 'failure'
|
status TEXT NOT NULL DEFAULT 'pending', -- 'pending', 'success', 'failure'
|
||||||
provider_reference TEXT,
|
provider_reference TEXT,
|
||||||
|
|||||||
Reference in New Issue
Block a user