package cn.iocoder.yudao.module.system.controller.admin.tenant.vo.enterprise;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.*;

@Schema(description = "管理后台 - 租户基本信息新增/修改 Request VO")
@Data
public class TenantBaseInfoSaveReqVO {

    @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "6495")
    private Long id;

    @Schema(description = "机构Id")
    private Long tenantId;

    @Schema(description = "机构组织代码")
    private String orgCode;

    @Schema(description = "社会统一信用代码")
    private String unifiedSocialCreditCode;

    @Schema(description = "单位建立日期")
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY, timezone = TIME_ZONE_DEFAULT)
    private Date creationDate;

    @Schema(description = "单位所属行政区划")
    private String belongAdministrativeDivision;

    @Schema(description = "单位所在行政区划")
    private String administrativeDivision;

    @Schema(description = "生存存续代码")
    private String survivalCode;

    @Schema(description = "经营类型", example = "2")
    private Integer businessType;

    @Schema(description = "机构等级")
    private Integer orgLevel;

    @Schema(description = "占地面积")
    private String coverArea;

    @Schema(description = "场所性质")
    private Integer placeNature;

    @Schema(description = "单位性质")
    private Integer unitNature;

    @Schema(description = "所处位置")
    private String location;

    @Schema(description = "兴办主体")
    private Integer establishmentSubject;

    @Schema(description = "是否为特困救助供养机构 ")
    private Integer isHardshipSupportOrg;

    @Schema(description = "是否是光荣院")
    private Integer isGloryHall;

    @Schema(description = "是否为街道(乡镇)区域性养老服务中心")
    private Integer isRegionalStreetElderlyCareCenter;

    @Schema(description = "收住老人类型", example = "2")
    private Integer elderlyType;

    @Schema(description = "其他收住老人类型", example = "2")
    private String otherElderlyType;

    @Schema(description = "是否投责任保险，0：否 1：是")
    private Integer isHaveLiabilityInsurance;

    @Schema(description = "是否长护险定点机构 ")
    private Integer isLongTermCareInsurance;

    @Schema(description = "是否备案，0：否 1：是")
    private Integer isItRegistered;

    @Schema(description = "法人姓名或负责人姓名")
    private String corporateJuridicalPerson;

    @Schema(description = "法人电话或者负责人电话")
    private String corporatePhoneNumber;

    @Schema(description = "法人或者负责人证件类型", example = "2")
    private Integer corporateIdType;

    @Schema(description = "法人或者负责人证件编码")
    private String corporateIdCard;

    @Schema(description = "法人登记机关")
    private String registrationAuthority;

    @Schema(description = "法人类型", example = "2")
    private Integer corporateType;

    @Schema(description = "是否通过消防部门审验合格 ")
    private Integer isFireInspection;

    @Schema(description = "是否有食品生产许可证")
    private Integer isHaveFoodProductionLicense;

    @Schema(description = "全托床位数")
    private Integer fullBedNum;

    @Schema(description = "日托床位数")
    private Integer daycareBedNum;

    @Schema(description = "护理型床位数")
    private Integer nursingBedNum;

    @Schema(description = "月末收住老人数量")
    private Integer elderlyResidentsAdmittedNum;

    @Schema(description = "是否有居家养老服务")
    private Integer isHaveHomeCare;

    @Schema(description = "是否有居家养老上门服务")
    private Integer isHaveHomeCareCallService;

    @Schema(description = "是否开展医疗服务")
    private Integer isHaveMedicalService;

    @Schema(description = "内设医疗机构", example = "2")
    private Integer medicalInstitutionType;

    @Schema(description = "与医疗机构合作")
    private Integer collaborationMedicalInstitution;

    @Schema(description = "政府扶持优惠政策")
    private Integer governmentPreferentialPolicy;

    @Schema(description = "收费方式")
    private Integer chargingMethod;

    @Schema(description = "是否会员制收费")
    private Integer membershipBasedFees;

    @Schema(description = "护理费（最高）")
    private BigDecimal maximumNursingFee;

    @Schema(description = "护理费（最低）")
    private BigDecimal minimumNursingFee;

    @Schema(description = "床位费（最低）")
    private BigDecimal minimumBedFee;

    @Schema(description = "床位费（最高）")
    private BigDecimal maximumBedFee;

    @Schema(description = "膳食费（最高）")
    private BigDecimal maximumFoodFee;

    @Schema(description = "膳食费（最低）")
    private BigDecimal minimumFoodFee;

    @Schema(description = "押金/备用金（最高）")
    private BigDecimal maximumDepositFee;

    @Schema(description = "押金/备用金（最低）")
    private BigDecimal minimumDepositFee;

    @Schema(description = "是否有其他收费")
    private Integer isHaveOtherCharges;

}