feat(POS-FIX-7): completed feature

This commit is contained in:
chattie
2026-08-24 07:23:55 +02:00
parent cd2a8ab54d
commit 2467a02dd4
14 changed files with 305 additions and 81 deletions

View File

@@ -1,25 +1,17 @@
/* eslint-disable @typescript-eslint/naming-convention */
'use strict';
/**
* F-193: Adds `weight_grams` to catalog_product_variants.
* Authoritative per-variant shipping weight in grams.
* Defaults to NULL (fallback to product-level unit_weight_kg in checkout).
* Note: expiration_date already exists on catalog_products (migration 038).
*/
exports.up = function (db) {
return db.addColumn('catalog_product_variants', 'weight_grams', {
export const up = (pgm) => {
pgm.addColumn('catalog_product_variants', 'weight_grams', {
type: 'integer',
notNull: false,
default: null,
check: 'weight_grams IS NULL OR weight_grams > 0',
}, 'ean');
});
};
exports.down = function (db) {
return db.removeColumn('catalog_product_variants', 'weight_grams');
};
exports._meta = {
version: 57,
export const down = (pgm) => {
pgm.dropColumn('catalog_product_variants', 'weight_grams');
};

View File

@@ -1,39 +1,30 @@
/* eslint-disable @typescript-eslint/naming-convention */
'use strict';
/**
* FEAT-199: Adds email confirmation to user registration.
* - confirmation_token: random string sent in confirmation email (null after confirmed)
* - confirmed_at: timestamp when email was confirmed (null until confirmed)
* - confirmed users can login; unconfirmed cannot.
*/
exports.up = function (db) {
db.addColumn('identity_users', 'confirmation_token', {
export const up = (pgm) => {
pgm.addColumn('identity_users', 'confirmation_token', {
type: 'string',
notNull: false,
default: null,
});
db.addColumn('identity_users', 'confirmed_at', {
pgm.addColumn('identity_users', 'confirmed_at', {
type: 'timestamp',
notNull: false,
default: null,
});
db.addColumn('identity_users', 'email_confirmed', {
pgm.addColumn('identity_users', 'email_confirmed', {
type: 'boolean',
notNull: true,
default: false,
});
// FEAT-199: migrate existing users to confirmed (they already verified their email during signup)
return db.execute('UPDATE identity_users SET email_confirmed = true');
pgm.sql('UPDATE identity_users SET email_confirmed = true');
};
exports.down = function (db) {
db.removeColumn('identity_users', 'email_confirmed');
db.removeColumn('identity_users', 'confirmed_at');
db.removeColumn('identity_users', 'confirmation_token');
return null;
};
exports._meta = {
version: 58,
export const down = (pgm) => {
pgm.dropColumns('identity_users', ['email_confirmed', 'confirmed_at', 'confirmation_token']);
};