Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CouponFieldMap ¶
type CouponFieldMap struct {
Code string `yaml:"code"` // Default: "code"
DiscountType string `yaml:"discount_type"` // Default: "discount_type"
DiscountValue string `yaml:"discount_value"` // Default: "discount_value"
Currency string `yaml:"currency"` // Default: "currency"
Scope string `yaml:"scope"` // Default: "scope"
ProductIDs string `yaml:"product_ids"` // Default: "product_ids" (array/JSONB)
PaymentMethod string `yaml:"payment_method"` // Default: "payment_method"
AutoApply string `yaml:"auto_apply"` // Default: "auto_apply"
AppliesAt string `yaml:"applies_at"` // Default: "applies_at"
UsageLimit string `yaml:"usage_limit"` // Default: "usage_limit"
UsageCount string `yaml:"usage_count"` // Default: "usage_count"
StartsAt string `yaml:"starts_at"` // Default: "starts_at"
ExpiresAt string `yaml:"expires_at"` // Default: "expires_at"
Active string `yaml:"active"` // Default: "active"
Metadata string `yaml:"metadata"` // Default: "metadata"
CreatedAt string `yaml:"created_at"` // Default: "created_at"
UpdatedAt string `yaml:"updated_at"` // Default: "updated_at"
}
CouponFieldMap maps Cedros Pay coupon fields to user's database columns.
type CouponMapping ¶
type CouponMapping struct {
TableName string `yaml:"table_name"`
FieldMap CouponFieldMap `yaml:"field_map"`
CustomSQL *CustomSQLQueries `yaml:"custom_sql"`
Transforms map[string]Transform `yaml:"transforms"`
}
CouponMapping defines the mapping for coupons table.
type CouponSQLQueries ¶
type CouponSQLQueries struct {
TableName string
SelectOne string
ListActive string
SelectAutoApply string
Insert string
Update string
IncrementUsage string
Delete string
ColumnMap CouponFieldMap
}
CouponSQLQueries holds generated SQL queries for coupons.
type CustomSQLQueries ¶
type CustomSQLQueries struct {
Select string `yaml:"select"` // Custom SELECT query (use $1, $2 for params)
Insert string `yaml:"insert"` // Custom INSERT query
Update string `yaml:"update"` // Custom UPDATE query
Delete string `yaml:"delete"` // Custom DELETE query
ListActive string `yaml:"list_active"` // Custom query for listing active records
}
CustomSQLQueries allows users to override default SQL with custom queries. Useful for complex schemas with joins, views, or computed columns.
type Mapping ¶
type Mapping struct {
Products ProductMapping `yaml:"products"`
Coupons CouponMapping `yaml:"coupons"`
PaymentTracking PaymentTrackingMapping `yaml:"payment_tracking"`
}
Mapping defines how to map between user's database schema and Cedros Pay's expected structure.
func LoadMapping ¶
LoadMapping loads schema mapping from a YAML file.
type PaymentTrackingMapping ¶
type PaymentTrackingMapping struct {
CartQuotes TableMapping `yaml:"cart_quotes"`
RefundQuotes TableMapping `yaml:"refund_quotes"`
PaymentSignatures TableMapping `yaml:"payment_signatures"`
AdminNonces TableMapping `yaml:"admin_nonces"`
}
PaymentTrackingMapping defines mappings for payment tracking tables.
type PaymentTrackingSQLQueries ¶
type PaymentTrackingSQLQueries struct {
CartQuotesTable string
RefundQuotesTable string
PaymentSignaturesTable string
AdminNoncesTable string
}
PaymentTrackingSQLQueries holds table names for payment tracking.
type PostgresMapper ¶
type PostgresMapper struct {
// contains filtered or unexported fields
}
PostgresMapper generates SQL queries using schema mappings.
func NewPostgresMapper ¶
func NewPostgresMapper(mapping *Mapping) *PostgresMapper
NewPostgresMapper creates a new Postgres schema mapper.
func (*PostgresMapper) CouponQueries ¶
func (m *PostgresMapper) CouponQueries() *CouponSQLQueries
CouponQueries returns SQL queries for coupon operations.
func (*PostgresMapper) PaymentTrackingQueries ¶
func (m *PostgresMapper) PaymentTrackingQueries() *PaymentTrackingSQLQueries
PaymentTrackingQueries returns table names for payment tracking.
func (*PostgresMapper) ProductQueries ¶
func (m *PostgresMapper) ProductQueries() *ProductSQLQueries
ProductQueries returns SQL queries for product operations.
type ProductFieldMap ¶
type ProductFieldMap struct {
ID string `yaml:"id"` // Default: "id"
Description string `yaml:"description"` // Default: "description"
FiatAmount string `yaml:"fiat_amount"` // Default: "fiat_amount"
FiatCurrency string `yaml:"fiat_currency"` // Default: "fiat_currency"
StripePriceID string `yaml:"stripe_price_id"` // Default: "stripe_price_id"
CryptoAmount string `yaml:"crypto_amount"` // Default: "crypto_amount"
CryptoToken string `yaml:"crypto_token"` // Default: "crypto_token"
CryptoAccount string `yaml:"crypto_account"` // Default: "crypto_account"
MemoTemplate string `yaml:"memo_template"` // Default: "memo_template"
Metadata string `yaml:"metadata"` // Default: "metadata" (JSONB/JSON column)
Active string `yaml:"active"` // Default: "active"
CreatedAt string `yaml:"created_at"` // Default: "created_at"
UpdatedAt string `yaml:"updated_at"` // Default: "updated_at"
}
ProductFieldMap maps Cedros Pay fields to user's database columns.
type ProductMapping ¶
type ProductMapping struct {
TableName string `yaml:"table_name"` // Table/collection name (default: "products")
FieldMap ProductFieldMap `yaml:"field_map"` // Field mappings
CustomSQL *CustomSQLQueries `yaml:"custom_sql"` // Optional custom SQL for complex mappings
Transforms map[string]Transform `yaml:"transforms"` // Field transformations
}
ProductMapping defines the mapping for products/resources table.
type ProductSQLQueries ¶
type ProductSQLQueries struct {
TableName string
SelectOne string
SelectByStripePriceID string
ListActive string
Insert string
Update string
Delete string
ColumnMap ProductFieldMap
}
ProductSQLQueries holds generated SQL queries for products.
type TableMapping ¶
type TableMapping struct {
TableName string `yaml:"table_name"`
FieldMap map[string]string `yaml:"field_map"` // cedros_field -> user_column
}
TableMapping is a generic table/collection mapping.
type Transform ¶
type Transform struct {
Type string `yaml:"type"` // "multiply", "divide", "json_field", "constant", "expression"
Factor float64 `yaml:"factor"` // For multiply/divide
Field string `yaml:"field"` // For json_field extraction
Value interface{} `yaml:"value"` // For constant transforms
Expr string `yaml:"expr"` // For SQL expressions (e.g., "CAST(price_cents AS FLOAT) / 100")
}
Transform defines how to transform a field value during read/write.