// 制度状态枚举
export enum RegulationStatus {
  DRAFT = 'DRAFT',           // 草稿
  APPROVED = 'APPROVED',     // 已通过
  PUBLISHED = 'PUBLISHED',   // 已公示
}

// 制度级别枚举
export enum RegulationLevel {
  LOW = 'LOW',       // 低
  MEDIUM = 'MEDIUM', // 中
  HIGH = 'HIGH'      // 高
}

// 制度信息接口
export interface Regulation {
  regulationId: string
  title: string
  content: string
  regulationType: string
  status: RegulationStatus
  publishTime: string  // 公示时间
  effectiveTime: string
  expireTime: string
  scope: string
  level: RegulationLevel
  version: string
  remark?: string
  createBy: string
  updateBy: string
  createTime: string
  updateTime: string
  page: number
  pageSize: number
  delFlag: string
  confirmStatus?: string
}

// 创建提案请求接口
export interface CreateProposalRequest {
  title: string
  content: string
  regulationType: string
  scope: string
  level: RegulationLevel
  remark?: string
  createBy?: string
}

// 分页参数接口
export interface PaginationParams {
  page: number
  size: number
}

// 制度类型接口
export interface RegulationType {
  typeId: string
  typeName: string
  sortOrder: number
  isEnabled: string
  remark?: string
  createBy: string
  createTime: string
  updateBy: string
  updateTime: string
  delFlag: string
}

// 创建制度类型请求接口
export interface CreateRegulationTypeRequest {
  typeName: string
  sortOrder?: number
  isEnabled?: string
  remark?: string
}

// 更新制度类型请求接口
export interface UpdateRegulationTypeRequest {
  typeName: string
  sortOrder?: number
  isEnabled?: string
  remark?: string
}

// 制度类型搜索请求接口
export interface RegulationTypeSearchRequest {
  page?: number
  size?: number
  typeName?: string
  status?: string
  remark?: string
}

// 制度类型搜索响应接口
export interface RegulationTypeSearchResponse {
  records: RegulationType[]
  total: number
  current: number
  size: number
  pages: number
}

// 制度提案搜索请求接口
export interface RegulationProposalSearchRequest {
  page?: number
  size?: number
  status?: string
  type?: string
  title?: string
  proposer?: string
}

// 制度提案搜索响应接口
export interface RegulationProposalSearchResponse {
  records: Regulation[]
  total: number
  current: number
  size: number
  pages: number
} 