using SQLite;
using System.Text.Json.Serialization;

namespace salesbook.Shared.Core.Entity;

[Table("ptb_pros")]
public class PtbPros
{
    [PrimaryKey, Column("cod_ppro"), JsonPropertyName("codPpro")]
    public string? CodPpro { get; set; }

    [Column("agenzia_banca"), JsonPropertyName("agenziaBanca")]
    public string AgenziaBanca { get; set; }

    [Column("cap"), JsonPropertyName("cap")]
    public string Cap { get; set; }

    [Column("citta"), JsonPropertyName("citta")]
    public string Citta { get; set; }

    [Column("cod_abi"), JsonPropertyName("codAbi")]
    public string CodAbi { get; set; }

    [Column("cod_aliq"), JsonPropertyName("codAliq")]
    public string CodAliq { get; set; }

    [Column("cod_anag"), JsonPropertyName("codAnag")]
    public string CodAnag { get; set; }

    [Column("cod_banc"), JsonPropertyName("codBanc")]
    public string CodBanc { get; set; }

    [Column("cod_cab"), JsonPropertyName("codCab")]
    public string CodCab { get; set; }

    [Column("cod_fisc"), JsonPropertyName("codFisc")]
    public string CodFisc { get; set; }

    [Column("cod_paga"), JsonPropertyName("codPaga")]
    public string CodPaga { get; set; }

    [Column("cod_vage"), JsonPropertyName("codVage")]
    public string CodVage { get; set; }

    [Column("cod_vatt"), JsonPropertyName("codVatt")]
    public string CodVatt { get; set; }

    [Column("cod_vlis"), JsonPropertyName("codVlis")]
    public string CodVlis { get; set; }

    [Column("cod_vseg"), JsonPropertyName("codVseg")]
    public string CodVseg { get; set; }

    [Column("cod_vset"), JsonPropertyName("codVset")]
    public string CodVset { get; set; }

    [Column("cod_vtip"), JsonPropertyName("codVtip")]
    public string CodVtip { get; set; }

    [Column("cod_vzon"), JsonPropertyName("codVzon")]
    public string CodVzon { get; set; }

    [Column("data_ins"), JsonPropertyName("dataIns")]
    public DateTime? DataIns { get; set; } = DateTime.Now;

    [Column("descrizione_pag"), JsonPropertyName("descrizionePag")]
    public string DescrizionePag { get; set; }

    [Column("e_mail"), JsonPropertyName("eMail")]
    public string EMail { get; set; }

    [Column("fax"), JsonPropertyName("fax")]
    public string Fax { get; set; }

    [Column("flag_riv_clie"), JsonPropertyName("flagRivClie")]
    public string FlagRivClie { get; set; } = "C";

    [Column("fonte"), JsonPropertyName("fonte")]
    public string Fonte { get; set; }

    [Column("gg_chiusura"), JsonPropertyName("ggChiusura")]
    public string GgChiusura { get; set; }

    [Column("indirizzo"), JsonPropertyName("indirizzo")]
    public string Indirizzo { get; set; }

    [Column("nazione"), JsonPropertyName("nazione")]
    public string Nazione { get; set; }

    [Column("note"), JsonPropertyName("note")]
    public string Note { get; set; }

    [Column("part_iva"), JsonPropertyName("partIva")]
    public string PartIva { get; set; }

    [Column("persona_rif"), JsonPropertyName("personaRif")]
    public string PersonaRif { get; set; }

    [Column("prov"), JsonPropertyName("prov")]
    public string Prov { get; set; }

    [Column("rag_soc"), JsonPropertyName("ragSoc")]
    public string RagSoc { get; set; }

    [Column("rag_soc2"), JsonPropertyName("ragSoc2")]
    public string RagSoc2 { get; set; }

    [Column("sconto1"), JsonPropertyName("sconto1")]
    public decimal Sconto1 { get; set; } = 0;

    [Column("sconto2"), JsonPropertyName("sconto2")]
    public decimal Sconto2 { get; set; } = 0;

    [Column("telefono"), JsonPropertyName("telefono")]
    public string Telefono { get; set; }

    [Column("cuu_pa"), JsonPropertyName("cuuPa")]
    public string CuuPa { get; set; }

    [Column("e_mail_pec"), JsonPropertyName("eMailPec")]
    public string EMailPec { get; set; }

    [Column("flag_informativa"), JsonPropertyName("flagInformativa")]
    public string FlagInformativa { get; set; } = "N";

    [Column("flag_consenso"), JsonPropertyName("flagConsenso")]
    public string FlagConsenso { get; set; } = "N";

    [Column("username"), JsonPropertyName("userName")]
    public string UserName { get; set; }
}