class NumberRule { final int id; final String type; final String prefix; final int currentNo; final String dateFormat; const NumberRule({ required this.id, required this.type, required this.prefix, required this.currentNo, required this.dateFormat, }); String get typeLabel { switch (type) { case 'stock_in': return '入库单'; case 'stock_out': return '出库单'; case 'inventory_check': return '盘点单'; case 'product': return '商品编码'; default: return type; } } String get exampleNo { final now = DateTime.now(); final date = '${now.year}${now.month.toString().padLeft(2, '0')}${now.day.toString().padLeft(2, '0')}'; return '$prefix$date${(currentNo + 1).toString().padLeft(3, '0')}'; } factory NumberRule.fromJson(Map json) => NumberRule( id: (json['id'] as num).toInt(), type: json['type'] as String, prefix: json['prefix'] as String? ?? '', currentNo: (json['current_no'] as num).toInt(), dateFormat: json['date_format'] as String? ?? 'YYYYMMDD', ); }