package models

import "git.listensoft.net/tool/jspkit/common/models/sb"

// 特种设备信息
type GsnbSpecialEquipment struct {
	sb.GsBaseModel
	MainID              uint `json:"mainId"`              // 主表id
	RegisterFacilityNum int  `json:"registerFacilityNum"` // 办理使用登记特种设备总台数 /台(套数)
	ValidFacilityNum    int  `json:"validFacilityNum"`    // 检验有效期内特种设备总台数 /台(套数)
}

// 社保信息
type GsnbSocialSecurity struct {
	sb.GsBaseModel
	MainID                      uint    `json:"mainId"`                      // 主表id
	Endowment                   int     `json:"endowment"`                   // 城镇职工基本养老保险 (单位: 人)
	Unemployment                int     `json:"unemployment"`                // 失业保险（单位：人）
	Medical                     int     `json:"medical"`                     // 医疗保险（单位：人）
	EmploymentInjury            int     `json:"employmentInjury"`            // 工伤保险（单位：人）
	Birth                       int     `json:"birth"`                       // 生育保险（单位：人）
	BaseEndowment               float64 `json:"baseEndowment"`               // 单位缴费基数-单位参加城镇职工基本养老保险缴费基数(万元)
	BaseUnemployment            float64 `json:"baseUnemployment"`            // 单位缴费基数-单位参加失业保险缴费基数(万元)
	BaseMedical                 float64 `json:"baseMedical"`                 // 单位缴费基数-单位参加职工基本医疗保险缴费基数(万元)
	BaseEmployment              float64 `json:"baseEmployment"`              // 单位缴费基数-单位参加工伤保险缴费基数(万元)
	BaseBirth                   float64 `json:"baseBirth"`                   // 单位缴费基数-单位参加生育保险缴费基数(万元)
	BaseShow                    int     `json:"baseShow"`                    // 是否公示 0公示 1不公示
	ContributedEndowment        float64 `json:"contributedEndowment"`        // 本期实际缴费金额-参加城镇职工基本养老保险本期实际缴费金额(万元)
	ContributedUnemployment     float64 `json:"contributedUnemployment"`     // 本期实际缴费金额-参加失业保险本期实际缴费金额(万元)
	ContributedMedical          float64 `json:"contributedMedical"`          // 本期实际缴费金额-参加职工基本医疗保险本期实际缴费金额(万元)
	ContributedEmploymentInjury float64 `json:"contributedEmploymentInjury"` // 本期实际缴费金额-参加工伤保险本期实际缴费金额(万元)
	ContributedBirth            float64 `json:"contributedBirth"`            // 本期实际缴费金额-参加生育保险本期实际缴费金额(万元)
	ContributedShow             int     `json:"contributedShow"`             // 是否公示 0公示 1不公示
	ArrearsEndowment            float64 `json:"arrearsEndowment"`            // 单位累计欠缴金额-单位参加城镇职工基本养老保险累计欠缴金额(万元)
	ArrearsUnemployment         float64 `json:"arrearsUnemployment"`         // 单位累计欠缴金额-单位参加失业保险累计欠缴金额(万元)
	ArrearsMedical              float64 `json:"arrearsMedical"`              // 单位累计欠缴金额-单付参加职工基本医疗保险累计欠缴金额(万元)
	ArrearsEmploymentInjury     float64 `json:"arrearsEmploymentInjury"`     // 单位累计欠缴金额-单位参加工伤保险累计欠缴金额(万元)
	ArrearsBirth                float64 `json:"arrearsBirth"`                // 单位累计欠缴金额-单位参加生育保险累计欠缴金额(万元)
	ArrearsShow                 int     `json:"arrearsShow"`                 // 是否公示 0公示 1不公示
}

// 股东及出资信息
type GsnbShareholder struct {
	sb.GsBaseModel
	MainID              uint    `json:"mainId"`              // 主表id
	Name                string  `json:"name"`                // 股东名称
	SubscribeCapital    float64 `json:"subscribeCapital"`    // 认缴出资额（万元）
	SubscribeTime       string  `json:"subscribeTime"`       // 认缴时间
	SubscribeWay        string  `json:"subscribeWay"`        // 认缴出资方式 0货币 。。。
	SubscribeCurrency   int     `json:"subscribeCurrency"`   // 认缴出资币种
	ContributedCapital  float64 `json:"contributedCapital"`  // 实缴出资额（万元）
	ContributedTime     string  `json:"contributedTime"`     // 实缴出资时间
	ContributedWay      string  `json:"contributedWay"`      // 实缴出资方式 。。。
	ContributedCurrency int     `json:"contributedCurrency"` // 实缴出资币种

	ContributedWays []string `json:"contributedWays" gorm:"-"` // 实缴出资方式 。。。
	SubscribeWays   []string `json:"subscribeWays" gorm:"-"`   // 认缴出资方式 0货币 。。。
	Year            string   `json:"year" gorm:"-"`
	ComId           uint     `json:"comId" gorm:"-"`
}

// 党建信息
type GsnbParty struct {
	MainID                   uint   `json:"mainId"`                   // 主表id
	HaveParty                int    `json:"haveParty"`                // 是否有党建信息 0否1是
	PartyMemberNum           int    `json:"partyMemberNum"`           // 中共党员（包含预备党员）人数
	Organizational           int    `json:"organizational"`           // 党组织建制 1党委 2党总支 3党支部 4未成立党组织
	IsParty                  int    `json:"isParty"`                  // 法定代表人（负责人）是否为党员 0否 1是
	IsSecretary              int    `json:"isSecretary"`              // 法定代表人（负责人）是否为党组织书记 0否 1是
	LeagueMenberNum          int    `json:"leagueMenberNum"`          // 团员人数
	LeagueOrganizational     int    `json:"leagueOrganizational"`     // 团组织建制 团委 团支书 团支部
	IsLeague                 int    `json:"isLeague"`                 // 经营者是否为团员 0否 1是
	IsLeagueSecretary        int    `json:"isLeagueSecretary"`        // 经营者是否为团组织书记 0否 1是
	PartyBuildTime           string `json:"partyBuildTime"`           // 党组织组建时间
	PartyNewMember           string `json:"partyNewMember"`           // 本年度发展新党员
	PartySubjection          string `json:"partySubjection"`          // 党组织主管/隶属单位
	PartyConstructionMode    string `json:"partyConstructionMode"`    // 党组织组建方式
	PartyName                string `json:"partyName"`                // 党组织名称
	PartyCode                string `json:"partyCode"`                // 党组织代码
	PartyTaxNo               string `json:"partyTaxNo"`               // 党组织主管/隶属单位统一社会信用代码
	PartyManagersName        string `json:"partyManagersName"`        // 党组织建制负责人姓名
	PartyEmail               string `json:"partyEmail"`               // 电子邮箱
	PartyPhone               string `json:"partyPhone"`               // 办公电话
	PartyMobile              string `json:"partyMobile"`              // 手机
	Party                    string `json:"party"`                    // 是否建立党组织
	PartyUpcomingTime        string `json:"partyUpcomingTime"`        // 党组织拟组建时间
	PartyUpcomingCondition   string `json:"partyUpcomingCondition"`   // 党组织拟建制情况 1党委 2党总支 3党支部 4围城里
	PartyUpcomingOrganizeWay string `json:"partyUpcomingOrganizeWay"` // 党组织拟组建方式 1单独 2 联合 3其他
	League                   string `json:"league"`                   //是否建立团组织 0未 1建立
	LeagueConstructionMode   string `json:"leagueConstructionMode"`   // 团组织组建方式
	LeagueBuildTime          string `json:"leagueBuildTime"`          // 团组织组建时间
	LeaguePartySubjection    string `json:"leaguePartySubjection"`    // 团组织主管/隶属单位
	LeagueStripling          string `json:"leagueStripling"`          // 35岁以下青年人数
	LeagueManagersName       string `json:"leagueManagersName"`       // 团组织负责人姓名
	LeagueManagersSex        string `json:"leagueManagersSex"`        // 团组织负责人性别
	LeaguePartyMobile        string `json:"leaguePartyMobile"`        // 团组织负责人手机
	LeaguePartyPhone         string `json:"leaguePartyPhone"`         // 团组织负责人电话
	LeagueUpcomingCondition  string `json:"leagueUpcomingCondition"`  // 团组织拟建制情况 1团委 2团总支 3团支部
	LeagueOrganizeWay        string `json:"leagueOrganizeWay"`        // 团组织拟组建方式 1 单独 2联合 3 其他
}

// 企业基本信息
type GsnbBase struct {
	sb.GsBaseModel
	MainID               uint    `json:"mainId"`               // 主表id
	Year                 string  `json:"year"`                 // 报告年度
	Name                 string  `json:"name"`                 // 企业名称
	TaxNo                string  `json:"taxNo"`                // 统一社会信用代码
	Address              string  `json:"address"`              // 企业通讯地址
	PostalCode           string  `json:"postalCode"`           // 邮政编码
	Phone                string  `json:"phone"`                // 联系电话
	Email                string  `json:"email"`                // 电子邮箱
	Business             string  `json:"business"`             // 主营业务活动
	PeopleNum            int     `json:"peopleNum"`            // 从业人数
	PeopleNumShow        int     `json:"peopleNumShow"`        // 从业人数 是否公示 0公示 1不公示
	WomanNum             int     `json:"womanNum"`             // 其中女性从业人数
	WomanNumShow         int     `json:"womanNumShow"`         // 其中女性从业人数 是否公示 0公示 1不公示
	Status               string  `json:"status"`               // 经营状态
	Holding              string  `json:"holding"`              // 控股情况
	HoldingShow          int     `json:"holdingShow"`          // 控股情况 是否公示 0公示 1不公示
	Guarantee            int     `json:"guarantee"`            // 是否对外有担保 0否 1是
	Website              int     `json:"website"`              // 是否有网站或者网店 0否 1是
	StockRightTransfer   int     `json:"stockRightTransfer"`   // 本年度是否发生股东/股权转让  0否 1是
	Invest               int     `json:"invest"`               // 是否有投资信息或者购买其他公司股权  0否 1是
	GraduateProprietor   int     `json:"graduateProprietor"`   // 高校毕业生-经营者 人数
	GraduateEmployee     int     `json:"graduateEmployee"`     // 高校毕业生-雇员 人数
	VeteranProprietor    int     `json:"veteranProprietor"`    // 退役士兵-经营者 人数
	VeteranEmployee      int     `json:"veteranEmployee"`      // 退役士兵-雇员 人数
	DisabledProprietor   int     `json:"disabledProprietor"`   // 残疾人-经营者 人数
	DisabledEmployee     int     `json:"disabledEmployee"`     // 残疾人-雇员 人数
	EmploymentProprietor int     `json:"employmentProprietor"` // 再就业-经营者 人数
	EmploymentEmployee   int     `json:"employmentEmployee"`   // 再就业-雇员 人数
	Subjection           string  `json:"subjection"`           // 隶属企业名称
	SubjectionTaxNo      string  `json:"subjectionTaxNo"`      // 隶属企业统一社会信用代码/注册号
	FundsAmount          string  `json:"fundsAmount"`          //资金数额（个体户专用）
	ProprietorName       string  `json:"proprietorName"`       //经营者姓名（个体户专用）
	Peasant              string  `json:"peasant"`              //农民人数
	AllPeople            string  `json:"allPeople"`            //成员人数
	NewlyPeople          string  `json:"newlyPeople"`          //新增人数
	QuitPeople           string  `json:"quitPeople"`           //退出人数
	LoanNeed             int     `json:"loanNeed"`             //是否有贷款需求   0否 1是
	ShareTotal           float64 `json:"shareTotal"`           // 按股东分红总额
	PrepaidCard          int     `json:"prepaidCard"`          //是否有预付卡
}

// 资产状况信息
type GsnbAsset struct {
	sb.GsBaseModel
	MainID               uint    `json:"mainId"`               // 主表id
	AssetTotal           float64 `json:"assetTotal"`           // 资产总额（万元）
	AssetTotalShow       int     `json:"assetTotalShow"`       // 是否公示 0公示 1不公示
	OwnerEquity          float64 `json:"ownerEquity"`          // 所有者权益合计（万元） 个体工商户:金融贷款
	OwnerEquityShow      int     `json:"ownerEquityShow"`      // 是否公示 0公示 1不公示
	LiabilitiesTotal     float64 `json:"liabilitiesTotal"`     // 负债总额（万元）
	LiabilitiesTotalShow int     `json:"liabilitiesTotalShow"` // 是否公示 0公示 1不公示
	Taking               float64 `json:"taking"`               // 营业总收入（万元）
	TakingShow           int     `json:"takingShow"`           // 是否公示 0公示 1不公示
	MainBusiness         float64 `json:"mainBusiness"`         // 其中主营业收入（万元）
	MainBusinessShow     int     `json:"mainBusinessShow"`     // 是否公示 0公示 1不公示
	Profit               float64 `json:"profit"`               // 利润总额（万元） 个体工商户:盈余总额
	ProfitShow           int     `json:"profitShow"`           // 是否公示 0公示 1不公示
	RetainedProfits      float64 `json:"retainedProfits"`      // 净利润（万元）  个体工商户:获得政府扶持资金补助
	RetainedProfitsShow  int     `json:"retainedProfitsShow"`  // 是否公示 0公示 1不公示
	Ratepaying           float64 `json:"ratepaying"`           // 纳税总额（万元）
	RatepayingShow       int     `json:"ratepayingShow"`       // 是否公示 0公示 1不公示
	Assignable           float64 `json:"assignable"`           //可分配盈余
	Return               float64 `json:"return"`               //按交易量返还成员总额
	Remain               float64 `json:"remain"`               //剩余盈余分配总额
}

// 海关报关信息
type GsnbCustoms struct {
	EnName            string `json:"enName"`            // 英文名称
	EnAddress         string `json:"enAddress"`         // 英文地址
	Types             string `json:"types"`             // 跨境贸易电子商务企业类型或非跨境贸易电子商务企业 (电子商务企业 电子商务交易平台 物流企业 支付企业 监管场所运营人 非跨境贸易电子商务企业)
	Bank              string `json:"bank"`              // 开户银行
	BankNum           string `json:"bankNum"`           // 开户账号
	SpecialTradeArea  string `json:"specialTradeArea"`  // 特殊贸易区域
	EconomicsDivision string `json:"economicsDivision"` // 经济区划
	FunctionaryName   string `json:"functionaryName"`   // 关务负责人姓名
	FunctionaryIDType string `json:"functionaryIDType"` // 关务负责人身份证证件类型
	FunctionaryIDNo   string `json:"functionaryIDNo"`   // 关务负责人身份证证件号码
	FunctionaryTel    string `json:"functionaryTel"`    // 关务负责人固定电话
	FunctionaryPhone  string `json:"functionaryPhone"`  // 关务负责人移动电话
	FunctionaryEmail  string `json:"functionaryEmail"`  // 关务负责人电子邮件
	ContactsName      string `json:"contactsName"`      // 海关业务联系人姓名
	ContactsTel       string `json:"contactsTel"`       // 海关业务联系人固定电话
	ContactsPhone     string `json:"contactsPhone"`     // 海关业务联系人移动电话
	ContactsEmail     string `json:"contactsEmail"`     // 海关业务联系人电子邮件
	ContactsFax       string `json:"contactsFax"`       // 海关业务联系人传真
	Place             string `json:"place"`             // 经营场所性质
	IsMarketing       int    `json:"isMarketing"`       // 是否上市公司 0否 1是
	IsComputerization int    `json:"isComputerization"` // 是否实行会计电算化 0否 1是
	AccountingMethod  string `json:"accountingMethod"`  // 记账方式
	IsLoss            int    `json:"isLoss"`            // 最近三年是否连续亏损
	Stock             string `json:"stock"`             // 存货
	Liabilities       string `json:"liabilities"`       // 流动负债
	Asset             string `json:"asset"`             // 流动资产
	Cash              string `json:"cash"`              // 经营现金净流量
	Profit            string `json:"profit"`            // 营业利润
	Rights            string `json:"rights"`            // 年初所有者权益
	Audit             int    `json:"audit"`             // 年度内是否开展内外部审计 1内部审计 2 外部审计
	Stipulation       int    `json:"stipulation"`       // 在内外部审计等企业自律管理中是否发现一般贸易业务、加工贸易及保税业务、减免税业务或其他进出口业务存在违反海关管理规定的问题。 0 否 1 是
	Issue             string `json:"issue"`             // 具体问题
}

// 行政许可文件 tableName: gsnb_administration
type GsnbAdministration struct {
	sb.GsBaseModel
	MainID         uint   `json:"mainId"`         // 主表id
	Name           string `json:"name"`           // 行政许可文件名称
	NameItem       string `json:"nameItem"`       // 行政许可文件名称_item
	ExpirationDate string `json:"expirationDate"` // 有效期截止日期

	Year  string `json:"year" gorm:"-"`
	ComId uint   `json:"comId" gorm:"-"`
}

// 分支机构情况 tableName: gsnb_branch
type GsnbBranch struct {
	sb.GsBaseModel
	MainID uint   `json:"mainId"` // 主表id
	Name   string `json:"name"`   // 分支机构名称
	TaxNo  string `json:"taxNo"`  // 分支机构统一社会信用代码/注册号
	Year   string `json:"year" gorm:"-"`
	ComId  uint   `json:"comId" gorm:"-"`
}

// 网站或网店信息 tableName: gsnb_website
type GsnbWebsite struct {
	ID     uint   `json:"id"`     // 主键
	MainID uint   `json:"mainId"` // 主表id
	Type   string `json:"type"`   // 网站或网店类型
	Name   string `json:"name"`   // 网站或网店名称
	Url    string `json:"url"`    // 网站或网店网址
	Year   string `json:"year" gorm:"-"`
	ComId  uint   `json:"comId" gorm:"-"`
}

// 社保信息 - 辽宁专用  tableName: gsnb_socialSecurityLiaoning
type GsnbSocialSecurityLiaoning struct {
	ID                      uint    `json:"id"`                      // 主键
	MainID                  uint    `json:"mainId"`                  // 主表id
	Type                    string  `json:"type"`                    //参保险种类型
	TotalAnnualPayers       int     `json:"totalAnnualPayers"`       //全年累计缴费人次（各月人数之和）
	EndInsuredNumber        int     `json:"endInsuredNumber"`        //期末参保人数(12月份人数)
	YearlyPaymentBasis      float64 `json:"yearlyPaymentBasis"`      //全年缴费基数合计(单位:万元)
	YearlyShow              int     `json:"yearlyShow"`              //是否公示 0不公示 1公示
	CurrentActualAmount     float64 `json:"currentActualAmount"`     //本期实缴金额(单位:万元)
	CurrentShow             int     `json:"currentShow"`             //是否公示 0不公示 1公示
	AccumulatedUnpaidAmount float64 `json:"accumulatedUnpaidAmount"` //单位累计欠缴金额(单位:万元)
	AccumulatedShow         int     `json:"accumulatedShow"`         //是否公示 0不公示 1公示
}

// 股权变更表 吉林 （基础信息表勾选了股权有变动才传） gsnbEquityChange
type GsnbEquityChange struct {
	AfterProportion float64 `json:"afterProportion"` // 变更后比例 0.33122
	ChangeDate      string  `json:"changeDate"`      // 变更日期 2025-02-05
	FrontProportion float64 `json:"frontProportion"` // 变更前比例 0.33122
	Shareholder     string  `json:"shareholder"`     // 名称 xxxx
}

type GsnbStatisticalMatters struct {
	ID     uint   `json:"id"`     // 主键
	MainID uint   `json:"mainId"` // 主表id
	Kysj   string `json:"kysj"`   //开业时间
	Kjzd   int    `json:"kjzd"`   // 执行企业会计准则制度情况 （0：空;1：执行《企业会计准则》;2：执行《小企业会计准则》;3：执行《企业会计制度》）
	Qyjt   int    `json:"qyjt"`   // 企业集团情况 (1：集团母公司(核心企业或集团总部);2：成员企业;3：不符合)
	Cplb   string `json:"cplb"`   // 经营产品类别 (1：港商投资;2：澳商投资;3：台湾投资;4:暂未投资)
	Jyxs   int    `json:"jyxs"`   // 批发和零售业、住宿和餐饮页企业经营形式  (1：独立门店;2：连锁总店(总部);3：连锁直营店;4:其他连锁品牌(商标或商号名称))
	Lsyt   string `json:"lsyt"`   // 零售页企业零售业态
	Xjpd   int    `json:"xjpd"`   // 住宿业企业是星级评定情况  (1：一星;2：二星;3：三星;4:四星;5：五星;6：其他))
	Jzdj   string `json:"jzdj"`   // 建筑业企业资质等级编码
	Fddj   int    `json:"fddj"`   // 房地产开发经营企业资质等级 (1：一星;2：二星;3：三星;4:四星;5：五星;6：其他))
	Year   string `json:"year" gorm:"-"`
	ComId  uint   `json:"comId" gorm:"-"`
}
