Add store loan methods with public website calculate API.
Supports dashboard CRUD and tenant list/get/calculate so storefronts can offer installments, requiring a method pick when several exist. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
co-authored by
Cursor
parent
2a01873c95
commit
4a9e10e614
@@ -0,0 +1,37 @@
|
||||
-- Store loan / installment methods (اقساط و تسهیلات)
|
||||
|
||||
CREATE TABLE IF NOT EXISTS store_loan_methods (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
business_id BIGINT NOT NULL REFERENCES businesses (id) ON DELETE CASCADE ON UPDATE NO ACTION,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
name_en VARCHAR(255) NOT NULL,
|
||||
description TEXT NULL,
|
||||
image_media_id BIGINT NULL REFERENCES media (id) ON UPDATE NO ACTION,
|
||||
image_aspect_ratio VARCHAR(10) NOT NULL DEFAULT '1:1',
|
||||
min_shopping_amount NUMERIC(12, 2) NOT NULL,
|
||||
min_amount NUMERIC(12, 2) NOT NULL,
|
||||
max_amount NUMERIC(12, 2) NOT NULL,
|
||||
interest NUMERIC(8, 4) NOT NULL,
|
||||
return_months_min INT NOT NULL,
|
||||
return_months_max INT NOT NULL,
|
||||
return_months_step INT NOT NULL DEFAULT 3,
|
||||
sort_order INT NOT NULL DEFAULT 0,
|
||||
is_active BOOLEAN NOT NULL DEFAULT TRUE,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_store_loan_methods_business_id
|
||||
ON store_loan_methods (business_id);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_store_loan_methods_image_media_id
|
||||
ON store_loan_methods (image_media_id);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_store_loan_methods_business_sort_order
|
||||
ON store_loan_methods (business_id, sort_order);
|
||||
|
||||
DROP TRIGGER IF EXISTS store_loan_methods_set_updated_at ON store_loan_methods;
|
||||
CREATE TRIGGER store_loan_methods_set_updated_at
|
||||
BEFORE UPDATE ON store_loan_methods
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION set_updated_at();
|
||||
Reference in New Issue
Block a user