// Se un domani ci saranno nuovi tipi di documento, basterà aggiungerli qui
// e alla mappa nella DocumentSequenceSection dei documenti supportati
enum DocumentType {
  ticket(name: 'ticket', label: 'Ticket', defaultPrefix: 'TCK'),
  ticketsShipping(
    name: 'tickets_shipping',
    label: 'DDT (Documento di Trasporto)',
    defaultPrefix: 'DDT',
  );

  final String name;
  final String label;
  final String defaultPrefix;
  const DocumentType({
    required this.name,
    required this.label,
    required this.defaultPrefix,
  });
}

class DocumentSequence {
  final String docType;
  final int nextValue;
  final String prefix;

  DocumentSequence({
    required this.docType,
    required this.nextValue,
    required this.prefix,
  });

  DocumentSequence copyWith({int? nextValue, String? prefix}) {
    return DocumentSequence(
      docType: docType,
      nextValue: nextValue ?? this.nextValue,
      prefix: prefix ?? this.prefix,
    );
  }

  factory DocumentSequence.fromMap(Map<String, dynamic> map) {
    return DocumentSequence(
      docType: map['doc_type'],
      nextValue: map['next_value'],
      prefix: map['prefix'] ?? '',
    );
  }
}
