interface ResListCommand {
  data: {
    result: {
      data: DataListCommand[];
      total: number;
    };
  };
}

interface DataListCommand {
  assignFullName: string;
  commandAffectDate: null | Date | string;
  commandExcecuteDate: null | Date | string;
  commandNo: string;
  commandYear: number;
  createdFullName: string;
  id: string;
  status: string;
  issue?: string;
}

interface DataCommandType {
  category: string;
  commandCode: string;
  createdAt: string | Date;
  createdFullName: string;
  createdUserId: string;
  id: string;
  lastUpdateFullName: string;
  lastUpdateUserId: string;
  lastUpdatedAt: string | Date;
  name: string;
  subtitle: string;
}

interface DataFileDownload {
  author: string;
  category: [];
  createdAt: string;
  createdBy: string;
  description: string;
  downloadUrl: string;
  fileName: string;
  fileSize: number;
  fileType: string;
  hidden: boolean;
  keyword: [];
  metadata: {};
  path: string;
  pathname: string;
  title: string;
  updatedAt: string;
  updatedBy: string;
  upload: boolean;
}

interface DataFileOrder {
  reportName: string;
  template: string;
  data: {
    commandDate: string;
    commandExcecuteDate: string;
    commandNo: string;
    commandTitle: string;
    commandYear: 2024;
    detailBody: string;
    detailFooter: string;
    detailHeader: string;
    name: string;
    position: string;
  };
}

interface DataDirector {
  actFullName: string;
  citizenId: string;
  firstName: string;
  id: string;
  isDirector: number;
  lastName: string;
  orgRootId: string;
  posLevel: string;
  posType: string;
  position: string;
  prefix: string;
}

interface DataAuthority {
  id: string;
  prefix: string;
  firstName: string;
  lastName: string;
  position: string;
  profileId: string;
  comment: string;
  isSignatory: boolean;
}

export type {
  ResListCommand,
  DataListCommand,
  DataCommandType,
  DataFileDownload,
  DataFileOrder,
  DataDirector,
  DataAuthority,
};
